Programming

Year
1
Academic year
2020-2021
Code
03018724
Subject Area
Information and Communication Technology
Language of Instruction
Portuguese
Other Languages of Instruction
English
Mode of Delivery
E-learning
ECTS Credits
10.0
Type
Compulsory
Level
3rd Cycle Studies

Recommended Prerequisites

Knowledge of group theory obtained in a first undergraduate course of Algebra.

Teaching Methods

Given the technological nature of the LU, the teaching/learning process follows an approach based on online collaborative theoretical-practical learning, in virtual class, that involves the realization of practical assignments, both individual and in group, whose results are presented online, during the course of the LU, to ensure mutual complementarity between theory and practice.
The weighting factors and the criteria of evaluation of the learning outcomes will be subject to negotiation between students and teacher.  

Learning Outcomes

The goal of this learning unit is to deliver fundamental knowledge and skills on multi-paradigm programming, taking into account modern versatile languages, appliccable to diverse environments (command line, graphic user interfaces, web, cloud).
By completing this LU the student should be able to:
- Identify the potential of a programming language in its application to a problem, in a specific context/environment.
- Understand the principles, mechanisms, syntax and semantics of a particular multi-paradigm programming language (Python);
- Analyse and develop efficient programs that make good use of the features of the working programming language;
- Integrate two or more components from different languages/technologies into a single software package, in a transparent way to the user.   

Work Placement(s)

No

Syllabus

1. Introduction to Python
1.1. History of the language
1.2. Programming paradigms
2. Syntax and control structures
2.1. Python syntax and semantics
2.2. Control flow
3. Data Structures
3.1. Lists and sequences
3.2. Sets
3.3. Dictionaries
4. Objects e encapsulating
4.1. Functions and Modules
4.2. Classes, objects and methods
5. Interoperability
5.1. File reading and writing
5.2. Interaction with the Operating System
5.2. Interaction with Internet
6. Introspection in Python.

Assessment Methods

Assessment
Exam: 30.0%
Research work: 35.0%
Resolution Problems: 35.0%

Bibliography

- "Python Documentation", http://www.python.org/doc/
- "Core Python Programming", Chun, W.; Prentice-Hall, ISBN-13: 978-0132269933
- "Programming Python", Lutz, M.; O'Reilly, ISBN-13: 978-0596158101
- "Beginning Python: Using Python 2.6 and Python 3.1", Payne, J.; Wrox, ISBN-13: 978-0470414637