The C Programming Language

Public info:http://www.fit.vutbr.cz/study/courses/IJC/public/
Completion:examination (written)
Type of
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Guarantee:Peringer Petr, Dr. Ing., DITS
Lecturer:Peringer Petr, Dr. Ing., DITS
Instructor:Konečný Filip, Ing., DITS
Šimáček Jiří, Ing., Ph.D., DITS
Faculty:Faculty of Information Technology BUT
Department:Department of Intelligent Systems FIT BUT
Introduction to Programming Systems (IZP), DIFS
Learning objectives:
  The goal is to introduce students to ISO C programming language and programming techniques in C.
  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 and competences:
  Knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.
Syllabus of lectures:
  1. Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99). Basic language constructs, examples of C programs.
  2. Definition of C language: lexical elements, declaration syntax, basic types, variables.
  3. Arrays, address space, address, pointer. Pointers and arrays, address arithmetic. Alignment, little/big endian. Dynamic memory allocation.
  4. C-strings, multi-dimensional arrays, structures, unions. Enumerations. Expressions, operators, type casting, operator precedence.
  5. Functions, argument passing. Pointers to functions. Command line arguments. The C preprocessor: macros, conditional compilation.
  6. Program structure, compilation units. Linking. Program "make".
  7. The C standard library. Debugging support, character classification, internationalization. Input/output, files.
  8. The examples of standard library use. String and memory management. Time functions. Math library, complex library.
  9. The creation of libraries. Development environments. Program checking tools. Programm documentation tools.
  10. C++ basics, typical differences of C and C++. New operators of C++, overloading, namespaces.
  11. Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings). Simple examples.
  12. Code libraries and principles of linking. Program make. Linking of code written in various languages.
  13. Profiling and program optimization. Rules for writing portable and secure code.
Syllabus - others, projects and individual work of students:
  • 2 assignments
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++, International Standard ISO/IEC 14882, 1988
Study literature:
  • Herout, P.: Učebnice jazyka C, 3. vydání, Kopp, 1998
  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
  • Documents available on the WWW
Progress assessment: