Titular Professors
Professors
None
The students acquire the knowledge and develop the following abilities:
1. To understand a real problem with all their conditions and their limitations.
2. To withdraw the important contents from the real problems in order to analyze them correctly and to be able to make them explicit.
3. To find out adequate and precise solutions for the real problems.
4. To choose, among all the possible solutions, the most efficient one.
5. To learn a pseudocode to improve the reflection about an imperative language.
6. To order different sentences correctly.
7. To understand how a program works without being necessary to execute it.
8. To reach the basic knowledge to carry out a structured and modulated programming.
9. To master the notions of a real imperative language (C language).
10. To design and use existent components in order to obtain more complex algorithms.
11. To know a real program environment that allows putting into practice the daily programs.
12. To work as a team in the domain of analysis, design and the software implementation.
13. To acquire continued work and study habits.
Chapter 1. Introduction
Chapter 2. Introduction to algorithms
Chapter 3. Functions and procedures
Chapter 4. Structured data types
Chapter 5. Files and modular programming
Chapter 6. Pointers and dynamic memory
Chapter 7. Linear data structures
Chapter 8. Introduction to recursion
The Programming classes want to promote the students' active learning through their involvement in the learning process. From the first day, the student is an active member and learns as the student carries out the different activities on their laptop. To solve these activities, the student must take the initiative, study and read some documentation. As such, a computer is an essential tool for the student to successfully achieve the learning outcomes of this subject.
The classes are designed for the student to code software every day. The theoretical classes are combined with practical sessions where the student can validate the reliability of the acquired knowledge.
The student's acquired knowledge is reinforced during the classes by performing three individual projects for every semester, which cover the concepts that are taught throughout the academic year. At the same time, the student can also do the Continuous Assessment of the course, which consists of weekly labs that examine the concepts learned during the previous week.
The main assessment activities of the course are: semester exams, projects (2 per semester), and continuous assessment sessions.
The Programming course consists of two semesters, which have the same weight in the final grade of the subject:
Final grade: 50% S1 grade + 50% S2 grade.
In order to carry out this calculation, students must pass both semesters independently, with a grade higher or equal to 5. In case a student, at the end of the academic year, only passes one of the two semesters, this grade will be kept for the following academic year (just one semester grade).
The grade for each semester is composed of two distinct parts, the Knowledge grade, and the Project grade. Both parts also have the same weight in the calculation of the semester grade and must be passed independently with a minimum grade of 5:
Semester grade: 50% Knowledge grade + 50% Project grade.
The Knowledge grade is whichever is higher among the following grades:
Semester´s final exam grade.
70% Final exam grade + 30% CA grade (as long as the final exam grade is at least 4).
The Project Grade is calculated from the individual grades of each project in the semester (must be passed independently), according to the following calculation:
Project Grade: 50% P1 grade + 50% P2 grade.
In case 50% of the highly important academic activities have not been submitted, the final grade for the semester will be a Not Presented (NP).
The CA grade is calculated based on the grades from the lab sessions on a semester basis as well as other activities that can be occasionally done. At the end of each semester, the CA activity with the lowest grade will be discarded, being excluded from the CA average. As such, the calculation of the CA grade for each semester will be made as follows:
CA grade = Average grade of the CA activities discarding the lowest grade.
Continuous Assessment is optional abut can help to improve the Knowledge grade.
Cormen, Thomas H.; Leiserson Charles E.; Rivest Ronald L; Stein Clifford. Introduction to Algorithms, The MIT Press, 2009.
García-Bermejo, J.R. Programación Estructurada en C, Pearson/Prentice-Hall, 2008.
Hanly, Jerry R.; Koffman, Elliot B.; Problem Solving and Program Design in C, Pearson Education, 2013.
Joyanes, L. Fundamentos de la programación. Algoritmos y Estructura de Datos, McGraw-Hill, 2008.
Kernighan, Brian W.; Ritchie, Dennis M. El lenguaje de programación C, Prentice-Hall Hispanoamericana, 1991.
Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P. Data structures and program design in C, Prentice-Hall, 1997.
Weiss, Mark Allen. Estructuras de datos y algoritmos, Addison-Wesley Iberoamericana, 1995.