Publication in the Diário da República: Despacho nº 10766/2011 - 30/08/2011
5 ECTS; 1º Ano, 2º Semestre, 28,0 T + 28,0 PL + 5,0 OT , Cód. 911240.
Lecturer
- Pedro Daniel Frazão Correia (1)
(1) Docente Responsável
(2) Docente que lecciona
Prerequisites
Not applicable
Objectives
1. Acquire knowledge about advanced aspects of the C programming language, such as: pointers; functions and parameter passing; structures; dynamic memory.
2. Learn to implement and consume elementary data structures, using the C programming language and Abstract Data Types (ADTs-Abstract Data Types).
3. Learn algorithm analysis and design techniques and how to classify algorithms according to their estimated execution time.
4. Learn to implement sorting algorithms.
5. Learn to implement and consume hierarchical data structures, using the C programming language and Abstract Data Types (ADTs-Abstract Data Types).
Program
1. Advanced aspects of the C language
1.1. Pointers
1.1.1. Pointers and tables
1.1.2. Pointer arithmetic
1.1.3. Pointers of Pointers
1.2. Passing parameters to functions
1.2.1. pass by value
1.2.2. pass by reference
1.2.3. table passing
1.2.4. Passing parameters on the command line
1.3. Structures
1.3.1. Access to members of a structure
1.3.2. Nested structures
1.3.3. Passing structures to functions
1.3.4. Operations on structures
1.4. Dynamic Memory
1.4.1. Memory allocation
1.4.2. Memory release
1.4.3. Dynamic data structures
2. Elementary Data Structures
2.1. linked lists
2.2. Doubly linked lists
2.3. Queues
2.4. Stacks
3. Analysis and design of algorithms
3.1. Algorithm analysis and design techniques
3.2. Big-O Notation
4. Sorting Algorithms
4.1. Selection Sort
4.2. bubble sort
4.3. Insertion Sort
Evaluation Methodology
Continuous assessment:
- Practical Exercices (20%-4 values)
- Practical assignment (30% - 6 values)
- Written Test (50%-10 values)
Other periods of examination:
- Practical Exercices (20%-4 values)
- Practical assignment (30% - 6 values)
- Written Test (50%-10 values)
All Assessment Periods:
- Minimum marks: Tests and Examinations 7 out of 20; Practical assignments 10 out 20.
Bibliography
(1988). The C Programming Language. USA: Pearson
(1997). Algorithms in C, Parts 1-4 Fundamentals,Data Structures, Sorting, Searching. USA: Addison-Wesley
(1999). Linguagem C. Portugal: FCA
(2009). Introduction to Algorithms, Third Edition. USA: MIT Press
(2014). Estruturas de Dados e Algoritmos em C. PT: FCA
Teaching Method
Lectures, laboratory involving problem solving and consolidation of knowledge using the computer; Tutorial support.
Software used in class
Code Blocks; MinGW / GCC / GDB