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

Programmation orientée objet

academic year
2026-2027

Course teacher(s)

Mahmoud SAKR (Coordinator)

ECTS credits

5

Language(s) of instruction

french

Course content

This course is taught in French. 

This course is the second programming course for civil engineering students and serves as their first introduction to C++. It assumes that students already master fundamental programming concepts—such as variables, loops, conditionals, arrays, functions, and recursion—and are able to reason through basic algorithms. The course begins with a concise introduction to C++ syntax and development tools to bring all students up to speed with the language environment.

The primary focus of the course is practical programming training, with a measured introduction to object-oriented programming (OOP). Only core OOP concepts—classes, inheritance, polymorphism, and operator overloading—are covered, with an emphasis on code organization rather than advanced design or large-scale software architecture. While design patterns are mentioned briefly for awareness, they are not taught in depth.

A distinctive feature of the course is its integrated approach to computer architecture: topics such as memory management, peripherals, and system resources are introduced in context, alongside relevant programming concepts, rather than in dedicated theory lectures. This reinforces good programming practice and creates natural synergies with related courses such as ELEC-H301, INFO-H304, and ELEC-H310.

Objectives (and/or specific learning outcomes)

Objectives (and/or specific learning outcomes)

Course Objectives:

  1. Understand the fundamentals of C++ programming, including syntax, control structures, and basic data handling, dynamic memory management, smart pointers, templates, and the Standard Template Library (STL).

  2. Understand the principles of object-oriented programming (OOP) and apply them to design and implement software in C++.

  3. Develop competences in applying OOP design in software projects, using OOP principles to create maintainable software

  4. Learn basic computer architecture concepts like memory allocation and file I/O in C++.

  5. Develop debugging and problem-solving skills in a programming environment.

  6. Develop competence in writing efficient code that minimizes execution costs and optimizes resource utilization.

  7. Explore practical applications of C++ in creating and managing software projects that link to other Polytech courses.

  8. Collaborate on a comprehensive team project that synthesizes all course topics into a practical, real-world application, demonstrating the ability to design, implement, and manage a substantial software project.

Prerequisites and Corequisites

Required and corequired courses

Courses requiring this course

Cours ayant celui-ci comme co-requis

Teaching methods and learning activities

Course Organization

  • A lecture session is held each week, followed by an associated practical session the next week
  • Lectures introduce new concepts (programming, fundamentals of computer science, object-oriented design). Each session also includes a mini-project illustrating the key concepts covered, which will be explained in class  
  • A MOOC available on UV allows you to practice the topics covered in lectures  
  • The course syllabus and a recommended textbook are provided for further study or clarification of any concept.  
  • If you have questions, several resources are available to you:  
    • Ask the instructor during office hours,  
    • Ask the teaching assistants (TAs) during their office hours,  
    • Or ask the student assistants.  
  • Each lab session takes the form of a quiz:  
    • Every other week, it is a formative quiz (ungraded, for practice purposes),  
    • The following week, it is a graded quiz (counting toward your final grade).

References, bibliography, and recommended reading

  • Beginning C++ Horton publié chez APRESS, Auteur Ivor Horton; 2014, download via Cible+ (https://link-springer-com.ezproxy.ulb.ac.be/book/10.1007/978-1-4842-0007-0)
  • Les fondements de l'informatique publié chez Vuibert; Auteur Hugues Bersini

Course notes

  • Syllabus
  • Université virtuelle

Other information

Additional information

The teaching methodology is project-based. Each lecture is split into two parts: (1) presentation of new concepts, followed by (2) live coding of a mini-project that illustrates those concepts in a realistic, engaging context. Multiple projects throughout the semester ensure repeated exposure to key ideas, offering built-in revision and deeper understanding.

GitHub is used as the central platform for all course activities. Through active use, students will acquire foundational version control skills essential for collaborative software development.

Campus

Solbosch

Evaluation

Method(s) of evaluation

  • Project
  • Continuous assessment
  • Oral examination

Project

Continuous assessment

Oral examination

Language(s) of evaluation

  • french

Programmes