Course Policies

Introduction to Computer Programming is the first course in our series introducing students to computer science. In this class you will learn the fundamentals of computer programming in Java, with emphasis on applications in science and engineering. You will also learn about the broader field of computer science and algorithmic thinking, the fundamental approach that computer scientists take to solving problems.

We have tried to lay out very clear policies regarding things like grading, late homeworks etc. Click on the tabs to get more information about each particular policy.

Grade Breakdown


The Professors reserve the right to adjust grading policies. Final grade determinations are made by the Professors.

Homework Grades: We use points on homework as a mechanism to provide feedback. You should be learning from doing the assignments and also from the feedback on them, which means homework grades may well be lower than you are used to. Don't worry! In past semesters 30%-40% of CIS 110 students have received an A- or better in the course, and we expect this semester to be similar. We will post the median and standard deviation for each homework after they are graded, and we will factor homework grades into your course grades in a way that ensures consistency with past semesters.

Dropping the lowest homework: As long as you submit all assignments and receive a raw score of at least 30% on each of them, your lowest homework score will be dropped. If any homework scores below 30% or you do not submit one or more homeworks, all scores will count. This policy is complicated, but nearly always results in higher homework averages than simply dropping the lowest score that is at least 30%.

Exam Grades: Exam grades are always curved. Your curved grade will show up alongside your raw score in the course dashboard. CIS 110 exams are usually challenging, and curved scores are almost always higher than raw scores.

Recitation Score:

Lecture/Polls: Your score is calculated based on your participation during in-class polls. We will start recording poll participation after the course selection deadline, and we make a reasonable allowance for missed lectures. This allowance covers all missed polls, no matter what the reason. We cannot mark you present for a poll if your input is not recorded.

Making up work: Grades are based on your performance on work completed during the semester in accordance with course policies. It is not possible to make up work in order to improve your grade or compensate for violations of course policy.

Incompletes, with permission to complete coursework after the semester ends, will be granted only in verifiable cases of serious, extended illness or similar extraordinary circumstances.

Grounds for failure: A serious lack of effort may be grounds for failure in the course. If you find yourself in any of the situations below, you should meet with an instructor promptly to discuss your situation:

Conversion to letter grades: All graded work is converted to a percentage grade between 0% and 100%. Exams are converted based on a curve. Homeworks are converted by dividing your score by 50 (the maximum number of points per assignment). Here is how the percentage grades will map to final letter grades:
Letter grade
97% <=
A+ (4.0)
93% <= A (4.0)
90% <= A- (3.7)
87% <= B+ (3.3)
83% <= B (3.0)
80% <= B- (2.7)
Percentage Letter grade
77% <= C+ (2.3)
73% <= C (2.0)
70% <= C- (1.7)
67% <= D+ (1.3)
63% <= D (1.0)
< 63% F (0.0)
Note that there is no D- grade at Penn.

Lecture attendance: Lecture attendance is required and is part of your grade. Frequently missing lecture, arriving late, leaving early, or failing to participate in polls may affect your course grade.

Attending the "other" lecture section: If you must miss your own lecture section but can attend the other lecture, you may do so occasionally. However one lecture is completely full, and the other nearly so, so you cannot make a habit of this. Your poll participation will still be counted and you should not inform us before attending the other lecture.

Missing lecture: If you occasionally miss lecture due to illness, family emergency, religious holidays, or other reasons, you should fill out a Course Absence Report, but you do not need to contact us. We make reasonable allowance for absences when we compute your attendance score, but we do not track the reasons for individual absences. We also encourage you watch the lecture recordings and come to instructor office hours to catch up on any material you missed.

Extended Absence: If you will miss a week or more of class for any reason, you should contact the instructors to arrange a plan to make up work. If this is a foreseeable circumstances (such as attending a conference), you should contact us as early as possible, and certainly well before you leave. In emergency situations such as illness, you should contact us as soon as is practical. You should also contact your academic advisor who can help you coordinate with all your professors and other resources on campus.

Recitation attendance: Recitation attendance is required and is part of your grade. If you cannot make your own recitation for any reason, you must contact your TAs. They do not receive copies of your Course Absence Reports. When possible, you should arrange with your TAs to attend a different recitation that week. It is appropriate to arrange to attend a different recitation once during the semester due to a scheduling conflict (such as a job interview), and also because of illness. It is not acceptable to simply show up to a different recitation or to attend a different recitation on a regular basis.

Lecture recordings: Slides and associated textbook readings are normally posted on the syllabus page before class. The lecture recordings are posted automatically about an hour after lecture. The list of recordings is linked from the Syllabus page. Note that the recordings do not replace your attendance in class! You will not be able to ask the recording questions, see anything written on the chalkboard, hear other students' questions (only the instructor's microphone is captured), or see demos or the contents of the second projector screen. Also, the recording system is unreliable and frequently fails.

CIS 110 uses web-based polling in lecture. Your participation in these polls will count as part of your grade. In most or all cases, polls will be used to start discussions rather than end them. That means we want you to think about the question, but we normally won't grade you on correctness. In fact, for most quizzes, we won't even look up what you answered.

Registering for polls: For running in-class polls, we use Poll Everywhere. In order for us to track your poll participation, you will need to sign up for a Poll Everywhere account. You must sign up using your Penn email in order for us to properly track your attendance.

Participating in a poll for a friend: Answering polls for another student so they appear to be present, or having another student poll for you when you are absent, is a serious violation of course policy. All students involved will normally be referred to the Office of Student Conduct and will have implications for all students' grades.

Participating in a poll remotely: You cannot participate in polls remotely. Any poll submissions from outside of the classroom will not count towards attendance.

It is imperative to understand that computer programming is not a spectator sport. To get good at it, you need to practice, and the primary vehicle for that is the homeworks.

Due dates: Homework assignments are due at 11:59pm Eastern Time unless otherwise posted. Most, but not all, assignments will be due on Thursdays. All deadlines are automatically enforced. The submission link disappears when you can no longer receive credit.

Where to submit: All homework must be submitted electronically through the course dashboard. There is a link at the top of the page.

How often to submit: You can submit each assignment as often as you like. We will grade the last version of each file that you submit. Once you have submitted a file, you do not need to resubmit it unless it has changed.

What to do if the submission system isn't working: If you have trouble with the submission system, e-mail your code to your TAs before the deadline. We will normally give you an extension to resubmit online once. Submit your next assignment early and seek help if you still have problems. (You can always resubmit later on.) We will not normally give you a second such extension unless you have sought help resolving the problem well ahead of the deadline.

Always back up your work. One or two students CIS 110 lose their work to a crashed computer each week. It is not grounds for an extension. Seriously. Always back up your work. Fortunately, there are multiple easy ways to back up your work:

Late Submissions:


Extra Credit:

Homework Regrade Requests:

CIS 110 is a challenging course that requires a substantial amount of time for most students. Many of you are learning a new kind of abstraction (algorithmic thinking), a new way to express procedures (programming), and a new level of discipline in thought (precision and rigour). Working through the assignments, encountering errors and bugs, and finding the solutions yourself are absolutely essential to learning these skills. To this end, CIS 110 institutes and enforces a strict collaboration policy to ensure that all students are learning effectively. Suspected violations of this policy are systematically referred to the Office of Student Conduct, and generally incur both a disciplinary sanction and a grade deduction.

On the homework assignments, we use automated "cheat-checking" software to help detect plagiarism and inappropriate collaboration. This software is very, very effective. According to the Annual Report of the Penn Office of Student Conduct, there were 127 referrals for undergraduate academic misconduct in 2013–2014. 55 of these cases, or nearly 45%, were referred from CIS 110. By taking the collaboration policy as seriously as the course staff does, you will not only help reduce this number, but you will also help yourself and your fellow students learn more effectively.

Collaboration Policy

Collaboration Policy (Annotated)

This annotated version of the policy includes many examples and elaborations to help you understand how to interpret the rules. It covers many situations that have come up in past semesters, but it is not exhaustive.

These restrictions may seem artificial. After all, in the real world, computer scientists and programmers collaborate freely all the time, and so do CIS majors. In many upper-level CIS classes as well as in industry, looking up answers online, debugging code together, and sharing code are all permitted and encouraged. However, these behaviours are forbidden in CIS 110: CIS 110 is not an upper-level class, and it is not the real world. These restrictions help you learn.

Appropriate collaboration

The collaboration policy sounds scary because we take it very seriously. But it is not meant to prohibit all discussion and collaboration. It is intended to limit only the forms of collaboration that undermine the learning goals of the course. Here are some ways that we encourage you to work together and to get help:

Suspected violations are referred to the University of Pennsylvania Office of Student Conduct (OSC).All implicated students are referred, whether or not they are all in violation. The OSC will contact each student who has been referred, conduct an investigation, and determine any disciplinary sanctions. You may find the following information helpful if you are referred.

Violations of course policy also factor into your course grade.