C++ Programming ¶
Enroll to Intermediate Level Programming with C++, 2025
Course Contents ¶
- COURSE SCHEDULE AT A GLANCE
- Course Info, Registration, Materials, Grading
- Forming Groups
- GETTING STARTED: Laptop Setup Instructions
- TEAM EXERCISES (37 Pts)
-
LAB_INTRO: Introduction To Classes in C++
2024-05-09, 23:590.00 / 5.00
-
LAB_DEBUG: Introduction to Debugging
2024-05-09, 23:590.00 / 5.00
-
LAB_MEMORY: Leak-Free Code with ASAN and Valgrind
2024-05-09, 23:590.00 / 5.00
-
LAB_INHERITANCE: Virtual Functions and Abstract Classes
2024-05-09, 23:590.00 / 5.00
-
LAB_GDB: Debugging Linked Lists with GDB
2024-05-09, 23:590.00 / 7.00
-
LAB_DICT: STL, Maps, and Iterators
2024-05-09, 23:590.00 / 5.00
-
LAB_HASH: Clash of the Hashes!
2024-05-09, 23:590.00 / 5.00
- INDIVIDUAL EXERCISES (40 Pts)
-
Makefile Tutorial
2024-05-09, 23:590.00 / 5.00
-
MP_INTRO: Makefiles
2024-05-09, 23:590.00 / 10.00
-
MP_COLLAGE: Classes, Inheritance, and Operators
2024-05-09, 23:590.00 / 10.00
-
MP_LISTS: Linked Lists and Algorithms
2024-05-09, 23:590.00 / 15.00
- EXAMS (30 Pts)
-
EXAM 1: 7 May, 2024@11:59 - 14:00
2024-05-07, 14:050.00 / 30.00
-
EXAM 2: 28 May, 2024@11:59 - 14:00
0.00 / 30.00
-
EXAM 3: 18 June, 2024@12:30 - 14:30
2024-06-18, 14:300.00 / 30.00
- LECTURES
WELCOME!¶
Dear students,
The goal of this course is to prepare you for the software engineering positions specializing in C++. In weekly coding exercises, you will be tasked with writing code, debugging code, optimizing code, and/or identifying memory leaks in some complex code base that we wrote for you to solve some fun applied problems, like image manipulation or games. This hands-on approach is designed to mirror the real-world software engineering environment.
We look forward to working with you!
The Course Staff
Course Objectives¶
Upon completing the C++ course, you will:
- Understand key C++ concepts: inheritance, polymorphism, encapsulation.
- Learn essential computing concepts: generic programming, object-oriented programming, manual memory management.
- Gain proficiency in debugging and memory error detection.
Course Topics¶
- Basic tools for developing, documentation, testing, and debugging C++ code.
- C++ concepts: methods, functions, classes, encapsulation, variables, pointers, memory, recursion, lists, overloading, inheritance, templates, polymorphism.
- Data-storage: lists, stacks, heaps, and hash tables.
Prerequisites¶
We expect students to have taken an elementary programming course in either C, Java, or Python before taking this course.