Course details

The C Programming Language

IJC Acad. year 2019/2020 Summer semester 5 credits

Current academic year

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

Czech, English

Completion

Examination (written)

Time span

  • 39 hrs lectures
  • 13 hrs projects

Assessment points

  • 70 pts final exam (written part)
  • 30 pts projects

Department

Lecturer

Instructor

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.

Recommended prerequisites

Study literature

  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
  • ISO: Programming languages - C, N1570 Committee Draft, 2011

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

  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.

Course inclusion in study plans

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