Course details

The C Programming Language

IJC Acad. year 2021/2022 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.


Deputy Guarantor

Language of instruction



Examination (written)

Time span

39 hrs lectures, 13 hrs projects

Assessment points

70 exam, 30 projects




Course Web Pages

Subject specific learning outcomes and competences

Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.

Learning objectives

The goal is to introduce students to ISO C programming language and programming techniques in C.

Why is the course taught

This course is good for improving of your knowledge of C language (pointer arithmetic, modules, libraries) and for improvement of debugging and code optimization skills.


Technical equipment

volně dostupné

  • GCC

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
  • 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
  • ISO: Programming languages - C, N2176 Committee Draft, 2017

Syllabus of lectures

  1. Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11, ISO C18). Basic language constructs, examples of C programs.
  2. Definition of C language: lexical elements, declaration syntax, basic types, variables.
  3. Array, address space, address, pointer. Pointers and arrays, address arithmetic. Alignment, little/big endian. Dynamic memory allocation.
  4. C-strings, multi-dimensional arrays, structures, unions.
  5. Enumerations. Expressions, operators, typecasting, operator precedence. Statements.
  6. Functions, argument passing. Pointers to functions. Command line arguments. The C preprocessor: macros, conditional compilation.
  7. Program structure, compilation units. Linking. The program "make".
  8. The C standard library. Debugging support, character classification, internationalization. Input/output, files.
  9. The examples of standard library use. String and memory management. Time functions. Math library.
  10. Creation of shared libraries. Linking of code written in various languages. 
  11. C++ basics, typical differences of C and C++. New operators of C++, overloading, namespaces.
  12. Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings). Simple examples.
  13. 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% of points)

Controlled instruction

Within this course, attendance on the lectures is not monitored. The knowledge of students is examined by 2 assignments and by the final exam.


Tuelecturelectures D0206 D105 17:0019:50 1BIA 1BIB 2BIA 2BIB 3BIT xx

Course inclusion in study plans

  • Programme BIT, 1th year of study, Elective
  • Programme IT-BC-3, field BIT, 1th year of study, Elective
Back to top