Publication in the Diário da República: Despacho n.º 7795/2021 - 09/08/2021
6 ECTS; 1º Ano, 1º Semestre, 42,0 PL + 28,0 TP , Cód. 91124.
Lecturer
- Pedro Daniel Frazão Correia (1)(2)
(1) Docente Responsável
(2) Docente que lecciona
Prerequisites
Not applicable.
Objectives
Solving problems using algorithms.
Using a programming language to express an algorithm.
Using 'C' programming language to build a computer program.
Program
1 - Concepts of computing and computers:
- History of computing;
- How computers work;
- Ergonomics.
2- Algorithms and languages:
Notions of logic;
Algorithm development;
Algorithm specification languages;
Flowcharts;
Programming languages.
3 - Information manipulation:
- Introduction to the C language;
- Basic data types;
- Variables and constants;
- Reading data;
- Writing data;
- Operators:
On integers;
On reals;
On characters;
Casting.
4- Conditional decision structures:
- Logical values;
- Logical and relational operators;
- Logical expressions;
- Conditional decision:
If-else;
Decision by choice:
Switch
Break
- Conditional assignment: decision operator ? ;
- Instruction blocks
- Indentation
5 - Repetition Structures:
- Repetition with initial control:
While
For
- Repetition with final control:
Do -while
- Change in cycle execution flow:
Break
Continue
- Chained cycles;
- Infinite cycles;
- Increment and decrement operators;
- Compound assignment;
6 - Composite data structures:
- Arrays
Concept of Array;
Declaration and initialisation of arrays;
Reading, writing and processing arrays;
Multidimensional arrays.
- Structs
Concept of structures;
Declaration and initialisation of structures;
Reading, writing and processing structures;
7 - Modularisation of problems:
- Definition of Procedures and Functions;
- Passing parameters;
- Return types;
- Function library;
8 - Pointers and dynamic memory:
- Pointers: Definition;
- Passing function parameters by value and by
reference;
- Strings:
Strings and characters;
Declaration and initialisation of strings;
Reading, writing and processing strings;
Passing strings to functions;
String.h library.
- Dynamic memory allocation.
Translated with DeepL.com (free version)
Evaluation Methodology
Continuous assessment:
Theoretical Part (70%): Two closed-book tests with a minimum average mark of of 7 out of 20.
Practical Part (30%): Practical Work with a minimum mark of 10 out of 20.
Exam-based assessment:
Theoretical (70%): Closed-book test with a minimum mark of 7 out 20.
Practical (30%): mark of the practical work done as part of continuous assessment or closed-book test with a minimum mark of 10.
Bibliography
- Damas, L. (1999). Linguagem C. Portugal: FCA
- Kerninghan, B. e Ritchie, D. (1988). The C Programming Language . Portugal: PEARSON EDUCATION (US)
Teaching Method
Lectures: course content presentation
Practical classes: Laboratorial classes with practical experiments.
Software used in class
Algorithmi; CodeBlocks IDE