Course detail

The C Programming Language

FIT-IJCAcad. year: 2018/2019

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 of the course unit

Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.

Prerequisites

Not applicable.

Co-requisites

Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

  • Herout, P.: Učebnice jazyka C, 3. vydání, Kopp, 1998
  • Kernighan, B.; Ritchie, D.: Programovací jazyk C, Computer Press, 2006
  • Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.

  • 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, N1570 Committee Draft, 2011

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

2 assignments (30% if points)

Language of instruction

Czech, English

Work placements

Not applicable.

Course curriculum

    Syllabus of lectures:
    1. Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11). 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, type casting, 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. 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, complex 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

Aims

The goal is to introduce students to ISO C programming language and programming techniques in C.

Specification of controlled education, way of implementation and compensation for absences

Within this course, attendance on the lectures is not monitored. The
knowledge of students is examined by 2 assignments and by the final exam.

Classification of course in study plans

  • Programme IT-BC-3 Bachelor's

    branch BIT , 1. year of study, summer semester, 5 credits, optional

Type of course unit

 

Lecture

39 hours, optionally

Teacher / Lecturer

Syllabus


  1. Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11). 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, type casting, 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. 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.

Project

13 hours, compulsory

Teacher / Lecturer

Syllabus


  • 2 assignments

eLearning