Course details
The C Programming Language
IJC Acad. year 2017/2018 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.
Guarantor
Language of instruction
Completion
Time span
- 39 hrs lectures
- 13 hrs projects
Assessment points
- 70 pts final exam (written part)
- 30 pts 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.
Recommended prerequisites
Prerequisite knowledge and skills
There are no prerequisites
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
- Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11). Basic language constructs, examples of C programs.
- Definition of C language: lexical elements, declaration syntax, basic types, variables.
- Array, 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.
- Creation of shared libraries. Linking of code written in various languages.
- C++ basics, typical differences of C and C++. New operators of C++, overloading, namespaces.
- Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings). Simple examples.
- Profiling and program optimization. Rules for writing portable code. Program checking tools. Program documentation tools.
Progress assessment
Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.
Controlled instruction
assignments
Course inclusion in study plans