Welcome to CS2024, Fall 2024 edition!

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


Course Schedule


CS2024 Course Schedule Fall 2024


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

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:

Assignments

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 —333 Gates Hall

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


Undergraduate TAs:



Abigail Kim
ahk89@cornell.edu
Office Hours: Tuesdays, 3:00PM - 4:30PM. (Rhodes 503)



Daniel Chuang
dc863@cornell.edu
Office Hours: Mondays, 3:00PM - 4:30PM (Mallot 207)



Roman Chavez
rqc3@cornell.edu
Office Hours: Mondays, 6:00PM - 7:00PM (Rhodes 574)




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