
Métodos Computacionais
Code
11574
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
9.0
Teacher in charge
Joaquim Francisco Ferreira da Silva, Pedro Manuel Corrêa Calvente Barahona
Weekly hours
3
Total hours
54
Teaching language
Inglês
Objectives
Knowledge
The essential constructions of an imperative programming language.
The tools of a software development system.
Some fundamental notions of relational databases.
Application
Decompose a problem into simpler problems.
Design an algorithm and programs (in an imperative programming language) for solving a simple problem.
Test a program in a given programming environment.
Design a simple Relational database
State a very simple SQL query.
Soft-Skills
Ability to do a programming / database project.
Skills in time management.
Subject matter
1. Introduction to MATLAB
a. Basic Data Types
• Numeric, Boolean, Characters
b. Data Structures
• Arrays (Vectors, Matrices and Multi-arrays)
• Strings
• Structures
c. Basic Operations
• Numerical Expressions
• Array Operations (in MATLAB)
• Scripts
2. Programming (Imperative)
a. Program Control
• Sequential Execution
• Conditional Execution (If)
• Cycles (For, While)
b. Functions
• Nested and Recursive Functions
c. Input-Output
• Operation Systems and File Types
• Text Files (Reading from / Writing to)
• Basic Text Processing
3. Algorithms
a. Search in Arrays
• Sequential (unsorted arrays)
• Bipartite (Sorted Arrays)
• Complexity Analysis
b. Sorting algorithms
• Bubble, Insertion, Quick and Merge Sort
• Correctness and Complexity
c. Simulation
• Random Variables and Processes
• Automata (State and Transitions)
d. Graph Algorithms
• Test for Connectedness
• Minimum Spanning Trees (Prim)
• Shortest Distances (Floyd-Wrashall)
• Correctness and Complexity
4. Introduction to Databases
a. Relational Databases
• History and Applications
b. Modelling and Design
• Entities, Attributes and Keys
• Entity-Relational Model
• Relational Algebra (Brief Introduction)
c. Normalisation
• Functional Dependencies
• Closures
• Normal Forms
d. Querying Relational Databases
• SQL - Structured Query Language (DDL and DML)
• Queries - Joins, Aggregation Functions, Views
• Consistency; Triggers
Bibliography
- Allen B. Downey, Physical Modeling in MATLAB.
- ??? Bases de Dados ???
Teaching method
There are one hour of lectures and a lab session of one and a half hours each week.
Lectures are problem-driven. They start with a concrete problem, which motivates the presentation of some computer systems topic, some data type or some programming language construct, and end with the complete specification of a program that solves it.
In the lab classes, students design, implement and test programs related to te previous lecture.
Evaluation method
Continuous Evaluation
Continuous evaluation is done through 2 projects and 2 tests.
The 1st test and project (T1 and P1) cover the topics of Programming, Data Structures and Algorithms;
The 2nd test and project (T2 and P2) cover the topics of Databases.
Grades
The grade of the continuous assessment, Nac, is the arithmetic mean of the theory and practice grades (all grades in the range 0 to 20)
Nac = (NT + NP) / 2
The theory grade, NT, is the weighted average of tests T1 and T2:
NT = (2 * T1 + T2) / 3
The practical grade, NP, is the weighted average of projects, P1 and P2.
NP = (2 * P1 + P2) / 3
Approval
A student with a positive continuous assessment grade (Nac> = 9.5) obtains approval with a final mark (Nf) equal to Nac, rounded to the units.
Frequency
A student gets frequency if his/her practical grade exceeds 8 values after rounding (i.e. NP> = 7.5)
Exam
Students failed in the continuous assessment, but having obtained frequency, can take a final exam.
The exam has 2 groups, E1 and E2, corresponding to tests T1 and T2, and students may do only one of the groups.
The theory grade after the exam, NTe, is the weighted average of the maximum of the corresponding Test and exam grades.
Nte = (2 * max (T1, E1) + 2 * max (T2, E2) / 3
After the exam, the final grade, Nf, is obtained by arithmetic mean of the practical and theoretical notes.
Nf = (Nte + NP) / 2
Students who obtained approval in continuous evaluation, can improve their final grade in the exam. Their final grade is obtained with the same rules.