Course details
The C Programming Language
CPP Acad. year 2005/2006 Winter semester 5 credits
The C programming language as defined by ISO. The definition of C language. Statements, expressions, functions, parameters. Arrays, structures, unions, enumerations. Pointers, address arithmetic. String operations. Dynamic memory allocation. C preprocessor. Modularity, linking. Creation and use of libraries. C standard library. Development environments, program checking tools. Basic overview of C++, using the C++ standard library. Debugging and testing. Program optimization. Basic rules for creating portable programs.
Guarantor
Language of instruction
Completion
Time span
- 39 hrs lectures
- 13 hrs projects
Department
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.
Prerequisite knowledge and skills
Basic knowledge of programming concepts.
Study literature
- Herout, P.: Učebnice jazyka C, 4. vydání, Kopp, 2004, ISBN 80-7232-220-6
- Harbison S., Steele G.: C: Referenční příručka jazyka C, Science, 1996, ISBN 80-901475-50
- Eckel, B.: Myslíme v jazyku C++, GRADA, 2000, ISBN:80-247-9009-2
- Eckel, B.: Thinking in C++, Volume 1: Introduction to Standard C++, 2nd edition, Prentice-Hall, 2000, ISBN:0139798099, [dostupné elektronicky na WWW]
- Materiály na WWW stránce předmětu IJC
Fundamental literature
- Kernighan, B., Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989, ISBN 0-13-110362-8
- Harbison S., Steele G.: C: A Reference Manual, Fifth Edition, Prentice Hall, 2002, ISBN 0-13-089592-X
- Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997, ISBN: 0201889544
- Eckel, B.: Thinking in C++, Volume 1: Introduction to Standard C++, 2nd edition, Prentice-Hall, 2000, ISBN:0139798099
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.
Progress assessment
Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.
Controlled instruction
assignments