Date |
Topic |
Slides, Notes |
Remarks, chapter references, additional recommended readings
(if any). BO: Bryant and O'Hallaron. BS: Bjarne Stroustrup. |
1. Jan 27 |
Introduction to recitations, setting up your C++ environment |
slides-pdf
|
Provides an overview of the course including major goals, and provides instructions to set up VSCode
with a remote linux machine |
2. Feb 3 |
C++ Types and Containers |
slides-pdf demo
|
Discusses various C++ types and inner workings of std::array and std::vector |
3. Feb 10 |
Linux and C++ Class |
slides-pdf demo
|
Provide overview of Linux and file system, introduction to C++ classes and its object-oriented programing convention |
4. Feb 21 |
More about C++ Class and Compilation |
slides-pdf
|
More about C++ class constructor and hierarchy introduction; introducing C++ compilation with MakeFile and CMakeLists. |
5. Feb 24 |
C++ resource managemenet & C++ pointers |
slides-pdf demo
|
Introduce C++ resource management, stack and heap memory, and how to write the program memory safe, using C++ pointer and reference types. |
6. Mar 3 |
C++ resource managemenet & C++ functions |
slides-pdf demo
|
More about C++ resource management, introducing RAII principle, smart pointers. Function parameter and return types. |
7. Mar 10 |
C++ Templates |
slides-pdf demo
|
Introduce C++ template: function templates, class templates, template specializations and variadic template. |
8. Mar 17 |
Multi-processing and multi-threading |
slides-pdf demo
|
Introduce two ways of parallelism in C++, multi-processing and multi-threading. For multi-processing, introduce fork() and exec() functions; for multi-threading, introduce thread's creation and accessing. |
9. Mar 24 |
Performance(Gprof) and multi-threading I |
slides-pdf demo
|
Introduce CMake and performance profiling tool: GProf. Introduction to multi-threading programing. |
10. Mar 31 |
Multi-threading and syncrhonization II |
slides-pdf demo
|
Introducing concurrency under multithreading, and synchronization using mutex and locking mechanism. |
11. Apr 14 |
Multi-threading and syncrhonization III |
slides-pdf demo
|
Introducing condition variable, and reader&writer locking implementation demo |
12. Apr 21 |
Prefetching and Caching |
slides-pdf demo
|
Introducing motivation and implementaion about prefetching and caching, perform a demo that runs Memcached locally through telnet and use a Python interface, python-memcached, to interact with data therein |
13. Apr 28 |
Prelim2 Review |
slides-pdf
|
Review of course materials for prelim2 |