UC info
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
PortugueseObjectives
- 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
PresencialProgram
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: 9780262529624Peter 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 examAssessment 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