Course Policies
Workload
The course consists of the following elements:
- Lectures: Attendance and participation is expected.
- Online Assignments (Homework): There are 5 homework assignments, due roughly every other week, that will be mostly problems from the text. Homework is done online via Canvas. Students may receive slightly different problems on homework.
- Programming Assignments (Labs): There are 6 total labs, due roughly every other week. All the undergraduate lab machines (and the VM) will have access to the necessary tools. We will use these assignments to reinforce key concepts and will strive to have them be as practical as possible.
- Reading: We will assign readings from the
the course textbook that correspond to lecture topics.
- Exams: There will be a midterm and a final — see the Exams Page for more information.
We will try to ensure that the workload is typical for a
four-credit course, namely, nine to twelve hours per week outside of
the lectures. If we do not succeed, please let us know in whichever
way you feel the most comfortable (person-to-person, e-mail, anonymous
feedback) and explain which parts of the course are causing you to
spend too much time non-productively.
We have structured the course so that spending a few hours per
day will maximize your efficiency. You will work this way in the
real world — you cannot cram a three-month design assignment into
the last night — so you may as well work this way now. Plus, you
will understand the material better. If you leave the homework for the
day before it is due you will not have time to ask questions when
the software misbehaves.
Inclusiveness
You should expect and demand to be treated by your classmates and
the course staff with respect. You belong here, and we are here to
help you learn and enjoy a challenging course. If any incident occurs
that challenges this commitment to a supportive and inclusive
environment, please let the instructor know so the issue can be addressed.
Grading
We will compute your course grade as follows:*
- 20%: written assignments
- 30%: programming assignments
- 20%: midterm
- 30%: final
We will keep track of any extra credit items you attempt on labs and
homeworks. You won't see these affecting your grades for individual
homeworks and labs, but they will be accumulated over the course and
will be used to bump up borderline grades at the end of the quarter.
The bottom line is that these will only have a small effect on your
overall grade (possibly none if you are not on a borderline) and you
want to be sure you have completed the non-extra credit portions of
the lab/homework in perfect form before attempting any extra credit.
They are meant to be fun extensions to the assignments, so if you
complete some extra credit it *may* positively impact your overall
grade.
*We do not expect to deviate from this, but reserve the right to
make small changes, such as an additional piece of work that
contributes slightly toward your grade.
Assignment Policies
- All assignments are due before 11:59pm (and zero
seconds) on the date specified. This means that if your
clock reads 11:59, then your assignment is late! In addition, online
submission can be fickle, so we highly recommend making partial
submissions as you go and not waiting until the last (literal) minute
to submit.
- Written assignments (homework) are autograded via
Canvas and late submissions are NOT allowed. You are
allowed 20 attempts for each quiz and you will
receive credit for every question that you answer correctly. As long
as you make a submission before the deadline, you will be able to
review the homework questions and your responses at any time.
- Programming assignments (labs) are submitted by
uploading files to Canvas assignments.Late lab submissions are subject
to the late day policy described below. Labs are
graded by a combination of grading scripts and TAs.
- Exams are on the course calendar and graded by the course staff.
Late-Day Policy (for Labs only):
- You are allocated a total of 4 late days for the
entirety of the quarter to utilize should the need arise.
- You are not allowed to use more than 2 late days for any given lab.
- An exception is made for weekends, which count as a single late day. That is, if an assignment is due at 11:59pm on Friday, submitting before Sunday at 11:59pm counts as only one day late (submitting by 11:59pm on Monday would count as TWO days late).
- If you exceed the late days afforded to you, you will lose 20% of the assignment score for each day an assignment is overdue. Note that all assignment submissions close at most 4 days after the due date.
- There is no bonus for having leftover late days at the end of the quarter.
Collaboration and Cheating:
In general, we encourage collaboration, but there is a line between collaboration and cheating. We can learn a lot from working with each other and it can make the course more fun, but we also want to ensure that every student can get the maximum benefit from the material this course has to offer and earn a fair grade.
Keep in mind that the overall goal is for YOU to learn the material so you will be prepared for the exams and for job interviews, etc. in the future. Cheating turns the assignments into an exercise that is a silly waste of both your time and ours; save us both by not doing it.
Permitted collaboration:
- Homework: Collaboration and discussion is encouraged (find a homework group!), but you are responsible for understanding the solutions on your own, as the problems are meant to be preparation for the exams.
- Labs: Collaboration should be restricted to high-level discussion (i.e. ideas only).
A good rule of thumb is that you should never show your own code while helping another student (viewing their code is highly discouraged, as it often leads to problematic situations).
- Exams: Exams are taken individually and any attempt to use unpermitted materials or copy off of another student's exam will be heavily punished.
Cheating consists of sharing code or solutions to assignments by either copying, retyping, looking at, or supplying a copy of a file. Examples include:
- Coaching a friend to arrive at a solution by simply following your instructions (i.e. no thinking involved).
An example is helping a friend write a program line-by-line.
- Copying code from a similar course at another university or using solutions/code on the web, including GitHub.
- Communicating your solution with another student via electronic or non-electronic means.
Cheating is a very serious offense.
If you are caught cheating, you can expect a failing grade and initiation of a cheating case in the University system.
Cheating is an insult to the instructor and course staff, to the department and major program, and most importantly, to you and your fellow students.
If you feel that you are having a problem with the material, or don't have time to finish an assignment, or have any number of other reasons to cheat, then talk with the instructor.
Just don't cheat.
If you are in doubt about what might constitute cheating, send the instructor an email describing the situation and we will be happy to clarify it for you.
For more information, you may consult the department's Academic Misconduct Policy.
Re-grade Policy:
Looking over your graded work to learn from your mistakes is
invaluable. It is also entirely possible for graders to make
mistakes, so if we misunderstood your work, you can let us know.
- When you request a regrade, we may look at the entire
problem/lab/question/etc. Therefore, while it is possible for your
grade to go up or down, though up is more likely.
- Labs: Send an email to the grader (find who
commented on your assignment submission) and CC the instructor.
Include a written summary describing why your work should be looked at
again. Regrade requests should be submitted within a week of when the
lab was graded.
- Exams: We will use Gradescope to grade exams and
manage regrade requests. Via Gradescope, you should submit any
requests separately for each problem.