Go to:
Logótipo
You are here: Start > CINF050

Computational Thinking

Code: CINF050     Acronym: PC

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2025/2026 - 1S

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor of Arts in Information Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
CINF 62 Study plan 1 - 6 41 162

Teaching - Hours

Lectures: 1,50
Practical: 1,50
Type Teacher Classes Hour
Lectures Totals 1 1,50
Liliana da Silva Ferreira 1,50
Practical Totals 2 3,00
Liliana da Silva Ferreira 3,00
Mais informaçõesLast updated on 2025-10-07.

Fields changed: Components of Evaluation and Contact Hours, Bibliografia Obrigatória, Bibliografia Obrigatória

Teaching language

Portuguese

Objectives

- Establishing the basis for computational thinking, develop abstraction and relate with problems in the natural world.
- Ability to design programs, understand and explain them, find and correct errors.
- Bridge the analog to digital worlds and to develop critical thinking with respect to the meaning of data, the social implications of privacy, and data science.

Learning outcomes and competences

Students will have the following abilities:

- Recognising aspects of computation in the surrounding world;

- Applying tools and techniques from computing to understand and reason about both natural and artificial systems and processes;

- Abstraction, in several ways: modelling, decomposing, generalizing, and classifying;

- Understanding and explaining programs;

- Designing and writing programs;

- Find and correct errors in the code;

- Reflect thoughtfully on the program, including assessing its correctness and fitness for purpose;

- Understanding the efficiency of the program;

- Describing the system to others;

- Discussing aspects like natural and artificial intelligence and consciousness, creativity and intellectual property, moral and ethical implications of using computers.

Working method

Presencial

Program

Algorithms. Algorithm as a sequence of precise steps to solve a given problem. A single problem may be solved by several different algorithms. Choice criteria. Accuracy of both algorithm and data. Key algorithms, sorting and searching. Design of algorithms for re-use, validation, testing and correction.

Programs. Programming physical devices, statements and actions. Sequencing. Selection. Repeating. Variables and assignment. Different types of data: integers, characters, strings. Relational operators and logic to control the execution of program statements. Manipulation of logical expressions, truth tables and Boolean valued variables. Abstraction by using functions and procedures with parameters. Program documentation. Errors in program syntax and errors in meaning. Simple data structures, such as variables, records, arrays, lists, trees, hash tables. Procedures that call procedures, to multiple levels. Programs that read and write persistent data in files. Design patterns: divide and conquer, pipelining, caching, sorting, searching, backtracking, recursion, client/server, model/view/controller.

Data. Introduction to binary manipulation. Representations of unsigned integers, text, sounds (both involving analogue to digital conversion, e.g. WAV, and free of such conversion, e.g. MIDI), pictures and video. Multiple representations of a single thing in a computer. Hexadecimal. Two’s complement signed integers. String manipulation. Data compression; lossless and lossy compression algorithms e. g. JPEG. Problems of using discrete binary representations: quantization, sampling frequency. Representing fractional numbers.

Social aspects of computing.

Mandatory literature

John Guttag. ; Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624
Peter J. Denning, Matti Tedre. ; Computational Thinking, MIT Press, 2019.
Tavares , João Nuno; Pensamento Computacional : com introdução à programação em Python 3.x, 2024

Teaching methods and learning activities

The teaching methodologies are problem based, and use several tools from pen and pencil simulations and toy robots programming to writing and correcting programs in an IDE for Python.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Exame 50,00
Teste 50,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 115,00
Frequência das aulas 41,00
Total: 156,00

Eligibility for exams


  • Presence in class.

  • Minimum of 10 in final grade.

Calculation formula of final grade



  • Final Grade = (Test+Exam)/2;


    if Test >= 6,0 e Exam >= 6,0



Classification improvement

Recovery exam
Recommend this page Top
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2025-11-23 at 08:20:07 | Acceptable Use Policy | Data Protection Policy | Complaint Portal