• Level of education

    two years of postsecondary education

  • ECTS

    6 credits

  • Training structure

    Faculty of Science

  • Hours per week

    51h

  • Time of year

    Autumn

Description

Provide students with practical knowledge of the C language using an approach that combines low-level aspects (hardware) and abstraction (operating system), based on basic knowledge of another high-level computer language (imperative programming), typically Python.

 

Read more

Objectives

- Provide students with a foundation of practical knowledge in the C language.

- Prepare the groundwork for tackling microcontrollers in the second semester.

 

Read more

Teaching hours

  • Computer Engineering / Programming - CMLecture6 p.m.
  • Computer Engineering / Programming - Practical WorkPractical Work33 hours

Mandatory prerequisites

  • Numbering in a base (binary, hexadecimal)
  • Algorithmic fundamentals
  • Basic knowledge of imperative programming (typically Python or C)
Read more

Knowledge assessment

Written exam: 50% of the final grade

Practical work: 50% of the final grade

Read more

Syllabus

  • basic keywords: while, for, if
  • Functions: low-level call structure, passing parameters by copying. Scope of variables.
  • input and display: formatted strings, printf, and scanf.
  • Types: utility, static "tables," actual representation of variables in RAM, address concept in C.
  • Pointers: concept of address variables, pointers to variables, pointer typing, and observing RAM through pointers, comparison with RAM viewed as a binary stream. Notation * and []. Concept of "binary information stream."
  • techniques associated with pointers: passing by address.
  • dynamic allocation: system aspect, comparison with static allocation.
  • Simple data structures, definition of new types. Functions manipulating structures, structure pointers, allocation of structure arrays.
  • overview of advanced data structures: linked lists
  • Standard libraries: file management, character strings
Read more