Welcome to CS2024, Fall 2025 edition!

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


Course Schedule


CS2024 Course Schedule Fall 2025
CS2024 Course Syllabus

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. The next standard is due out next year (C++26). After a standard is finalized it still takes some time for compilers to adopt all of the features in the standard. For example, there are a number of C++23 features that are not implemented in various compilers, and there are even a couple of C++20 features not present. Given this, we will not cover all of the very latest changes to the standard.

While modern C++ is great, there is still a lot of "legacy" C++03 code out in the world. As such, I focus the first half of our semester covering C++03. This prepares you for what you might find in existing code bases, and also gives you an appreciation for changes made in modern C++. Modern C++ generally refers to C++11 and later.

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++.

NOTE: I'm aware that some other courses may require/encourage you to use Visual Studio Code. Out of the box, Visual Studio Code doesn't really know how to deal with C++ projects that contain multiple C++ files. All of your assignments will require a C++ project with multiple files starting with Assignment #3. Now, it *is* possible to configure Visual Studio Code to allow for this, but it is a bit of a pain to do so. On top of that, if you plan to use C++ in a professional setting, you will more likely be using Visual Studio (NOT Visual Studio Code). As such, I'd prefer if Windows users would use Visual Studio Community Edition 2022 as outlined in the instructions below.

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

Quizzes

This semester I will be giving weekly quizzes in class that will count towards your grade. Quiz dates will be listed in the course schedule. If you have accommodations for extended testing times I will be in contact with you regarding your options for quizzes.


Assignments

Assignments will be given weekly (check the course schedule 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. When submitting assignments for CS2024, you are required to follow the CS2024 Commenting Guidelines. An example of commenting in a very simple file is found in sample.cpp.

If you know someone who has taken this course before, you may be aware that our assignments generally build on each other as we create a text-based "Menu system" using C++. A text based menu system is something you can use in a command line environment; it presents you with a menu of choices that you can choose by entering a number or letter and pressing RETURN/ENTER. Very archaic! However, it still allows me to present many C++ concepts in a simple environment. What changes from year to year is what we build a menu system to "do". In the past I've done things such as a "Tool Inventory", "Baseball statistics" and even a "Pet Shelter". This year we're going to create a menu system that would allow you "drive a model train". This will all be virtual of course, but there may be an opportunity to use your code to drive an actual model train in my office the second half of the semester!



Course Staff and Office Hours


Ron DiNapoli, Lecturer — 460 Gates Hall

rd29@cornell.edu
Office Hours: Tuesdays, 4:45PM - 6:00PM
Wednesdays, 4:45 - 6:00PM


Undergraduate Consultants:


Mohamed Katary
mtk67@cornell.edu
Office Hours: Mondays, 12:00PM - 1:30PM
Location: Uris Hall 375A

Serena Inderjit
si278@cornell.edu
Office Hours: Wednesdays, 1:00PM - 2:00PM.
Location: Upson Hall 152

Joanna Andrews
jda242@cornell.edu
Office Hours: Wednesdays, 10::00AM - 11:30AM. (Zoom link for 9/3)


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 28.