CS4414: Recitations (Labs)

 

CS4414 will have a required weekly recitation focused on practical C++ and Linux skills and the homework assignments.  The in-person version will be on Mondays from 4:55-6:10pm in 116 Kennedy Hall (Zoom also available for those unable to attend in person).

Sign up for DIS 201 if you plan to attend in person, and DIS 202 if you plan to attend remotely.  People who are in DIS 201 will be assigned seat numbers for Kennedy Hall 116 via CMS (link is to the left).  If at any point you cannot attend in person, just join the Zoom or watch the recorded Zoom video.

Sagar (srj57@cornell.edu) is running the recitations. Alicia (yy354@cornell.edu) is taking notes.

   Date Topic, Zoom Link Slides, Notes Remarks, chapter references, additional recommended readings (if any).  BO: Bryant and O'Hallaron.  BS: Bjarne Stroustrup.
   1. Sept 07 Emacs, C++ slides-pdf, notes-docx An overview of the Emacs editor. Discussion of my word-count program in C++ including the optimizations implemented to improve performance.
   2. Sept 14 C++ types and containers slides-pdf, notes-docx A discussion of C++ primitive and user types, pointers and arrays. Using standard template library provided vectors and maps.
   3. Sept 21 The Linux Command Line no slides, notes-docx For further reading, refer to the book The Linux Command Line
   4. Sept 28 My solution to HW1 code, notes-docx The code does not implement division. I will release division after HW2 is finished. Do not copy my code directly, but use it as a reference.
   5. Oct 05 Compiler optimizations, C++ iterators slides-pdf, notes-docx BO Chapter 5, BS Chapter 12
   6. Oct 12 Sokoban solver slides-pdf, notes-docx A walkthrough of optimizations and performance analysis of my Sokoban solver
   7. Oct 19 C++ templates, Sokoban Part II slides-pdf, code, notes-docx Refer to my code for the solution presented. If more interested, extend my solution using templates to implement a general 1-player solver (and solve games Sudoku, Kakuro etc. using it)
   8. Oct 26 Multithreading Part I, SST templates slides-pdf, notes-docx Discussion of concurrency control through atomics and mutexes, a presentation of how SST uses templates and variadic templates
   9. Nov 02 Multithreading Part II slides-pdf, notes-docx Extensive evaluation of wc++
   10. Nov 09 Multithreading Part III, Lazy evaluation in C++ slides-pdf, notes-docx BS Chapter 15, Chapter 6 of Functional Programming in C++ by Ivan Cukic
   11. Nov 30 Distributed file systems slides-pdf NFS, Ceph, and general object-based file systems
   12. Dec 07 Quiz review slides-pdf A general summary of the course with a focus on content relevant for the quiz
   13. Dec 14 Writing good code slides-pdf Some software design principles, specifically related to designing different levels and forming the right kinds of abstractions