Welcome to CS2024, Fall 2023 edition!

This site is a work in progress. Stay tuned for more details!


I'm aware that CS2024 is listed as being "full" and new adds are not being allowed. This is because the current enrollment matches the capacity of the room we are scheduled in (110 Hollister). I have requested that the class be moved to a bigger room, however it is difficult to find an available, larger room in our time slot. All of this said, there is usually a bit of "turnover" the first couple of weeks of class with many students dropping the course (and new students adding the course). There is no waitlist for CS2024, but if you wish to add it, I believe you will get an opportunity during the first two weeks. I should also add that if you haven't successfully enrolled in the course, please do NOT try to attend lecture. Given the size of the classroom we are in, there would be too many students in the room and it would pose a safety concern. If you are hoping to add the course, please contact me for obtaining access to lecture notes and other course materials.

Course Schedule

CS2024 Course Schedule Fall 2023

About the Course

The goal of CS2024 is to teach as much of the C++ language as possible with an eye towards your being able to use it effectively in future classes that may depend on it and/or in a professional setting. C++ is ever changing with new standards released every three years. This semester I'm presenting the material in a new way with major changes. The first half of the semester will focus on "Classic C++" (C++ '03 standard). We'll address C++11 and newer the second half.

A Note on Compilers
In order to build a C++ program on your machine, you will need a C++ compiler. MacOS users should just download Xcode from the Apple Store (it's free). Linux users should be able to use g++ (also freely available). Windows users should download Visual Studio/Visual C++.

Coming Soon: Instructions on installing compilers

Here are instructions for installing/using compilers for the following systems:


Assignments will be given weekly (check syllabus for due dates) and will be submitted electronically via the computer science department's CMS system. Your assignments will be submitted via a .zip file containing all required C++ files as well as a writeup. Check out the sample assignment for more details.

A writeup is a document that accompanies your source code and gives you a chance to summarize the problem you are trying to solve, write a little bit of detail on how you solved it and then talk about other ways to solve the problem (if applicable) and what you've learned from completing the assignment. CS2024 is not a technical writing class, so I'm not expecting you to write long essays. However, especially for the more complicated assignments, I do expect that you might get to the point where your write-ups are between 1-2 pages. All of this said, do not stress over this. The write-ups are worth 10 points on every assignment, and you'll always receive 5 points just for trying! The first assignment will NOT require a writeup.

Course Staff and Office Hours

Ron DiNapoli, Lecturer —331 Gates Hall

Office Hours: Tuesdays, 4:30PM - 6:00PM
Wednesdays, 5:00 - 6:00PM

Alec Goldberg, MEng TA

Office Hours: Tuesdays, 5:45PM - 7:15PM — Rhodes 574
Thursdays, 5:45PM - 7:15PM — Rhodes 574

Logan Roeling, Undergraduate TA

Office Hours: Mondays, 1:15PM - 3:15PM — Rhodes 408

Alex Shen, Undergraduate TA

Office Hours: Mondays, 5:00PM - 6:00PM — Rhodes 402

Course Management

We'll be using Canvas for course management this semester (in addition to using the Computer Science department's CMS system for assignment submission). Please let me know if you do not have access to CS2024 in Canvas by Thursday, August 24.