-
Presentation
Presentation
The field of engineering is centered, above all, in solving problems. For that reason it makes perfect sense to prepare engineering students in the area of programming, giving them the ability to solve problems using one of the most powerful tools available to them - the computer. Areas such as simulation, modeling e data processing are day-to-day activities in this field. It's in this context that this course is concerned with the introduction to problem solving using algorithms implemented in a high-level programming language. On the other hand, the C programming language has had, historically, a very important role in engineering making it a perfect choice for this course. Given its success, the C programming language has also influenced a significant number of other programming languages, which makes it a good starting point for further exploring them.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 5
-
Year | Nature | Language
Year | Nature | Language
1 | Mandatory | Português
-
Code
Code
ULHT46-2310
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
1. Basic Concepts a. Basic computer architecture b. Algorithms c. Programming languages as a way to express algorithms d. Programs 2. Program development a. Development stages b. Develpment tools c. Integrated Development Environments 3. The C programming language a. Program structure b. Language elements c. Types, constants and variables d. Expressions and assinment operators e. Console I/O f. Structured programming g. Selection statements h. Repetition statements i. Compound statement j. Functions k. Variable visibility scope and lifetime l. Vectors and matrixes m. Character strings n. Pointers o. Argumentos por valor e referência p. File I/O q. Structures r. The C standard library 4. C Programs a. Implementing simple algorithms b. Structuting programs using functions c. Development methodologies
-
Objectives
Objectives
To understand the concept of algorithm, in particular when applied to computer programming. To acquire the competences to develop algorithms to solve small and medium complexity problems. To learn the basic concepts related to computer programming. To be familiar with the C programming language and have acquired practical experience using it to express algorithms. To be familiar with the basic software development tools and have experience using an integrated development environment to write, test and debug programs. To understand the importance of documenting programs, writing style and, in general, of adopting conventions that increase program readability. To acquire the ability to use the C programming language to solve specific problems using a computer.
-
Teaching methodologies
Teaching methodologies
Implementation of the questioning method which aims to improve understanding of the subject by asking questions to the students during the classes.
-
References
References
Robert C. Seacord (2020) Effective C: An Introduction to Professional C Programming. No Starch Press. Rocha, AA (2016) Introdução à Programação em C, 3ªEd., FCA. Deitel, H. and Deitel, P. (2012) C How to Program. 7th Ed, Prentice Hall. King, K.N. (2008) C Programming: A Modern Approach. 2nd Edition, W.W.Norton & Company. Marques de Sá, J. P. (2004) Fundamentos de Programação usando C, FCA. Kernighan, B. and Ritchie, D. (1988) The C Programming Language. 2nd Ed, Prentice Hall.
-
Assessment
Assessment
A nota de avaliação contínua corresponderá à média ponderada, arredondada para a decima, das notas dos testes escritos e dos trabalhos de acordo coma seguinte ponderação: 25% para cada trabalho prático (com um total de 2 trabalhos), 25% para cada teste (com um total de 2 testes). Caso o aluno não aprove nas frequências, haverá um Exame de recurso. Para obter aprovação na disciplina a nota mínima média dos testes é 9 valores e a nota mínima média dos trabalhos é 9 valores.
Trabalho de Laboratório 1: Pretende avaliar a interação com o utilizador através do teclado, assim como a resolução de problemas com estruturas condicionais e ciclos.
Trabalho de Laboratório 2: Pretende avaliar a definição de funções e a leitura e escrita de ficheiros de texto e binários.
-
Mobility
Mobility
No





