Faculdade de Ciências e Tecnologia

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.

Courses