- Accueil
- EN
- Studying at ULB
- Find your course
- UE
-
Share this page
Programmation orientée objet
Course teacher(s)
Mahmoud SAKR (Coordinator)ECTS credits
5
Language(s) of instruction
french
Course content
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:
-
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).
-
Understand the principles of object-oriented programming (OOP) and apply them to design and implement software in C++.
-
Develop competences in applying OOP design in software projects, using OOP principles to create maintainable software
-
Learn basic computer architecture concepts like memory allocation and file I/O in C++.
-
Develop debugging and problem-solving skills in a programming environment.
-
Develop competence in writing efficient code that minimizes execution costs and optimizes resource utilization.
-
Explore practical applications of C++ in creating and managing software projects that link to other Polytech courses.
-
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