Introduction to Programming and Problem Solving
1
2025-2026
01000043
Computer Science
Portuguese
Face-to-face
SEMESTRIAL
6.0
Compulsory
1st Cycle Studies
Recommended Prerequisites
Mathematical background at a basic level. Logic thinking and abstraction skills.
Teaching Methods
The course is structured in 2 weekly theoretical-practical classes with a duration of 2 hours. The classes will present and introduce the fundamental concepts of programming, which will be exercised as soon as they are exposed. The concepts will be exemplified with small pieces of code, with emphasis on problem solving. This model allows for an evaluation a model based on three components: tests (25%), projetc (15%) and a closed book exam (60%).
Learning Outcomes
The main goal is to teach/learn the basic principles of procedural programming in the context of problem solving. A programming language is just the vehicle that enables us to express algorithmic solutions to problems, and from that point of view they are all equivalent, yet we opt by Python for it minimizes the burden of complex syntax and because it induces good programming practices.
We expect students to acquire and develop the skills of analysis and synthesis, of problem solving, critical reasoning, practical application of the knowledge, and the informatics competences related with the concepts under study. We also want to foster the autonomous learning and group work skills, the interpersonal relationships and the oral and written communication.
Work Placement(s)
NoSyllabus
1. Computers, programs and computation
2. Basic concepts: simple objects and operators
3. Destructive Instructions
4. Control instructions
5. Structured objects: lists, tuples and dictionaries
6. Files
7. Recursion
8. Complements: scope of variables, modules, iterators, generators, higher-order functions
9. Program development
Head Lecturer(s)
Nuno António Marques Lourenço
Assessment Methods
Assessment
Project: 15.0%
Mini Tests: 25.0%
Exam: 60.0%
Bibliography
- Python Crash Course (2nd Edition): A Hands-On, Project-Based Introduction to Programming, Eric Matthes, 2019
-Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners, Al Sweigart, 2019
- Puzzle-based Learning: Introduction to critical thinking, mathematics, and problem solving, Matthew Michalewicz and Zbigniew Michalewicz, Credibility Corporation Pty Ltd
- Fluent Python: Clear, Concise, and Effective Programming, Luciano Ramalho 2022
-Learning Python (5th edition), M. Lutz, O’Reilly, 2013
-Programação em Python : Fundamentos e Resolução de Problemas 2.ª Edição Atualizada, Ernesto Costa, FCA 2024.