General Information
Goals
Objetives
The aim is to complement previous knowledge of programming in an interpreted language (Python) with specific training in programming in a compiled, low-level language (C).
Emphasis will be placed on practical problem-solving with a focus on notions of algorithms, modularity, structured programming and code quality.
Learning outcomes and competences
At the end of this course, students should be able to:
- use the syntax and semantics of the fundamental components of the C language;
- write, test and execute programmes to solve simple problems from an informal specification;
- implement some elementary algorithms in C;
- know the concept of pointer and use it to process indexed variables and character strings;
- know and use functions from the standard C language libraries;
- have basic skills in writing structured, correct and efficient code.
Syllabus
Introduction to the C language. Characteristics of the language: advantages, disadvantages and care when using it.
C language fundamentals. Syntactic structure of programs. Directives, declarations, expressions. Compilation and execution.
Basic types (integers, floating point, characters). Flow control. Cycles. Function definition. Formatted input and output.
Notions of pointers. Indexed variables. Character strings. Structured types.
Elementary algorithms (counting, searching, sorting, numerical algorithms).
Recursion. Solving simple problems using iterative and recursive algorithms.
Incremental development. Error detection and correction. Notions of efficiency and correctness.