The C Programming Language
|Language of Instruction:||Czech|
|Guarantor:||Peringer Petr, Dr. Ing. (DITS)|
|Lecturer:||Peringer Petr, Dr. Ing. (DITS)|
|Instructor:||Vojnar Tomáš, prof. Ing., Ph.D. (DITS)|
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Intelligent Systems FIT BUT|
| || ||The goal is to introduce students to ISO C programming language and programming techniques in C.|
| || ||The C programming language as defined by ISO. The definition of C language, pointers, modularity, C standard library. Basic overview of C++, using the C++ standard library.|
|Learning outcomes and competences:|
| || ||Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.|
|Syllabus of lectures:|
- Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99). Basic language constructs, examples of C programs.
- Definition of C language: lexical elements, declaration syntax, basic types, variables.
- Arrays, 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, type casting, operator precedence. Statements.
- Functions, argument passing. Pointers to functions. Command line arguments. The C preprocessor: macros, conditional compilation.
- Program structure, compilation units. Linking. 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, complex library.
- The creation of libraries. Development environments. Program checking tools. Programm documentation tools.
- C++ basics, typical differences of C and C++. New operators of C++, overloading basics, namespaces.
- Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings).
- Linking of code written in various languages. Profiling and program optimization. Rules for writing portable code.
|Syllabus - others, projects and individual work of students:|
- 2 assignments, each with 3 programs in C
- Kerninghan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
- Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997
- Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000
- Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
- ISO: Programming languages - C, WG14/N869 Committee Draft, 1999
- ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
- Herout, P.: Učebnice jazyka C, 3. vydání, Kopp, 1998
- Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000 [available on WWW]
- Slides available on WWW
| || ||assignments|