The purpose of GPI is to teach you all kinds of cool things you never knew you could do with a computer, and make you super comfortable with using the Unix systems used in 15-122, 15-213, and many other CS courses. Our goal for the course is for you to have a fun break from your other classes, and an opportunity to see some real uses for what you’re learning about.

We will meet on Thursdays from 3:20 - 4:40 EDT on Zoom.


The first 20 minutes of lecture will be a discussion of the reading or a demo.

Once the demo is done, you will have time to work on that week’s homework while the TA’s are available to help.

Labs & Homeworks

Labs are composed of terminal/Unix puzzles involving running the right commands at the prompt or writing a simple script. There will also be a few non-lab homeworks.

This is a 2 unit course. We design the labs to be short, but sometimes they can’t be completed during lecture. In this case, you will have the remaining week to finish the lab.

Late Policy

If you need more time for any reason just ask for an extension. We are fairly lenient with giving extensions; we’d much rather have you complete the lab and learn than not learn.


While we’ll try to cover as much as we can in class, there’s tons of cool, more complex, topics we simply won’t have time to cover. For those who are interested in taking their knowledge of the command line further, we’ll hold a number of optional workshops called “extratations” (a portmanteau of “extra” and “recitation”).


There will be two in-class written exams with both multiple choice and free response questions. The second exam will be cumulative.


The grading breakdown will be as follows:

  • 80% Homeworks
  • 10% Exam 1
  • 10% Exam 2

All homework assignments will be weighted equally, so missing an assignment is roughly equivalent to dropping a letter grade.

Also, if you attend at least 3 extratations, you can replace the lower of your two exam grades with the higher. This means you can:

  • use your Exam 1 grade as your Exam 2 grade
  • use your Exam 2 grade as your Exam 1 grade

Thus, you only have to take Exam 2 if you want to improve your Exam 1 grade.

You’ll notice that this means you can get a 50% on Exam 1 and pass with an A as long as you’ve completed all the labs. Anyone who puts effort into this class can get an A.

Collaboration Policy

On labs, you may…

  • use manual (man) pages for commands in question.
  • use Google to learn how to use a command/solve a problem.
  • ask TAs for help.

On homeworks, students may point peers to particular commands, but should refrain from describing a solution to a problem that uses specific commands’ arguments or combinations of commands. The purpose of labs is to learn by solving. If you solve the lab and then explain the solution to others, they haven’t learned!

We will also have a course Piazza where students may ask questions to TAs.


If at any point during the semester you’re having trouble with anything in the course or want to know more about a topic, please do not hesitate to email the course staff or ask one of us in person! We’re here to help you and want you to learn!

Copyright © 2014, Great Practical Ideas in Computer Science.