Computational Thinking

Code: CINF050     Acronym: PC

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2023/2024 - 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 76 Study plan 1 - 6 41 162

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.

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 (%)
Participação presencial 0,00
Exame 50,00
Teste 50,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 70,00
Frequência das aulas 30,00
Total: 100,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