Good knowledge of High School Mathematics.
Theoretical-practical classes of expository style by the professor with the presentation of theoretical aspects and examples. In practical classes students are asked to write programs on paper and to implement them on computers guided by the professor.
Learning the basic mode of operation of a digital computer, how information can be represented in such a model and the practical implications of its limitations.
Learning to program in an environment of an imperative language.
Apprehend the structured and descent programming paradigm, i.e., it is intended to strengthen the algorithmic deductive reasoning, by seeing a program as a method of automatic resolution of a given problem.
The main competencies to be developed are: ability to use computational tools; ability for generalization and abstraction; ability to formulate and to solve problems; logical argument; critical spirit; calculation skills; knowledge of mathematical results; rigorous and clear written and oral expressions; individual initiative; communication skills.
1. Basic structure and operation of a digital computer: the von Neumann model.
2. Computational representation of numerical and non-numerical data.
3. Algorithms and programs: programming as structured problem solving.
4. Introduction to imperative programming: elementary data types, variables and constants, arithmetic and logical 5. expressions. Control structures in imperative programming: sequence, decision, selection and loops. Tables and basic operations on their static representations. File manipulation.
5. Programming methodology: modular and descent development of programs - the notion of subprogram. Functions, procedures and parameter passing.
6. Sorting and its computational relevance.
7. Definition of structured data types.
8. Introduction to recursive programming.
José Carlos de Gouveia Teixeira
Exam(100%) or Midterm exam (70%) + Test (30%): 100.0%
J. P. Martins, Introdução à Programação usando o Pascal, McGraw-Hill, 1994
J. Tremblay, J. Dedourex, R. Bunt, Introduction to Computer Science -an Algorithmic Approach. Pascal Edition, McGraw-Hill, 1989
M. Pascoal, Apontamentos de apoio a Métodos de Programação I, DMUC, 2013
R. G. Dromey, How to solve it by computer, Prentice-Hall, 1982