Master in Informatics and Computing Engineering
Course Unit: Programming Fundamentals
Curricular Years: 1º
Official website: Sigarra
Credits ECTS: 6
Contact hours: 70
Total Time: 162
Lectures: 2x1,5h: João Correia Lopes (JCL)
Recitations: 7x2h: João Correia Lopes (JCL) & Rui Camacho (RCS)
Attendance: 1x1h: João Damas
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:
No previous knowledge is required.
The continuous enrollment of the student in the course is promoted, both with the study and discussion of the course topics in lectures and recitation classes and with in-class and away programming assignments.
Automatic correction tools are used to increase the efficiency of feedback given to the students.
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.
The Python programming language is used for these developments.
Lecture classes are used to present and discuss the topics of the program, using a computer connected to a multimedia projector.
Recitation classes 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, in a weekly basis, to improve the regular and effective development of autonomous learning processes.
In-class assignments are used for summative evaluation in the end of each class (Moodle quizzes). Furthermore, a game-based learning and trivia platform (Kahoot) is used to have formative evaluation in order to assess how effective Lecture classes are and help tuning the pace and emphasis on the class topics.
Physical sciences > Computer science > Programming
Distributed evaluation without final exam.
|Description||Type||Time (Hours)||Date of conclusion|
Students are eligible to the final theory exam, if they do not exceed the absences limit (25% of total number of estimated recitation classes) and if they obtain a minimum of 40% in the evaluation component associated with practical on computer evaluation (PE).
The evaluation will be based on the following components:
LE = Lecture in-class assignments
RE = Recitation and away programming assignments
PEn = Practical on computer evaluation (nth)
PE = (PE1 + PE2 + PE3) / 3
TE = Theory evaluation with one open-book consultation
Final classification = 10% LE + 10% RE + 40% PE + 40% TE
The evaluation of this course uses three types of examinations:
The final classification will be the average of the classification of two evaluation components: Practical on computer evaluation (PE) and Theory evaluation (TE).
Final classification = 50% PE + 50% TE
The student may ask for a single examination, with consultation of one book only, graded in a 0 to 20 scale. If the final classification is greater than 17, the student may be submitted to an oral examination and the final grade is the average of both grades.
No individual component grades (LE, RE, PE, TE) can be reused in another enrolment in the course.
— FPRO, 2018/19