The C Programming Language
FIT-IJCAcad. year: 2020/2021
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.
Learning outcomes of the course unit
Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.
Recommended optional programme components
Recommended or required reading
Herout, P.: Učebnice jazyka C, 6. vydání, Kopp, 2010
Kernighan, B.; Ritchie, D.: Programovací jazyk C, Computer Press, 2006
Teaching materials available on 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, WG14/N869 Committee Draft, 1999
ISO: Programming languages - C, N1570 Committee Draft, 2011
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
2 assignments (30% of points)
Language of instruction
The goal is to introduce students to ISO C programming language and programming techniques in C.
Specification of controlled education, way of implementation and compensation for absences
Within this course, attendance on the lectures is not monitored. The
knowledge of students is examined by 2 assignments and by the final exam.
Type of course unit
39 hours, optionally
Teacher / Lecturer
- 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.
13 hours, compulsory
Teacher / Lecturer
- 2 assignments