Introduction to Programming
Knowledge: The meaning of the programming constructs included in the Python language fragment covered in the course; How to build a small application, using the covered Python language fragment, and using the methodology defined in this course; Know the components and basic tools of a software development environment and their role.
Know-how: Develop well-organized, small-sized, programs, following a given set of standards; Project and write correctly simple algorithms; Read and explain/mentally simulate the functionality of code fragments written in the Python programming language; Correctly use, to the expected level, programming tools, as well as interpret their results; Develop as a team, a software development mini-project, using the skills acquired in this course.
Soft-Skills: Develop disciplined work and deadline meeting skills; Develop a concern with rigour and the systematic execution of work plans, following previously defined methods; Develop team work skills.
Carla Maria Gonçalves Ferreira
Weekly - 5
Total - 62
- Think Python, Allen B. Downey, 2nd edition, O’Reilly, 2015.
- Fundamentals of Python: First Programs, Kenneth A. Lambert, 1st Edition, 2011.
This course has a strong applied component and the final grade depends entirely on the ability to solve pratical programming problems using the Python language.
In the lectures, the fundamental concepts of the couse are transmitted, exemplified and discussed.
In the lab classes, the students solve small problems, applying the concepts and techniques learned. Some of these problems will be available in a automatic program evaluation system (Mooshak).
The final project is partially developed in the lab classes and partially outside classes. The final project is important because it should help settling all that has been learned during the course and gain practice in solving programming problems.
The assessment components are the following and have the weights on the final score that are shown:
- T1 - Mid-term test 1 - 35%
- T2 - Mid-term test 2 - 40%
- PR - Programming project - 20%
- PA - Class participation - 5%
- ER - Resit exam - 75%
Each of these elements is graded up to 20 points.
The projects are carried out by groups of two students. There may be discussions of projects for some groups.
Grades of the practical and theoretical components
The grade of the practical component is defined as:
- PRAT = PR
The grade of the theoretical component is defined in two diferent ways, depending on when the grade is obtained:
- TEOR= (0.35*T1 + 0.40*T2) / 0.75
- TEOR = ER
The "frequência" grade is the same as the practical component:
- FREQ = PRAT
Final grade and Success
The final grade is calculated using the formula:
- FINAL = 0.20 * FREQ + 0.75 * TEOR + 0.05 PA
Sucess depends on the following condition:
- Success = FREQ >= 9.5 e TEOR >= 9.5
All the intermediate grades are rounded to two decimal places.
The final grade is an integer number.
Validity of the "frequência" obtained this year
The "frequência" grade obtained in the current school year will be valid in the next school year.
"Frequência" from previous year
A "frequência" grade obtained in previous year is valid in the current school year. It is possible to improve the "frequência" grade.
Any type of fraud in any component of the assessment causes the student to imediatelly fail to pass the course in the current academic year (even if there are exams scheduled).
1. Introduction to programming languages; 2. Python basics; 3. Variables and data types; 4. Code readability; 5. Programming methodologies; 6. Control structures; 7. Repetition structures; 8. Functions and modules; 9. Strings; 10. Reading and writing data in persistent storage; 11. Basic data structures: arrays, lists, dictionaries, tuples; 12. Basic algorithms: sorting and dichotomic search, dictionaries traversals; 13. Programming structure and design; 14: Libraries for data handling and visualization. 15. Selectiom of fundamental scientific algorithms relevant for the area of the program (physics, biology, etc).