CS108: Course Information: Dr. Patrick Young Winter 2019
CS108: Course Information: Dr. Patrick Young Winter 2019
CS108: Course Information: Dr. Patrick Young Winter 2019
Teaching Assistants:
Kali Cornn, kcornn at
Ian Jones, ianjones at
Cindy Prasetio, mcp21 at
Office Hours may vary from week to week, changing depending on assignment due dates.
Please check Canvas for the latest information.
All e-mail addresses are @stanford.edu. Please note that we will not debug code via Piazza or
email. Learning to debug is a critical skill for software programmers, and remote requests for
help with code usually to end up with us giving you the answer rather than you learning how to
find the answer. Therefore we will not look at code longer than 1-2 lines via Piazza or email.
If you’re having trouble finding errors in your code, you need to come in to office hours where
we can teach you how to debug. Check the office hours ahead of time and plan accordingly.
These rules hold whether or not any additional office hours are available before the assignment
is due.
If you are having problems figuring out where an error is, you must include:
1) A detailed description of the problem
2) A description of three different conjectures as to what might cause that problem
3) A list of concrete steps taken to try to confirm or eliminate the conjectures.
If we believe that you did not spend time in a careful analysis of the problem or have came up
with a list of nonsensical conjectures simply to fill out your list, we may tell you to come up
with additional conjectures.
If you’re having trouble coming up with conjectures, think about what the symptom you are
seeing is, then consider what parts of the code are related to the issue you are seeing. Think
about what might be going wrong that might result in your symptoms. Try to get more detailed
information on the error. Go into the debugger or put in some print statements. Try to isolate
the problem.
You really need to learn to dig in and wrestle with the code and your bugs. This is the only
way you will strengthen your debugging skills and become strong programmers.
Grading
Homework Assignments 66.6%
Class Project 33.3%
Your grade will be based two-thirds on individual assignments done during weeks 1-7 and a
third on a group project at the end of the quarter. There is no midterm and no final for this
class.
Note: In order to earn an A+, students will need strong performance on both their individual
assignments and on the group project.
Course Assignments
There will be five regular homework assignments.
Late Policy
For all regular assignments except for the last one, assignments turned in late will be penalized
10% for each 24-hour period which has passed since the original due date and time. No
assignment may be turned in more than a week after its original due date.
I realize that you do have other classes. You have a late allowance of three late days which can
be used to excuse late assignments. This allowance may be used for a single assignment or it
may be divided for use on multiple assignments. For example, if you turn in one assignment
three days late, you’ve just used up your entire late allowance. However, if instead you turn in
the assignment two days late you still have one additional late day which you can use for another
assignment.
The last assignment before the project begins must be turned in on time. You may not use any
late days on it, and it will not be accepted late. This is to ensure that all students are ready to
begin work on the team project at the end of the quarter, instead of having some members of
the team working on the final project, while others are trying to finish up their late last
assignments.
Collaboration Rules
You should not receive assistance on your assignments from anyone other than a member of
the CS108 teaching staff. While I certainly expect students to discuss the class amongst
2
themselves, please be very careful about providing assistance with the assignments. For the
purposes of this class, if someone looks at your code, or if you look at another student’s code,
you have received too much assistance.
If you have concerns that you received too much help from another person or any other source,
explicitly document the help received with your assignment. Any help that is explicitly
documented will not be considered an Honor Code issue – although it may result in a grade
reduction.
Please note that CS108 submissions may be run through automated plagiarism detection tools.
Submission Errors
Please properly submit your assignments. Submission errors on professional projects lead to
“breaking the build” which is considered a very serious mistake. Because of this, we want you
to pay careful attention to properly submitting and will heavily penalize students who have
submission errors.
Grades on Canvas
We will be posting your grades on the Canvas website (see below). Please make sure you check
your grades as soon as they are posted. Any missing grades or grading errors must be reported
within one week of the posting date. All grades will become final, one week after they are
posted.
Final Project
In addition to the homework assignments, you will also have a large group project at the end of
the quarter. While we will provide more information on the project much later in the quarter,
you will need to form 3-5 person teams. We may add additional team members to any teams
which are not 5-person teams, so if you want to make sure that your team will only consist of
students you have selected on your own, make sure it has 5 people on it.
Make sure you get to know your fellow classmates now, so you’ll be able to form a team with
students you are comfortable with.
Incomplete Policy
If you have a serious medical or family emergency and cannot complete the work in this course,
you may contact me to request an incomplete. I reserve incompletes only for emergencies, so
I do not grant incomplete grades for poor performance on the assignments or exams, nor do I
offer incompletes for busy work schedules.
In order to be eligible for an incomplete, you must have completed all of the assignments (with
the possible exception of the most-recently-due assignment) and must have shown satisfactory
academic progress in the class.
Please note that because CS108 requires a group project for successful completion, if you
request an incomplete but do not carry out the group project in the current quarter, you may not
be able to complete the class until the next time CS108 is offered when you can join a team of
CS108 students in carrying out the group project.
Software
We will be using the Eclipse IDE. If you don’t already have it, get the Eclipse IDE:
http://www.eclipse.org/downloads/
3
When installing Eclipse, you want to choose the options for standard Java development (not the
EE or Enterprise options). If you’ve already got a copy of Eclipse from CS106, get a new copy,
the version used for CS106 lags far behind the most current (mostly so they don’t have to
constantly update and test the CS106 plugins). If you’re a CS106 Section Leader, there’s no
problem having multiple copies of Eclipse installed.
In addition, we will be using Android Studio. We’ll talk about that in a separate Android
handout coming out the 2nd week of the quarter.
Course Materials
There is no textbook for this class. We will be using Canvas for our course website:
http://canvas.stanford.edu/
https://piazza.com/stanford/winter2019/cs108
All due dates are subject to change. Check the individual assignment handouts for the actual
due dates.
4
Students with Documented Disabilities
Students who may need an academic accommodation based on the impact of a disability must
initiate the request with the Student Disability Resource Center (SDRC) located within the
Office of Accessible Education (OAE). SDRC staff will evaluate the request with required
documentation, recommend reasonable accommodations, and prepare an Accommodation
Letter for faculty dated in the current quarter in which the request is being made. Students
should contact the SDRC as soon as possible since timely notice is needed to coordinate
accommodations. The OAE is located at 563 Salvatierra Walk (phone: 650-723-1066)
(1) that they will not give or receive aid in examinations; that they will not give or receive
unpermitted aid in class work, in the preparation of reports, or in any other work that
is to be used by the instructor as the basis of grading;
(2) that they will do their share and take an active part in seeing to it that others as well as
themselves uphold the spirit and letter of the Honor Code.
B. The faculty on its part manifests its confidence in the honor of its students by refraining
from proctoring examinations and from taking unusual and unreasonable precautions to
prevent the forms of dishonesty mentioned above. The faculty will also avoid, as far as
practicable, academic procedures that create temptations to violate Honor Code.
C. While the faculty alone has the right and obligation to set academic requirements, the
students and faculty will work together to establish optimal conditions for honorable
academic work.