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:00 - 4:20 in GHC 4401.


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 an in-class written midterm exam which will have multiple choice and free response questions.

There will also be a final exam, similar in style to the midterm exam but covering material from the entire semester.


The grading breakdown will be as follows:

  • 80% Homeworks
  • 10% Midterm Exam
  • 10% Final Exam

But if you attend at least 3 extratations, you can:

  • use your midterm grade as your final grade
  • use your final grade as your midterm grade

Thus, you only have to take the final if you want to improve your midterm grade.

You’ll notice that this means you can get a 50% on the midterm 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!


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.