Duration
24h Th, 14h Pr, 8h Labo.
Number of credits
| Bachelor in engineering | 4 crédits | |||
| Master in data science and engineering (120 ECTS) | 4 crédits |
Lecturer
Language(s) of instruction
French language
Organisation and examination
Teaching in the first semester, review in January
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
The course alternates between specific aspect of the C programming language and algorithmic aspects.
The main themes are the following: basic syntax and semantic of the C language, simple algorithms (linear run of an array, cumulative mathematical operations, binary search, introduction to sorting problems), dividing a problem into sub-problems, introduction to development methodology (problem analysis, invariant loop), basic data structures (record, array, string, files), program modularity (function/procedure, global variable), documenting code with specifications (defensive programming), pointers and dynamic data structures.
The course structure is the following:
- Introduction
- Chapter 1: Block, Variable, Simple Instruction
- Chapter 2: Control Statement
- Chapter 3: Development Statement
- Chapter 4: Data Structures
- Chapter 5: Code Modularity
- Chapter 6: Pointers
Learning outcomes of the learning unit
The purpose of the course is to introduce, to students, basic principles of computer science and, in particular, the basic principles of programming. The concept of a correct and efficient algorithm is highlighted, in particular in the context of a strict methodology. Dividing a problem into sub-problems, construction the solution with invariant loop, documentation of the code through specifications. The programming language studied is C. A the end of the course, the student will be able to analyze an average size problem, to propose data structures, to divide the problem into sub-problems and to solve each one, in C, in an efficient way.
Prerequisite knowledge and skills
The course does not assume any knowledge in computer science or programming. However, the course assume each student has a good knowledge of French (spoken and written).
Planned learning activities and teaching methods
In addition to the course, practical sessions (i.e., solving a problem) will be weekly organized. Each practical session lasts 2 hours. Each student will have 8 practical sessions during the semester. Those sessions are mandatory. Students should prepare a few exercices, at home, before each practical session.
In addition, laboratory sessions (i.e., solving a problem in front of a computer) will be organized. Each laboratory session lasts 2 hours. Each student will have 4 laboratory sessions during the semester. Those sessions are mandatory.
Exercices (written and labs) are organized by groups of roughly 50 students. The audience split into groups is communicated to students in the begining of the academic year (typically by the end of September)
Mode of delivery (face-to-face ; distance-learning)
The course is given during the 1st semester, face-to-face. The course is built around examples and small exercises. The audience may be asked to actively participate to lessons. Students are also supposed to take additional notes.
Recommended or required readings
The course support is mostly made of slides. A printable version (2 slides/page) is available, since the starting of the Academic Year, at the Centrale des Cours. An electronic version of the slides is also available on the course web page. The students are supposed to have, as soon as possible, the slides.
A written support for exercises (practical and laboratory sessions) is also available at the Centrale des Cours. An electronic version is also available on the course web page. Each student is supposed to have the exercises book at the first practical (or laboratory) session.
There is no mandatory book in this course. However, any student desiring to have an additional written support may refer to those books (in French -- they all were used to build the course):
- Claude Delannoy. "Programmer en Langage C". Editions Eyrolles. 2010 (5ème édition)
- Rémy Malgouyres, Rita Zrour, Fabien Feschet. "Initiation à l'Algorithmique et à la Programmation en C". Editions Dunod. 2011 (2ème édition).
- Yves Granjon. "Algorithmes en Pascale et en Langage C". Editions Dunod. 2004 (2ème édition).
Assessment methods and criteria
The students are assessed as follows:
- A written test is organized by the end of October/early November. Typically, the test is about the Introduction and the first 4 chapters of the course (be careful, the subject may changed wrt what has been studied during lessons). This test is mandatory and counts for 10% of the final grade (i.e., 2/20) of January.
- MCQs. During the semester, 5 practical sessions will begin with a very short test (10 minutes) of the shape multiple choice questions (MCQs). The objective here is to ensure the student has (at least) read his course before the practical session. The total of the MCQs will count for 10% of the final grade (i.e., 2/20) of January. The agenda of MCQs is given at the begining of the semester
- Exam. The exam is written and mandatory. It is organized in January and lasts 4 hours. The exam will count for 80% for the final grade (i.e., 16/20) of January.
Work placement(s)
Organizational remarks
The course is given during the first semester.
Theoretical lessons and written exercices are given on Tuesday afternoon.
The 4 labs are given (depending on the group Monday afternoon, Wednesday afternoon, and Friday afternoon.
The detailed agenda of the course is provided on the course Web page.
Contacts
Teacher: Benoit Donnet (email(benoit.donnet@ulg.ac.be) -- Office 1.15 (B28)
)
TAs:
- Korian Edeline (email(korian.edeline@ulg.ac.be) -- Office R.71b (B28) )
- Michaël Castronovo (email(m.castronovo@ulg.ac.be) -- Office R.14a (B28) )
- Jean-François Grailet (email(jean-francois.grailet@ulg.ac.be) -- Office 1.14 (B28) )
- Justin Iurman
Items online
Course Web Site
The course Web site is of the highest importance as it covers PDFs, detailed agenda, exercices/exam corrections, and contact information