Programming

Base Knowledge

Basic notions on C programming.

Teaching Methodologies

Weekly classes consist in:
– 2 hours of theoretical classes, in which new concepts are introduced, complemented by some simple examples;
– 2 hours of practical classes, in which the students develop programs in C that require the recently acquired concepts to solve a given problem.

Learning Results

In this course the students learn how to implement complex programs in C. All main features of C are examined in order to give the students a comprehensive knowledge of this programming language. This knowledge is essential to develop programs that are able to solve real-world problems.
The most important topics discussed in this course are file manipulation and dynamic storage allocation. The students also learn how to develop programs that operate on fundamental data structures, such as queues, heaps, linked lists and binary trees.

Program

1. Pointers
1.1. Introduction. Pointers and addresses
1.2. Pointers and functions
1.3. Pointers and arrays
1.4. Pointer arithmetic

2. Header files
2.1. Dividing the source code into multiple files
2.2. Using header files

3. Structures
3.1. Definition
3.2. type definition: typedef
3.3. Arrays of structures
3.4. Unions
3.5. Enumerations

4. Files
4.1. Text files and binary files
4.2. Standard operations
4.3. Non-sequential access to files

5. Dynamic structures
5.1. Dynamic storage allocation
5.2. Linked lists
5.3. Other dynamic structures

6. Recursive functions
6.1. Writing recursive functions
6.2. Examples of recursive functions
6.3. Binary trees

Curricular Unit Teachers

Internship(s)

NAO