Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

C Programming Language

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BE5B99CPL Z,ZK 6 2P+2C+5D anglicky
Vztahy:
Předmět BE5B99CPL nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B6B36PCC (vztah je symetrický)
Předmět BE5B99CPL může při kontrole studijních plánů nahradit předmět B6B36PJC
Předmět BE5B99CPL nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B6B36PJC (vztah je symetrický)
Předmět BE5B99CPL nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B6B36PCC (vztah je symetrický)
Předmět BE5B99CPL nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B6B36PJC (vztah je symetrický)
Garant předmětu:
Jan Faigl
Přednášející:
Tomáš Krajník, Yuliia Prokop
Cvičící:
Jan Blaha, Tomáš Krajník, Yuliia Prokop, Jiří Ulrich
Předmět zajišťuje:
katedra počítačů
Anotace:

The course provides complete knowledge of the C programming language regarding a program structure operation, memory access, and multi-thread applications. The course emphasis a ?good? programming style to develop clean, easy-to-read, and re-usable code. Students are introduced into the process of the source code compilation and active debugging. Lectures introduce basic code structures and demonstration applications which link together partial constructs and practical coding aiming for cleanliness and structure of the source code, computational efficiency optimized using code profiling and debugging. Students are introduced into the fundamental principles of parallel multi-thread programming, synchronization mechanism and multi-thread application models. The end of the course presents introduction to principles of object oriented programming and C++.

Požadavky:

Basic knowledge of programming and algorithms is expected as taught in ?Algoritmy a programování?.

Osnova přednášek:

1. C programming language basics, language characteristics, compilation model, syntax, structure of program and function.

2. Data types ? memory alignment, declarations, operators, statements and code flow control structures

3. Commands, standard input/output operations. Functions, macros, preprocessing and standard libraries

4. Pointers, static and dynamic memory allocations; arrays and strings; multi-dimensional arrays; functions and parameter passing (call by value, call by reference) - stack

5. Structures and unions, enumeration types and their internal representation

6. Modules, projects, control of compilation (makefiles) conditional compilation ? application example

7. Files, interface ? binary and text files, direct and sequential access to the files

8. Program debugging, exception handling,

9. History of C language ? versions and standards, ANSI C, C99, C11, extensions, cross platform compatibility, compilers

10. Parallel programming ? multi-thread programming, methods and synchronizations primitives

11. Parallel programming ? multi-thread application models

12. Main differences between C and C ++

13. Object oriented programming principles: class, object, encapsulation, polymorphism, and inheritance

14. Software project management and version control software

Osnova cvičení:

During practical exercises students learn and exercise programming style to be able to independently develop clean, cross-platform usable code which will be tested not only on a personal computer but also at dedicated embedded boards such as Raspberry Pi. Students gain points for every successfully evaluated task and written programming tests. The points are given for correctness of the code, its effectiveness, and the quality of the source code is evaluated together with the code cleanliness and possibility of its reusability.

Cíle studia:
Studijní materiály:

.N. King: C Programming A Modern Approach, Second Edition. W. W. Norton & Company, Inc., 2008

Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 978-0321573513

Poznámka:
Další informace:
https://cw.fel.cvut.cz/wiki/courses/BE5B99CPL
Rozvrh na zimní semestr 2024/2025:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
místnost KN:E-311
Krajník T.
Prokop Y.

09:15–10:45
(přednášková par. 1)
Karlovo nám.
Lab K311
místnost KN:E-311
Blaha J.
Ulrich J.

11:00–12:30
(přednášková par. 1
paralelka 101)

Karlovo nám.
Lab K311
Čt

Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 6. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4539406.html