2024
Programming
Name: Programming
Code: INF00878L
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area:
Informatics
Teaching languages: Portuguese
Languages of tutoring support: Portuguese, English
Regime de Frequência: Presencial
Sustainable Development Goals
Learning Goals
This course aims to develop in students the fundamental knowledge, skills, and competencies to understand the principles of programming and apply them practically in different contexts, using the Python programming language. Among the main objectives, the following are implicit:
- To be able to create programs to solve a variety of computational problems.
- To be proficient in parsing text to process and extract relevant information.
- To acquire the foundations for processing data in files for manipulation and analysis.
- To know how to produce graphics for data visualization.
- To be familiar with and use scientific computing libraries to implement advanced algorithms and techniques.
- To be able to create programs to solve a variety of computational problems.
- To be proficient in parsing text to process and extract relevant information.
- To acquire the foundations for processing data in files for manipulation and analysis.
- To know how to produce graphics for data visualization.
- To be familiar with and use scientific computing libraries to implement advanced algorithms and techniques.
Contents
- Introduction to programming: algorithms, variables, data types, arithmetic operators, logical values and operators, relational operators.
- Control structures: selection, repetition, decision making.
- Data structures: lists, tuples, dictionaries, sets.
- Working with text: string manipulation, text parsing.
- Functions and modularity.
- Using and creating modules.
- Methods (and classes).
- Looping structures.
- Working with files (I/O).
- Plots.
- Scientific computing libraries.
Note: The order may vary.
- Control structures: selection, repetition, decision making.
- Data structures: lists, tuples, dictionaries, sets.
- Working with text: string manipulation, text parsing.
- Functions and modularity.
- Using and creating modules.
- Methods (and classes).
- Looping structures.
- Working with files (I/O).
- Plots.
- Scientific computing libraries.
Note: The order may vary.
Teaching Methods
- Expository theoretical classes, using multimedia resources, for presenting fundamental concepts.
- Practical laboratory sessions for applying the learned concepts through problem-solving, which may include short assessed mini-problems.
- Practical laboratory sessions for applying the learned concepts through problem-solving, which may include short assessed mini-problems.
Assessment
Continuous assessment regime:
- Tests (2 or 3; which may include problems to be solved on the computer).
- Mini-problems (short duration; during the practical sessions; only 75% of the completed mini-problems are considered for the grade).
- Project (which may include a report, code, and oral defense).
Final assessment regime:
- Exam.
- Project (which may include a report, code, and oral defense).
There is a minimum mark of 7.5/20 for: each test; average of the mini-problems; project; exam.
- Tests (2 or 3; which may include problems to be solved on the computer).
- Mini-problems (short duration; during the practical sessions; only 75% of the completed mini-problems are considered for the grade).
- Project (which may include a report, code, and oral defense).
Final assessment regime:
- Exam.
- Project (which may include a report, code, and oral defense).
There is a minimum mark of 7.5/20 for: each test; average of the mini-problems; project; exam.
Recommended Reading
Basic reading
-Introduction to Fortran 90, 95 (Basic Engineering Series and Tools), Stephen J. Chapman
McGraw-Hill Education – Europe; ISBN 0070119694, 1997
-Numerical Methods for Engineers: with Software and Programming Applications, Steven Chapra
McGraw-Hill Education – Europe; ISBN 0071121803, 2001
Complementary reading
-Numerical Computation, volumes 1 & 2, Methods, Software, and Analysis, Ueberhuber, C. W.
Springer Verlag, 1997
Teaching Staff
- António Manuel Ribeiro dos Anjos [responsible]
- Ruben Jose Ferreira Teimas