Duration
20h Th, 100h Proj.
Number of credits
Bachelor of Science (BSc) in Computer Science | 7 crédits |
Lecturer
Language(s) of instruction
French language
Organisation and examination
Teaching in the second semester
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
The course is made of a certain number of theoretical lessons (+/- 10 lessons) and various programming projects (4) that must be solved by students, individually or by groups of two.
The theoretical courses aims at introducing concepts required to do the projects. The theoretical courses is made of 4 parts:
Part 1: Advanced C Concepts
- Chapter 1: Type Definition
- Chapter 2: Genericity
- Chapter 3: Program Arguments
- Chapter 1: Compilation
- Chapter 2: Library
- Chapter 3: Tests
- Chapter 4: Documentation
- Chapter 5: Debugging
- Chapter 6: Source Code Management
- Chapter 1: Introduction to Graphical User Interfaces
- Chapter 2: Interactive Applications
- Chapter 3: MVC Pattern
Learning outcomes of the learning unit
The objective of the course is to allow students to apply principles studied in the programming courses of the 1st Bachelor (INFO0946 and INFO0947) but, also, to learn to write programs, in C, that are correct, efficient, elegant, and readable.
At the end of the course, the student will be able
- to produce a software architecture that is rigourous, efficient and elegant.
- to handle opaque types, program arguments, and write "generic" C code.
- to handle varous tools for helping the programmer, such as the Makefile, library generation, unit tests (with the Seatest library), code documentation (doxygen), code debugging (gdb, valgrind), source code management (svn, git-hub).
- to build a graphical user interface with GTK and the MVC pattern.
Prerequisite knowledge and skills
The course requires several corequisites:
Planned learning activities and teaching methods
Practical application (i.e., project solving) of concepts/tools seen during lessons.
Mode of delivery (face to face, distance learning, hybrid learning)
Face-to-face course
Additional information:
Theoretical lessons are based on slides (cfr. web site). Students are supposed to add personal notes on the slides. The audience is expected to actively participate to each course.
Home works are distributed during the semester.
Exercises statements are available online (cfr. web site)
The course is given during the second semester.
Recommended or required readings
The course slides are available on the course web page. A printed version is made available at the CDC (end of January). Students are supposed to have a copy of the slides as soon as possible
During the semester, students also receive an individual feedback on their projects.
In addition, students can rely on two documents:
- Critères de Style, document describing programming sytle criteria. An electronic version (PDF) is available on the course Web page. A printed version is availabe at the CDC (end of January).
- Critères de Langage, document describing various ways of using the C langugage, as we teach it during the course. An electronic version (PDF) is available on the course Web page. A printed version is availabe at the CDC (end of January).
- R. Malgouyres, R. Zrour, F. Feschet. "Initiation à l'Algorithmique et à la Programmation en C". Ed. Dunod 2011.
- M. Divay. "Algorithmique et Structures de Données Génériques". Ed. Dunod 2004.
- A. Braquelaire. "Méthodologie de la Programmation en C". Ed. Dunod 2005.
- B. W. Kernighan, D. M. Ritchie. "La Langage C". Ed. Dunod 2004.
- J.-L. Imbert. "Algorihmes Fondamentaux et Langage C". Ed. Ellipses 2008.
- R. Mecklenburg. "Managing Projects with GNU make". Ed. O'Reilly 2004.
Written work / report
Additional information:
Students are evaluated only based on projects. The weighting is the following
- Project 1: 15% of the final grade
- Project 2: 20% of the final grade
- Project 3: 15% of the final grade
- Project 4: 50% of the final grade
The 4th project must be done by group of two. It requires, in addition to C code, a written report and an oral defense. 50% of the project grade is assigned with the evaluation matrix, 20% for the learning outcomes, 15% for the written report, and 15% for the oral defense and project demo.
Students have to submit all projects. In case of non respecting this rule, the student will receive an absence grade.
In case of failure in june, all projects with a grade < 10/20 must be redone for the resit (no support will be provided during the summer).
- Regarding the 4th project, it must be redone individually. However, the report and the defense are not anymore part of the assignment. The grade will thus be assigned based on the evaluation matrix (75%) and the project learniing outcomes (25%).
- a student cannot, of course, copy (or be inspired) by project realised during the semester by one of your friends. Plagiarism is prohibited.
- all projects that must be redone must be submitted (deadline: 1st day of the resit), otherwise an absence grade (for the resit) will be assigned
Work placement(s)
Organisational remarks and main changes to the course
The theoretical course is made of, more or less 10 lessons (typically, the theoretical course ends around Easter). A few exercises sessions and assignment coaching are organized throughout the semester
Students are invited to interact with the educational team through the ecampus forum, for any questions related to the theoretical courses and the assignments.
Contacts
Coordinator/Lecturer: Benoit Donnet -- Office 1.87b (B28)
TA:
- Emeline Marechal -- Office 1.73b (B28)
- Vincent Jacquot -- Office 1.72b (B28)