Programming in C++
This course teaches the fundamentals and unique elements of the C++ programming langauge. It emphasises larger projects, with students turning in 5 larger coding projects over the term.
Instructor: Atli Fannar Franklín
Term: Spring
Course Overview
This course teaches the fundamentals and unique elements of the C++ programming langauge. It emphasises larger projects, with students turning in 5 larger coding projects over the term.
Prerequisites
- Basic programming knowledge.
- Basics of data structures.
Grading
- Assignments: 50%
- Final Exam: 40%
- Quizzes: 5%
- Participation: 5%
Schedule
| Week | Topic |
|---|---|
| 1 | Compilation, typing, syntax, integer representation and bit operations. |
| 2 | Stack memory, arrays and strings, file operations and command line arguments. |
| 3 | Makefiles, header files, call by value and reference, structs and classes, operators constructors and desctructors. |
| 4 | Heap memory, pointers, memory allocation, new, delete, dynaic arrays and RAII. |
| 5 | Linked structures, linked lists, trees, function pointers and functors. |
| 6 | Casting, static variables, singletons, the standard library and templates. |
| 7 | More on the standard library, more on templates and introduction to inheritance. |
| 8 | Protected, virtual, interfaces, enums, polymorphism and error handling. |
| 9 | Debuggers, libraries and more standard library material. |
| 10 | Multithreading. |
| 11 | Network programming and sockets. |
| 12 | Summary and exam preparation. |