The goal of this learning unit is to deliver fundamental knowledge and skills on multi-paradigm programming, taking into account modern versatile languages, applicable to diverse environments and contexts. For students with a long previous experience in programming, the objective is also to provide specific training in programming matters which directly relate to the subjects that will be explored in their thesis.
Upon completing this curricular unit, the student should be able to:
1. Identify the potential of a programming language to solve a particular problem, given its specific context and environment.
2. Have a deep knowledge of the principles, mechanisms, syntax and semantics of a particular multi-pardigm programming language (Python).
3. To analyze and develop effective software programs which take advantage of the features of the programming language to solve concrete mathematical problems.
4. To integrate, in a user-transparent way, two or more components of different technologies/programming languages.
1. Installation and introduction to Python
2. Syntax and control structures
3. Data Structures and control flow
5. Application to mathematical problem solving
1. Langtangen HP "A Primer on Scientific Programming with Python", Springer. ISBN 978-3642302923.
2. Python Documentation. http://www.python.org/doc/
3. Textos de apoio elaborados pelo professor.
4. Tutoriais de pacotes de software a integrar com scripts Python.
The assessment is of an individual and continuous character and will consist of two factors: the quality of the developed Python programs, measured by (1) their ability to solve effective and efficiently the proposed mathematical problems; (2) correctness of the code, at a structural and forma level; and (3) existence of plus-values (85%), and student pro-activity in the collaborative learning activities, measured by the quantity and quality of issues raised in discussion forums and/or responses to them (15%). The assessment details are presented in the curricular unit’s Learning Contract.