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.