Introduction to Programming and Problem Solving

Academic year
Subject Area
Computer Science
Language of Instruction
Mode of Delivery
ECTS Credits
1st Cycle Studies

Recommended Prerequisites

Mathematical background at a basic level. Logic thinking and abstraction skills.

Teaching Methods

This curricular unit is structured in 2 weekly classes, with no distinction between T and TP classes. In classes the concepts are presented and the associated practice is promoted. The algorithmic reasoning is first exercised by solving problems without using a programming language. The concepts associated with programming are exemplified with the use of small code excerpts, being the practice directed towards problem solving. The number of students is lower than in a typical theoretical class, which allows a personalized monitoring of the students progression.

Learning Outcomes

To learn the basic principles of programming and data management in a problem solving context. The algorithmic and data modeling and manipulation dimensions are explored, and context regarding informatics systems is provided.

It is also intended that the student acquires/develops the following core competencies (according to the Dublin descriptors):

- Computer skills related to the study field, problem solving, self-learning, practical application of theoretical knowledge, team work;

and the following secondary competencies:

- Competence in synthesis and analysis, critical reasoning, oral and written communication, interpersonal relations.

Work Placement(s)



1 Introduction to computers

1.1 Basic concepts regarding computers and Internet

1.2 Numbering and data representation

2. Operating systems

2.1 Processes

2.2 Memory and storage

3. Distributed systems

3.1 Basic concepts. HTTP and Email

4. Problem solving and algorithms in Python

4.1 Basic concepts on problem solving and logic

4.2 Introduction to Python and data types

4.3 Conditional control instructions

4.4 Control instructions: cycles

4.5 Strings

5. Databases

5.1 Introductions and the relational data model

5.2 Entity-relationship diagrams

5.3 Querying and manipulating data

6. Python and databases

Head Lecturer(s)

Ernesto Jorge Fernandes Costa

Assessment Methods

Evaluation and oral defense of 3 programming exercises: 12.5%
Evaluation and oral defense of a mini-project: 17.5%
Exam: 70.0%


- N. Dale and J. Lewis, “Computer science illuminated,” Jones & Bartlett Pub, 2006.

- Jon Barwise e John Etchemendy, “Language, Proof and Logic,” CSLI Publications, 1999.

- Ernesto Costa, “Introdução à Programação e Resolução de Problemas com Python”, DEI, 2011

- Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom, “Database Systems: The Complete Book,” Prentice Hall, 2001