These projects are a part of the Ecole 42 curriculum.
This repository contains my solutions to the series of projects under Ecole 42 CPP Modules. These exercises were my first touch with C++, transitioning from C.
The cpp modules cover the fundamentals of C++ programming. The modules are roughly in order by complexity. The first modules cover the basics of C++ syntax and Object-Oriented programming. The following modules add on top or this, introducing more features and concepts to utilize. Here is a summary of main lessons learned:
- C++ as a Language: Feels like magic to me at times. It retains C's efficiency and low-level control while allowing high level abstraction that makes the code more robust and easier to work with.
- Object-Oriented Programming: Was a new concept to me, but one I really embrace now. It promotes clear structure, code reusability, scalability and user-friendliness for my colleagues.
- Peer-to-Peer learning && Soft Skills: Even though these projects were completed solo, my best resource was my fellow students. Every single exercise was evaluated by a peer (and I also evaluated theirs!), so we had plenty of interesting discussions about best practises and alternative ways to solve problems.
The modules cover the following topics:
| Module | Topics |
|---|---|
| 00 | Key differences from C and fundamentals of OOP. |
| 01 | Memory allocation, pointers and references. |
| 02 | Ad-hoc polymorphism, overloading and Orthodox Canonical class form. |
| 03 | Inheritance. |
| 04 | Subtype polymorphism, abstract classes and interfaces. |
| 05 | Try/Catch and Exceptions. |
| 06 | Casting. |
| 07 | Templates. |
| 08 | Templated containers, iterators and algorithms. |
| 09 | Containers. |