2017-2018 / INFO0027-2

Programming techniques

Duration

30h Th, 24h Pr, 70h Proj.

Number of credits

 Bachelor in computer science5 crédits 
 Master in data science (120 ECTS)5 crédits 
 Master of science in computer science and engineering (120 ECTS)5 crédits 
 Master in data science and engineering (120 ECTS)5 crédits 
 Master in computer science (120 ECTS)5 crédits 
 Master in computer science (60 ECTS)6 crédits 
 Master in mathematics (120 ECTS)6 crédits 

Lecturer

Laurent Mathy

Language(s) of instruction

English language

Organisation and examination

Teaching in the second semester

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

The course runs as two parts: the first part addresses algorithmic problem solving and describes examples of advanced algorithms, using C as the reference programming language. The second part provides an introduction to parallel programming on multi-core systems, using Java as the reference programming language.
Specifically, the first part content comprises the following topics: programming as problem solving; advanced sorting; balanced search; radix search; external algorithms; algorithms on graphs. The second part content comprises: principles of multiprocessor programming; contention and scalable locking; introduction to parallel data structures and algorithms; scheduling and work distribution.

Learning outcomes of the learning unit

In this course, the students learn: - the principles of complex program decomposition; - to write efficient programs - knowledge of advanced algorithmic techniques - techniques for parallel programming

Prerequisite knowledge and skills

Knowledge of basic algorithms. Practical knowledge of the C and Java programming languages.
INFO0902 or INFO2050
INFO0062

Planned learning activities and teaching methods

Lectures and practicals, both involving problem solving in class. The students carry out several assignments: some individual  programming assignments and some group mini-projects. The exact number and type of assignment varies depending on the year, although the student workload is kept similar.

Mode of delivery (face-to-face ; distance-learning)

Weekly lectures and practicals, Q2

Recommended or required readings

Optional recommended readings: Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press. Algorithms in C; Sedgewick; Addison Wesley. The Art of Multiprocessor Programming; Herlihy and Shavit; Morgan Kaufmann.

Assessment methods and criteria

Written and oral  exams and assignments.The assignments count towards 40% of the final mark, while each exam counts towards 30% of the final mark. Each part of the course bears equal weight in the final mark. During the written exam, the students can use the lecture and practical notes that were officially distributed on the myulg course page (and only those).
Students who do not submit at least half the projects receive an absence mark for the corresponding exam session.
There is no guaranteed support for projects to be resubmitted for the resit session.

Work placement(s)

Organizational remarks

Contacts