Skip to main content
CIS 121 - Fall 2017
Chris Callison-Burch
Teaching Assistants:
Course staff
Discussion Forum:
Tuesdays and Thursdays at 10:30 AM in Chem 102
CIS 120 and CIS 160
Algorithms (4th Edition) by Robert Sedgewick and Kevin Wayne. The lectures and the required reading will draw from the textbook. It is available from the Penn Bookstore, as well as various online retailers.


The grading for the course will consist of:

  • 60% for 9 weekly homework assignments
  • 10% for midterm 1
  • 10% for midterm 2
  • 15% for the final
  • 5% for attendance of lectures and recitation.

The weekly homework assignments consist of a programming component worth 2/3 of the grade for the HW, and a written component worth 1/3 of the grade for the HW.

Late submission policy:

The following applies to all homeworks. Each student has five free “late days”. Homeworks can be submitted at most two days late. If you are out of late days, then you will not be able to submit your homework. One “day” is defined as anytime between 1 second and 24 hours after the homework deadline. The intent of the late day policy it to allow you to take extra time due to unforseen circumstances like illnesses or family emergencies, and for forseeable interruptions like on campus interviewing and religious holidays. You do not need to ask permission to use your late days. No additional late days are granted.

Attendance requirement:

You are required to attend lectures and recitations for this course. Your lecture attendance will be tracked by using your response to the clicker quizes. Clicking in or signing in for another student is considered to be cheating, and will result in both students recieving 0 for attendance. You are not required to attend lectures or recitations on days you are observing religious holidays or doing acadmic conference travel.

Cheating policy:

We take cheating very seriously. Students who are suspected of copying homework assignments or of violating the collaboration policies will be automatically referred to the Office of Student Conduct (OSC). All homework written and programming assignments are run through plagiarism detection software. The software checks for similarity between assignments submitted this term and in previous terms. When the software flags assignments as having suspiciously high overlap, we pass the assignments to the OSC to adjudicate whether the collaboration policy was violated. The first violation will result in your overall course grade being decreased by one letter grade. A second violation will result in an F in the class.

Collaboration policy for homework assignments:

Collaboration is not permitted on the homework assignments. You are allowed to discuss low-level issues like the meaning of Java constructs, how to use the computing environment, or LaTeX formatting. You are allowed to discuss high-level questions such as what the instructor/lab TA said, the content of the textbook or other general resources. You not allowed to…

  • Discuss issues directly pertaining to the homework questions or their solutions.
  • See another students homework solutions.
  • Show your solutions to another student.
    • This includes asking a classmate to debug your code and agreeing to debug a classmate’s code. If you do this during office hours, know that the TAs are required to report your names to the instructor.
  • Share any code except the code that is being made available by us on the course website to be used specifically with your solutions
    • Occasionally, a small snippet of code from the textbook may help your work. You can use such a snippet with attribution, i.e., provided you add a comment in which you make clear you copied it from the textbook.
    • You may NOT use snippets of code from the Internet (e.g., and similar).
    • You may NOT share test cases.
  • Post your code where it may be accessible to others. This is largely a clarification of the previous rule. This means that you may NOT seek help from online forums, like StackOverflow or similar. You may NOT push your code to a public repository like GitHub (private repositories, however, are permitted). You may seek help from online forums for low-level issues as mentioned above. When in doubt, ask on Piazza.
  • Look at other people’s information.
    • If you find a terminal on which somebody else has logged in and forgot to log out, you must log them out.
    • When somebody else is typing a password in front of you must look out the window or at your shoes.
  • Use any code downloaded from the Internet or sent to you by email, Facebook, text, Twitter, or even scribbled notes passed from hand to hand. :)
  • Share the material that we post for this course with anybody who is not a registered student in this course or a staff member.
    • If you find any such material already posted somewhere else you must inform the course staff immediately. Same if you are contacted by people who offer to solve your homework for money, or who knows what else. Use your common sense and ask any member of the staff if you are not sure about a resource you are considering.
    • You may NOT share course materials without the prior approval of the course staff. You may NOT post course materials on sites such as CourseHero.
  • Copy or share any answers to the written parts of the homework assigments.
Regrade policy for written homework and exams:

Each homework 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. Beyond that deadline, regrades can only be given by permission of the instructor. Regrade requests are meant for cases such as arithmetic mistakes in tabulating a final score, or for a grader not seeing that you continued your solution on the back of the page (as an example). In the interest of transparency, the course staff makes its best effort to indicate exactly where points are docked with the associated reasons. For the written assignments and for the midterms, solutions will be provided in class. Please consult these carefully before requesting a regrade. Please submit your regrade requests via Gradescope.