1. Accueil
  2. EN
  3. Studying at ULB
  4. Find your course
  5. UE
INFO-H304

Compléments de programmation et d'algorithmique

academic year
2024-2025

Course teacher(s)

Jérémie ROLAND (Coordinator)

ECTS credits

5

Language(s) of instruction

french

Course content

  • C language:
    • Syntax and semantics
    • Manual memory allocation and deallocation; pointers
  • C++ language:
    • Syntax and semantics, object oriented programming aspects
    • Templates and C++ Standard Template Library (STL)
  • Basic analysis of algorithms:
    • Big-O, Omega and Theta notations
    • Notions of algorithm and complexity
    • Main complexity classes
  • Data structures:
    • General principles
    • Linked lists
    • Priority queues, heaps
    • Binary search trees
    • Hash tables
  • Sorting algorithms:
    • Insertion sort
    • Mergesort
    • Heapsort
    • Quicksort
    • Linear sort: counting sort and Radix sort
  • Algorithmic strategies:
    • Divide-and-conquer
    • Backtracking
    • Dynamic programming
    • Greedy algorithms

Objectives (and/or specific learning outcomes)

  • C and C++ programming:
    • to be able to write simple programs in C/C++
    • to understand and to use the basic principles of dynamic memory allocation
  • Algorithms and data structures:
    • to be able to design algorithms for simple problems using the basic algorithmic techniques (divide-and-conquer, backtracking, dynamic programming, etc.)
    • to be able to design and use elementary data structures adapted to these problems (arrays, linked lists, hash tables, binary search trees, etc.)
    • to be able to analyze the complexity of these algorithms

Prerequisites and Corequisites

Required and corequired courses

Cours ayant celui-ci comme co-requis

Teaching methods and learning activities

Theory courses supported by slides and computer demonstrations. Direct application on computer via a virtual machine

Exercice sessions: programming on computer but also some theoretical exercices on paper

Programming project on a given subject, in small groups of students

Contribution to the teaching profile

This teaching unit contributes to the following competences:

  • Abstraire, modéliser et simuler des systèmes physiques complexes rencontrés dans les applications biomédicales (bioélectricité, biomécanique, écoulements, etc.)

  • Se représenter les mécanismes biologiques fondamentaux depuis la biochimie de la cellule jusqu’au fonctionnement des principaux systèmes de la physiologie humaine

  • Gérer, explorer et analyser les données médicales (dossier médical, imagerie, génomique, statistiques)

References, bibliography, and recommended reading

  • The C Programming Language (Second Edition), B.M. Kernighan and D.M. Ritchie, Prentice Hall (1988)
  • The C++ Programming Language (Fourth Edition), B. Soustrup (2013)
  • C++ for Java Programmers, M.A. Weiss (2003)
  • Introduction to Algorithms (Third Edition), T.H. Cormen et al. (2009)

Course notes

  • Podcast
  • Université virtuelle

Other information

Contacts

Jérémie Roland (Jeremie.Roland@ulb.be)

Campus

Solbosch

Evaluation

Method(s) of evaluation

  • Project
  • Oral examination

Project

Oral examination

  • Continuous evaluation: programming project (5 points)
    • Group project on an imposed subject
    • Specifications communicated in October, including evaluation criteria
    • Intermediate deadline in November: code with basic functionalities
    • Final deadline in December: code with full functionalities + report
    • Use of artificial intelligence authorized but under strict rules: any use of AI should be documented and justified, and may only concern debugging or realization of generic tasks not directly linked to the topic of the project. Any code generated by AI will be considered as code generated by someone else and may therefore be sanctioned as plagiarism if its use is not documented.
    • Warning: the project is organized in first session only
  • Final evaluation: oral examination (15 points)
    • 1 question on algorithms (10 points)
    • 1 question on programming (5 points)
    • 45 minute answer preparation time: no access to course material, preparation of answers on blackboard
    • 45 minute answer presentation time
    • Organized in first and second session with the same modalities

Mark calculation method (including weighting of intermediary marks)

The project is graded on a total of 5 and the oral examination on a total of 15.

  • If both grades are above half, the global grade is their sum.
  • If one of the grades is below half, they are recalculated on a total of 20 and the global grade is the minimum of both grades.

In short, in order to validate the course, the student needs to validate both the project and the oral examination.

Reporting of a grade from one session to the next one can only be done for grades above half, in that case reporting is automatic. The project is organized in first session only: in case of failure at the project in first session, it can only be presented again during the next academic year.

Language(s) of evaluation

  • french

Programmes