### Paradigmas da Programação - Engenharia Civil - Sem Ramos - Especialidades

7.5
ECTS / Credit Units
 Year: 1 / 1º Semestre Plan: 2012/13 Scientific Area: INF Level: Básico

 Theorical: 48.00 Theorical-Pratical: Pratical and Laboratorial: 32.00 Fieldwork: Seminar: Internship: Tutorial:
 Assigned Internship Hours: Assigned Projects Hours: Assigned Fieldwork Hours: Assigned Study Hours: Assigned Evaluation Hours: Others:

### Degree having this Course

Degree - Branch Degree Plan Year
Engenharia Electrónica e Telecomunicações - Sem Ramos - Especialidades 2014/15
Engenharia Civil - Sem Ramos - Especialidades 2012/13
Engenharia Informática - Sem Ramos - Especialidades 2010/11
Matemática - Sem Ramos - Especialidades 2015/16
Design de Media Interactivos - Sem Ramos - Especialidades 2010/11

### Teaching Staff

Amâncio Lucas de Sousa Pereira

Responsibilities:
Ensino teórico
Ensino prático e laboratorial
Athanasios Vourvopoulos

Responsibilities:
Ensino prático e laboratorial
Frederica Margarida Camacho Gonçalves

Responsibilities:
Regência
Responsável pelas Pautas
Ensino teórico
Luís Filipe Silva Camacho

Responsibilities:
Ensino prático e laboratorial

## Course Information

### Course Objectivs

Generic goal: Provide the students with theoretical, methodological and practical knowledge on the development of programs under various paradigms.

Specific objective 1: Introduction to programming in Python (recursive, imperative, functional, object oriented).

Specific objective 2: Applications in different areas, such as symbolic and numerical computation.

### Evaluation Criteria

Classification Type: Quantitative (0-20)
Evaluation Model: A
Evaluation Methodology: In the theoretical classes the teaching of the programming paradigms is always done through examples. The practical classes consist in developing, programs on the computer by students. The assessment consists of two frequencies to solved individually, in which the practical component is performed on the compute (one and half hours each).

### Program Resume (get program detail)

Introduction to the Python programming language using basic numerical computation and function visualization examples. Definition of functions and manipulation of lists. Recursive, imperative and functional programming.
Comparison and combination of paradigms. Examples of additional programming: sorting, numerical methods.
Method of programming based on data-centric layers. First example: towers of Hanoi. Abstract data types. Brief notions of object-oriented programming. Applications and supplements: simulation; graphs; brief introduction to dynamic programming;

### Main Bibliography

Programação em Python: Introdução à programação utilizando múltiplos paradigmas: J. P. Martins, IST Press, 2015.
Think Python: How to think like a computer scientist: A. Downey, Green Tea Press, 2012.

### Other Biographical Sources / Support Documents

Introdução à Programação em Mathematica (3a edição): J. Carmo, A. Sernadas, C. Sernadas, F. M. Dionísio, C. Caleiro, IST Press, 2014.
Programação em Python, Fundamentos e Resolução de Problemas: E. Costa, FCA, 2015.
Introduction to Computation and Programming Using Python (revised and expanded edition): J. V. Guttag, MIT Press, 2013.
Learning Python (fifth edition): M. Lutz, O'Reilly Media, 2013.
Learning IPython for Interactive Computing and Data Visualization: C. Rossant, Packt Publishing, 2013.
The Art of Computer Programming: D. E. Knuth, Addison-Wesley (volumes 1--3, 4A), 1998.