How to find us

Computer Programming Fundamentals 2017/2018

  • 4 ECTS
  • Taught in Portuguese
  • Continuous Assessment


1.Understand the role of algorithms in problem solving
2.Understand basic concepts of program design and programming
3.Use primitive data types and data structures offered by the development environment
4.Choose an appropriate data structure for modeling a simple problem
5.Write simple applications
6.Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
7.Test applications

Recommended Prerequisites


Teaching Metodology

Collaborative Learning Method, PBL, presentation of main concepts

Body of Work

2.Algorithms and problem solving
3.Program design
4.Programming fundamental concepts: Variables, Literals, Types, Expressions, Procedures, Functions,
Parameters, Operators and operations, Decision logic, Looping, Control structures
5.Data Structures: primitive data types, composite data types, arrays; files
6.Input/Output (I/O)
7.Overview and history of programming languages
8.Integrated Development environments – using a program language
9.Usability tests

Recommended Bibliography

Carrano, F., Data Structures and Abstractions with Java, Pearson Education; 3rd edition, 2011.
Cormen, T., Leiserson, C., Rivest, R., Stein, C., Introduction to Algorithms, MIT Press; 3rd edition, 2009.
David J. Barnes & Michael Kölling, Objects First with Java, A Practical Introduction using BlueJ, Fifth edition, Prentice Hall
/ Pearson Education, 2012

Complementary Bibliography

Carrano, F., Prichard, J., Data Abstraction and Problem Solving with Java: walls and mirrors, Pearson Education;
3rd Ed., 2011.

Weekly Planning

Apresentação da UC. Resolução de prblemas.

Resolução de problemas: Top-Down, algoritmos, Traçagens.

Operadores e expressões. Expressões matemáticas e computacionais. Estrutura de controlo condicional: SE-ENTÃO-SENÃO, IF-THEN-ELSE. Ifs embricados

Linguagem C.

Uso dos ciclos: Repetição por contagem: DO-FOR; DO-WHILE; Repetição condicional até: REPEAT-UNTIL. Conversão dum ciclo REPEAT-UNTIL num ciclo DO-WHILE.

Arrays e matrizes.

Manipulação de alfanuméricas.

Teste escrito (03-10-2017 às 15h)
Teste pratico (31-10-2017 às 15h)
Teste pratico (29-11-2017 às 9h)
Teste escrito (19-12-2017 às 15h)

Demonstration of the syllabus coherence with the curricular unit's objectives

The syllabus presented allow students to acquire relevant knowledge with which they will be able to realize the complexity of
the design of an algorithm and how to implement a program using an integrated development environment. Namely the
contents 1, 2 and 3 allow students to understand the role of algorithms in problem solving. Contents 4 and 5 contribute to the
understanding of basic programming concepts and to know and use primitive data types and data structures. Through contents
6-8 students acquire the skills to develop simple applications in a given development environment. The content 9 gives the
students knowledge about testing applications that allow them to assess their usability. The integrated syllabus helps the
student learn to design,implement and test a program.

Demonstration of the teaching methodologies coherence with the curricular unit's objectives

Being a foundation discipline, it will be necessary to present some concepts which will be done using the lecture method. The
skills of know-how, related to design, implement and test a program will be developed by combining the collaborative
learning and problem solving.

relevant generic skillimproved?assessed?
This website uses cookies to provide better functionality and for performance measurements (European Union Directive 2009/136/EC)
Please take a few minutes do answer a few quick questions about our website.