Course details
The C Programming Language
IJC Acad. year 2024/2025 Summer semester 5 credits
The C programming language as defined by ISO standard. The definition of C language, pointers, modularity, C standard library. Debugging and testing of programs. Basic overview of C++, using the C++ standard library.
Guarantor
Course coordinator
Language of instruction
Completion
Time span
- 39 hrs lectures
- 13 hrs projects
Assessment points
- 70 pts final exam
- 30 pts projects
Department
Lecturer
Instructor
Learning objectives
The goal is to introduce students to ISO C programming language and programming techniques in C.
Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.
Recommended prerequisites
Study literature
- Herout, P.: Učebnice jazyka C, 6. vydání, Kopp, 2010
- Kernighan, B.; Ritchie, D.: Programovací jazyk C, Computer Press, 2006
- Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
- Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
- Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
- ISO: Programming languages - C, N1570 Committee Draft, 2011
- ISO: Programming languages - C, N2176 Committee Draft, 2017
Fundamental literature
- Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989 Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997 Plauger, P.J.: The Standard C Library, Prentice-Hall, 1992 ISO: Programming languages - C, WG14/N869 Committee Draft, 1999 ISO: Programming languages - C, N2176 Committee Draft, 2017
Syllabus of lectures
- Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11, ISO C18). Basic language constructs, examples of C programs.
- Definition of C language: lexical elements, declaration syntax, basic types, variables.
- Array, address space, address, pointer. Pointers and arrays, address arithmetic. Alignment, little/big endian. Dynamic memory allocation.
- C-strings, multi-dimensional arrays, structures, unions.
- Enumerations. Expressions, operators, typecasting, operator precedence. Statements.
- Functions, argument passing. Pointers to functions. Command line arguments. The C preprocessor: macros, conditional compilation.
- Program structure, compilation units. Linking. The program "make".
- The C standard library. Debugging support, character classification, internationalization. Input/output, files.
- The examples of standard library use. String and memory management. Time functions. Math library.
- Creation of shared libraries. Linking of code written in various languages.
- C++ basics, typical differences of C and C++. New operators of C++, overloading, namespaces.
- Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings). Simple examples.
- Profiling and program optimization. Rules for writing portable code. Program checking tools. Program documentation tools.
Syllabus - others, projects and individual work of students
- 2 assignments
Progress assessment
2 assignments (30% if points)
Within this course, attendance on the lectures is not monitored. The knowledge of students is examined by 2 assignments and by the final exam.
Schedule
Day | Type | Weeks | Room | Start | End | Capacity | Lect.grp | Groups | Info |
---|---|---|---|---|---|---|---|---|---|
Tue | lecture | lectures | D0206 D105 | 17:00 | 19:50 | 470 | 1BIA 1BIB 2BIA 2BIB 3BIT | xx | Peringer |
Course inclusion in study plans
- Programme BIT, 1st year of study, Elective
- Programme BIT (in English), 1st year of study, Elective