This course policies page ( describes all course activities, grading, collaboration and late policies.

Course Grading

Your course grade is comprised of four primary graded components:
Weighted Course Grade Weighted Grade (Detail)

To receive a C- or better in the course, you must pass each of the Exam, Lab and Project components individually (i.e., 60% or better). In other words, if you fail one or more of these three components, the maximum grade you can earn in the course is a D+. Otherwise, the final grade is the weighted average per above, rounded to the nearest integer.

CS majors must take this course for a letter grade.

Grade scale

After-rounding, the final grading scale is:

93-100% 90-92% 87-89% 83-86% 80-82% 77-79% 73-76% 70-72% 67-69% 63-66% 60-62% Below 60%
A A- B+ B B- C+ C C- D+ D D- F

Up to 3% may be added to your final grade at the instructor's discretion for constructive participation in the class. Constructive participation includes in-class participation; asking good questions or providing helpful responses via course forums; etc. No other adjustments of borderline grades will be considered.


During the drop/add period, students who are not attending or keeping pace with course work will get warned once, and then administratively dropped to make room for waitlisted students.

Generally, if you are absent from class, it is assumed that you have a good excuse; however, you are responsible for facing the consequences of missing in-class opportunities and working to catch up on missed material:

You do not need to write to the instructor to explain an absense, nor do you need to present a doctor's note. We just care that you are ok now, and have a strategy for catching up.

Lecture and Readings

You are expected to spend additional time outside of class to master the lecture material. Reading assignments and learning objectives are posted for each week. You should do as much or as little work as necessary to meet the weekly learning objectives.


The weekly lab is to practice programming, with immediate feedback based on self-checks and demos. Lab attendance is expected. Each week's lab assignment will be posted online and linked from the Schedule.

Advice: Grades on labs tend to be high, but do not wait for them to be graded to clear up any confusions or potential misunderstandings. The course material is cumulative, and small misunderstandings add up to big mistakes over the semester.

Lab Writeup

This is a Moodle "quiz" activity. It is a very scaffolded exercise, intended to help you evaluate your understanding of material related to lab. You can revise your answers as many times as you like without penalty. It is part of your lab grade.

You should open the lab writeup in Moodle as soon as you sit down to do the lab. As you work through the lab, some of the lab instructions will ask you to go to your writeup and answer a question to check your understanding. There may be some open-ended questions that the staff grade manually but, otherwise, you get immediate feedback on all your writeup answers when you submit them.

Lab Demo

Demos require you to present one or more parts of your program to course staff. We will verify the program works correctly under a small set of tests, giving you immediate feedback.

Demos must be done in person. They will be accepted in any lab section, workshop or tutoring hours up to the posted deadline. Due to space constraints, demos are NOT accepted during office hours or class.

Lab Code

Each lab requires some program code be submitted for more thorough testing and grading. This is uploaded to Moodle following the lab instructions.

You are expected to have a docstring in each submitted program that contains your name, the lab number, and a brief description of what your program does.

Lab Grading and Late Policy

Each lab is graded out of 40 points, weighted per below. Lab work is accepted up to one week late, per below.

Component Posted by Due Points Late Policy
Writeup Mon 5 PM By the following Tu, 2 PM (via Moodle) 20 Half-credit, up to one week late
Demo By the following Tu, 2 PM (in person per demo rules) 10
Lab Code By the following Tu, 2 PM (via Moodle) 10

Advice: Do all the labs and take advantage of the late policies for credit. The idea of skipping a lab and "taking the point hit" may come back to haunt you: future labs build off past labs (and even re-use code from past labs); skipping a lab often does not save you work, and missing skills from past labs just makes future labs harder.

Weighted Lab Grade

Lab Collaboration Policy

You are encouraged to work with other students in the labs. However, you must turn in all lab work individually, and you must be able to explain and stand by all of the work you turn in for credit.


Programming projects require you to take the skills you've learned in lecture and lab and apply them to a larger, more authentic problem. They are a rewarding and challenging part of the course, and they require perseverance and time management skills. Projects must your individual work, and the below collaboration policy is strictly enforced.

The programming projects are larger assignments, but they will usually be broken into pieces as follows:

Project Grading and Late Policy

Component Due Late Policy

Each demo has a posted deadline
(in person, per demo rules)

Half-credit, accepted until the final code deadline.
Final project code By posted deadline (via Moodle)

-10% plus an additional -10% for each 12 hrs late, up to 60 hours.
For students with emergencies: no penalty, up to 48 hours.

Projects submitted a few minutes late are accepted with no penality. For students dealing with emergencies, there is a 48-hour grace period for final code submission. Otherwise, there is a penalty per above (for example, 1--11 hrs late is -10%; 12--23 hrs late is -20%; 24--35 hrs late is -30%; 36--47 hrs is -40%; 48--59 hrs is -50%).

Note: Emergencies are events that are beyond your control and prevent you from turning in your work, like breaking a limb and winding up in the hospital. Non-emergencies are things like prioritizing other obligations, misjudging how long something takes, or failing to back-up your work and running into technical problems on submission.

Project Collaboration Policy

Programming projects must be your own work unless otherwise stated, and academic misconduct is taken very seriously. You may discuss ideas and approaches with other students and the course staff, but you should work out all details and write up all solutions on your own. The following actions will be penalized as academic dishonesty:

In summary: you may be penalized for academic dishonesty if your program matches another student's program too closely.


Exams cover material from lecture, lab, and the textbook. These are cumulative, although they will emphasize recent material.

You may bring one 8.5 by 11-inch handwritten sheet of notes (front and back). This is the only resource that you may consult, other than your brain.

Exam Schedule

All exams were scheduled at the start of the semester (see the class Schedule). Makeup exams will be given only in extraordinary circumstances, and the instructor must be notified as soon as possible.

Note: "I am leaving for vacation with my family and cannot reschedule the plane tickets" is not an extraodinary circumstance; it is merely unfortunate planning. Being hospitalized is an extraordinary circumstance.

Student Athletes. You need to notify your instructor within the first two weeks of the semester about games that conflict with our class exam schedule (and as soon as possible about subsequent changes). Give your instructor a copy of your game calendar and weekly schedule, to facilitate arranging a time to take the exam early.


Quizzes motivate incremental study and assess your understanding of course topics without the aid of a computer. Like exams, quizzes are scheduled in advance, are not re-schedulable except in extraordinary circumstances, are cumulative but emphasize recent material, allow you to bring a handwritten sheet of notes, etc.

Unlike exams, quizzes are relatively short, have less-involved questions and are much lower stakes. A quiz is a low-stakes assessment that is diagnostic for some larger exam. It is intended that you study for each quiz and use the quiz as feedback to learn which topics need more attention from you. They are not practice exams nor are they intended to reflect exam-style questions; practice exams have been released for that purpose.


Collaboration a complex idea in the programming world, since professionals routinely work in teams sharing code; they also navigate a variety of complex intellectual property rules that sometimes encourages (and sometimes discourges) sharing code more generally. In our class, the collaboration policies are more artificial than the real world since they are designed to support you, as a beginner learner, to grow towards mastery and independence.

Generally. We encourage you to seek help from and provide support to your peers, but only in ways that do not steal learning opportunities from them or from yourself. See the Lab Collaboration Policy and Project Collaboration Policy.

Warning: The boundary between collaboration and plagarism is often unclear. Once you see someone's program, it is hard to un-see. It is safer to collaborate away from the computer. Use drawings to communicate ideas. Use references to past labs to establish common ground ("solving this, to me, feels similar to how we drew the grid of squares from two labs ago"). Help identify tools that are useful ("I found using a while loop was helpful") without sharing code. If you just siwvel your monitor and show someone how you did it, you are robbing them of a learning opportunity.

In particular. You are responsible not just for understanding every line of code you write, but also for knowing what would happen if your code was modified in some way or how to modify it to accomplish some nearby task. There is no collaboration of any form allowed for exams or quizzes, unless explicitly stated otherwise.

An analogy: Some students imagine programming is like drill-and-practice math problems, where there is a procedure to follow and help-seeking starts with asking how to solve the problem. This is a bad analogy. In programming, you are always creating new procedures, not following a known procedure. Programming is much more abstract problem solving. A better analogy is being an innovative home cook: you use a collection of skills, basic strategies, proven patterns, and whatever happens to be in the fridge to accomplish the goal of a tasty meal. Old recipes are just guides. Innovation with the tools on-hand is key. Even within a well-defined task like "make spaghetti carbonara," there is a lot of variation for a home cook. If you need to be shown every step of how to make each meal, then you are not achieving mastery or independence.

Academic Dishonesty

Academic dishonesty will be severely penalized; at a minimum, you will receive a grade of 0 on the assignment. For more information, see SSU's cheating and plagiarism policy ( and the Dispute Resolution Board website (

Incomplete grade policy

It is the policy of the Computer Science Department that a grade of Incomplete (I) shall be assigned only when the instructor concludes that a clearly identifiable portion of course requirements cannot be met within the academic term for unforeseen, but fully justified, reasons; and that there is still a possibility of earning credit.

An incomplete shall NOT be assigned when:

The condition for removal of the Incomplete shall be entered on the "Request for Incomplete" form and a copy filed in the department office prior to listing an 'I' on the Grade Roster. The student must retain the grades for any coursework that was due prior to the incomplete being assigned. The incomplete cannot be removed on the basis of work taken at another institution nor by re-enrolling in the course.

An incomplete must be made up within one calendar year immediately following the end of the term in which it was assigned. This limitation prevails whether or not the student maintains continuous enrollment. Failure to complete the assigned work will result in an incomplete 'I' being converted to a 'NC' which will affect the grade point average.

University Policies

Disability Accommodations

If you are a student with a disability and you think you may require accommodations, please register with the following campus office:

Disability Services for Students (DSS)
Salazar Hall, Room 1049
Phone: (707) 664-2677
TTY/TDD: (707) 664-2958.
DSS will provide you with written confirmation of your verified disability and authorize recommended accommodations. This authorization must be presented to the instructor before any accommodations can be made. Visit for more information.

Emergency Evacuation

If you are a student with a disability and you think you may require assistance evacuating a building in the event of a disaster, you should inform your instructor about the type of assistance you may require. You and your instructor should discuss your specific needs and the type of precautions that should be made in advance of such an event (i.e. assigning a buddy to guide you down the stairway). We encourage you to take advantage of these preventative measures as soon as possible and contact the Disability Services for Students office if other classroom accommodations are needed.

Dropping and Adding

Students are responsible for understanding the policies and procedures about add/drops, academic renewal, etc. How to Add a Class ( has step-by-step instructions. Registration Information ( lists important deadlines and penalties for adding and dropping classes.

Other University Policies

There are important University policies that you should be aware of, such as the add/drop policy, cheating and plagiarism policy, grade appeal procedures, accommodations for students with disabilities, and the diversity vision statement. Visit for more information.

Counseling and Psychological Services (CAPS)

CAPS is a unit of the division of Student Affairs of Sonoma State University. CAPS offers confidential counseling to students experiencing personal problems that interfere with their academic progress, career or well being. The CAPS website ( provides information only. If you would like to talk with someone or make an appointment, please call (707) 664-2153 between 8 a.m. - 4:30 p.m., Monday-Friday.