Code: | EIC0005 | Acronym: | FPRO |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Programming Fundamentals |
Active? | Yes |
Web Page: | https://web.fe.up.pt/~jlopes/doku.php/teach/fpro/index |
Responsible unit: | Department of Informatics Engineering |
Course/CS Responsible: | Master in Informatics and Computing Engineering |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
MIEIC | 193 | Syllabus since 2009/2010 | 1 | - | 6 | 70 | 162 |
Teacher | Responsibility |
---|---|
João António Correia Lopes |
Lectures: | 3,00 |
Recitations: | 2,00 |
Type | Teacher | Classes | Hour |
---|---|---|---|
Lectures | Totals | 1 | 3,00 |
João António Correia Lopes | 3,00 | ||
Recitations | Totals | 8 | 16,00 |
Ricardo Pereira de Magalhães Cruz | 4,00 | ||
Fernando José Cassola Marques | 4,00 | ||
Rui Carlos Camacho de Sousa Ferreira da Silva | 4,00 | ||
João António Correia Lopes | 4,00 |
1 - BACKGROUND
Fluency in the process of software development is a basic prerequisite to the work of Informatics Engineers. In order to use computers to solve problems effectively, students must be competent at reading and writing programs using higher-order programming languages.
2 - SPECIFIC AIMS
The global aim of this Unit is to give the student the ability to create algorithms, and to use a programming language to implement, test, and debug algorithms for solving simple problems.
The student will be able to understand and use the fundamental programming constructs, and the functional approach to programming, specifically effect-free programming where function calls have no side-effects and variables are immutable, and contrast it with the Imperative approach.
3 - PERCENTUAL DISTRIBUTION
Scientific component: 40%
Technological component: 60%
At the end of the course, the student is expected to handle programming problems of medium complexity, using the imperative or functional programming approaches or paradigms.
More specifically, the student will be able to:
The continuous enrolment of the student in the course is promoted, through the study and discussion of the course topics, previously distributed in Jupyter Notebooks, both in lectures and recitation classes and with in-class and away programming assignments.
The student is motivated to find the best ideas to solve specific problems, execute them and implement the programming solutions, in an elegant, legible and efficient (time and space) mode using the Python programming language.
Automatic correction tools are used to increase the efficiency of the feedback given to the students.
Lecture classes (T) are used to present and discuss the topics of the program, using a computer connected to a multimedia projector.
Recitation classes (TP) are used to help students understand the topics of the program and solve the weekly programming assignments.
In-class and away programming assignments are given, on a weekly basis, to improve the regular and effective development of autonomous learning processes and are tested and graded using Moodle assignments.
In-class assignments are used for summative evaluation at the end of each lecture class using Moodle quizzes.
Students are encouraged to use a Web App (Play) containing programming exercises selected by theme: exercises (easy) to perform before the theoretical class, exercises (of average difficulty) to perform before the weekly assignments (RE) and exercises (difficult) to perform before the practical tests in computer (PE).
Students are exposed, in the classroom work, to the use of the same work environment (IDE Spyder, PEP8 and pylint and submission of answers) that is used later in the individual evaluations (PE).
Students are encouraged to go to the "Clinic", which is supervised by monitors, in their first weeks of classes and whenever necessary in the classroom, especially during the first month.
Designation | Weight (%) |
---|---|
Teste | 80,00 |
Trabalho prático ou de projeto | 20,00 |
Total: | 100,00 |
Designation | Time (hours) |
---|---|
Estudo autónomo | 92,00 |
Frequência das aulas | 70,00 |
Total: | 162,00 |
The evaluation will be based on the following components:
LE = Lecture in-class evaluation: Multiple-choice questions about programming concepts, to be answered on an individual basis in the theoretical classroom (the best 20 from a total of 26 are selected)
RE = Recitation and away weekly evaluation: Weekly recitation classes and away programming assignments (the best 10 out of 13 are selected)
PE = Practical on computer evaluation: Individual programming assignments in Moodle (the best 3 from a total of 5 are selected)
TE = Theory evaluation: Multiple-choice questions, about programming concepts, to be answered on an individual basis in Moodle with the consultation of one book
Final classification = 10% LE + 10% RE + 50% PE + 30% TE
Observations:
The evaluation of this course uses three types of examinations:
In the case of students who do not attend classes and go without the weekly evaluation (LE and RE), the final classification will be the average of the classification of two evaluation components: Practical on computer evaluation (PE) and Theory evaluation (TE), as of the regular students.
Final classification = 60% PE + 40% TE
Observations:
In the following academic year, the student can request improvement of classification that includes the practical evaluation in computer PE04 or PE05 and the theoretical evaluation TE01 or TE02, with consultation of only one book, the same as for the regular students.
Final classification = 60% PE + 40% TE
Observations: