Skip to main content
CIS 121: Fall 2018
Eric Eaton
Teaching Assistants:
Course staff
Discussion Forum:
Tuesday/Thursday 10:30 - 12:00
Professor Office Hours:
CIS 120 and CIS 160
Introduction to Algorithms, 3rd edition by Cormen, Leiserson, Rivest, and Stein. The lectures and the reading will draw from the textbook. It is strongly recommended that you buy this textbook.


The grading for the course will consist of:

  • 35% for homework assignments (including final project)
  • 17.5% for each of two midterm exams
  • 25% for the final
  • 5% for recitation attendance. Recitation attendance is mandatory.
Late submission policy:

The following applies to all homeworks, both written and programming, except the final project, which has a separate late day policy. Each student has two free, no-strings-attached late-days. These are to accommodate things like mild sickness, interviews, procrastination, etc. No additional late days will be granted for any of the above reasons. If you are out of late days, then your homework will receive a score of 0. One “day” is defined as anytime between 1 second and 24 hours after the homework deadline. Late homeworks can be turned in via Gradescope.

Collaboration policy for written homeworks:

You are allowed to discuss solutions to problems in groups of three, documenting who you discussed with at the top of your assignment. You are not allowed to write up the solutions together.

Collaboration policy for programming homeworks:

You may not collaborate on any part of programming assignments. This includes discussing solution strategies, sharing code, looking at someone else’s code, using code from online forums (e.g. Stack Overflow), sharing specific test cases, keeping code in a public repository, etc. You may consult any official documentation, such Javadocs or Oracle’s Java tutorials, or any official course material.

TAs must report any instances of cheating during office hours. Both written and programming homeworks are automatically checked for similarity and similar homeworks are also brought up during grading. Any violation of the collaboration policy will be dealt with severely.

Regrade policy for written homeworks and exams:

Each written assignment and each midterm exam will have a regrade request deadline that will be posted typically one week after the assignment or exam has been returned with your score. Note that solutions will be provided in class, so please consult these carefully before requesting a regrade. Please submit a regrade request via Gradescope by the regrade deadline.

Regrade policy for programming homeworks:

We allow you to indicate small errors (defined below) that you have made, which, when fixed, will allow your programs to pass autograder tests. You will need to fill out a regrade request on Gradescope by the regrade deadline, which is one week after you receive your scores. In the form, you must identify exactly the error in your code and include a precise description of the fix that needs to be made (e.g. line numbers). A small error is a problem whose fix should generally require changing only 1 to 2 lines of code. Your new score will be the maximum of your original score and 80% of your regraded score. Examples of small errors:

  • Use of == instead of .equals
  • Modification of a method header, causing compilation failure
  • Lack or addition of ! operators
  • Forgetting to cast an int as a double

We reserve the right not to regrade fixes deemed too large.