Homework 1
This first assignment is a tad unusual: unlike all subsequent homeworks, this one does not use the CS 70 course server. Instead, you'll be getting some firsthand experience setting up a C++ development environment on your own laptop or PC! Then, you'll use this environment to practice using git, and writing and compiling C++ code.
Hay! If we're just going to be using the CS 70 server after this, what's the point of going through all the complicated steps of setting up a development environment on our own computer?
Knowing how to set up a development environment from scratch is a key skill that may come in handy in future classes, research, or careers!
It's also a skill you haven't had much chance to practice before: other languages like Python and Java tend to abstract away and streamline large parts of the development process.
Plus, we just think it's really neat to peek "under the hood" at how much the CS 70 server and Helix are doing for you behind the scenes!
Getting Started
This assignment is paired, and your repository belongs to your pair. We have already made it—there is nothing to accept, no group to create on GitHub, and no name to agree on. Your pairing came from the availability and pairing board, and the repository is named after your group.
- Your group is
group (members ) - Your repository for Homework 1 is
repo - You can see it on the web at https://github.com/hmc-cs70-fall2026/
Both of you have push access to that one repository, so you are working in the same place rather than each having a copy to reconcile later. That is the point of pair programming and it is also the thing that makes it easy to see who did what.
The link says the page doesn't exist!
That usually means you are not in the CS 70 GitHub organization yet, rather than that your repository is missing. GitHub hides what you cannot see rather than admitting it is there.
So "not found" and "not allowed" look the same on purpose.
Exactly—so that nobody can go fishing for the names of private repositories. On the server,
cs70-fix-accesswill check your membership and sort most of this out for you.
Do NOT clone it yet. We are doing something a bit different for Homework 1, and the details are in Part 3 below. Cloning now will not break anything, but you will end up doing it twice.
Outline
- Part 1: Team Contract
- Part 2: Written Questions
- Part 3: Set up the Development Environment
- Part 4: Code Reading
- Part 5: Coding Part
- Part 6: Free Swim
- Part 7: Check Your Submission
Useful Information
Ask for (and give each other) help!
Post your questions there, and be sure to answer each other's. Even if you're not 100% sure of an answer, it's okay to jump in and try—we're all here to help each other!
Grading
Completing this assignment is worth 80 points, and will be graded as follows:
- 8 points: Team Contract
- 17 points: Written Questions
- 10 points: Code reading
- 45 points: Coding (completeness, correctness, clarity & style)
Resources
As you work through this assignment, we suggest you keep the following references handy:
- You may want to refer back to the Git and GitHub Help Pages or the relevant sections of Homework 0 for details on how to set up this assignment.
- We recommend working together in person whenever possible. If you have to pair program remotely, use any screen-share or collaborative-editing tool you both have access to.
Reminders
- Pair Programming: Remember, you must work on coding and writing tests as a pair—two people working together at one screen. (Of course you can go ahead and read the assignment and think about it before you meet or in between meetings.)
- Commit Early, Commit Often: Remember to add and commit your files regularly! In particular, don’t forget to push them when you’re finished.
- As a general rule (even outside CS 70!), you should not add generated files of any form (e.g., compiled machine code) to a repository when those files can be automatically produced from files already in the repository. We’ll make one exception this week: we’ll ask you to commit a generated meme to share with the grutors.
(When logged in, completion status appears here.)