• Level of Education

    2 years of post-secondary education

  • ECTS

    6 credits

  • Training Structure

    College of Sciences

  • Number of hours

    51h

  • Time of year

    Fall

Description

To provide students with practical knowledge of the C language through an approach that combines low-level (hardware) and abstract (operating system) aspects, building on their foundational knowledge of another high-level programming language (imperative programming), typically Python.

 

Read more

Objectives

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

- Lay the groundwork for studying microcontrollers in the second semester

 

Read more

Class Hours

  • Computer Engineering / Programming - LectureLecture6:00 p.m.
  • Computer Engineering / Programming - LabPractical Work33 hours

Mandatory Prerequisites

  • Numbering in a Base (Binary, Hexadecimal)
  • Fundamentals of Algorithms
  • 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

Course Outline

  • Basic keywords: while, for, if
  • Functions: Structure of a low-level call; passing parameters by copy. Scope of variables.
  • Input and output: formatted strings, printf, and scanf.
  • Data types: utility, static "arrays," actual representation of variables in RAM, the concept of addresses in C.
  • Pointers: the concept of a variable-address, pointers to variables, pointer typing, and observing RAM through pointers; comparison with RAM viewed as a binary stream. The * and [] notations. The concept of a “binary stream of information.”
  • Techniques related to pointers: passing by address.
  • Dynamic allocation: system-level considerations, comparison with static allocation.
  • Simple data structures, defining new types. Functions that manipulate structures, structure pointers, and allocation of structure arrays.
  • An Overview of Advanced Data Structures: Linked Lists
  • Standard libraries: file handling, character strings
Read more