CS4414: Recitations (Labs)


CS4414 will have a required weekly recitation focused on practical C++ and Linux skills and the homework assignments.  The recitation is in-person at Gate G01, Friday 9:40 - 10:55AM.

Alicia and Ricky will take turns running these.

   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