Expections & Goals
Welcome! We are excited to have you here in class, and are looking forward to the quarter.
If you have questions, concerns, confusions, etc. about the following policies, please reach out!
Also, please keep in mind that we are here to support you. If for any reason you need help this quarter, please reach out as soon as possible.
Pedagogical goals: This class covers a broad variety of topics (listed at the end of this page).
The goal is not for you to become an expert in every topic, but rather to:
- Learn a basic model of how the computer turns code you type into actual hardware actions
- Become comfortable handling larger projects with more ambiguity, similar to industry
- Become familiar with widespread, powerful tools used by computer scientists
- Prepare for more advanced classes or a CS career
Basic Expectations
Weekly Time Commitment: 3 hours lecture, plus about 5-6 hours additional work
Lecture Attendance: In-person attendance is recommended. Recordings are on Canvas under the Panopto tab
Programming Environment / Set Up: You will need to do
all assignments via Cancun (see the
set up instructions)
Assignments & Grading: 10 Quizzes (30% of grade), 6 homeworks + Set-Up HW (70% of grade)
Academic Integrity: Please see detailed expectations below
Unexpected Circumstances : (i.e. emergencies, changes in health, circumstances beyond your control) Please contact the course staff
as soon as you can if you need help or advice, especially if it will be hard to meet deadlines for reasons
beyond your control. We'll do our best to work with you
Accomodations: It is extremely important to us that this class be a positive experience for everyone. Please do not hesitate to contact me (nfetsch@cs.washington.edu) for any accomodations
- You can find university policies for non-religious accomodations here and religious accomodations here
Detailed Expectations for Assignments and Grading
Calcuation:
- 30%: 10 quizzes, 10 points each
- 70%: 6 homeworks, 25-50 points each (+ HW0, 5 points)
Curve: There is
no required curve for this class. If a curve is applied, it
will not bring your grade down
Extra Credit: will be via participation-based polls available in lecture and for 24 hours afterward.
Extra credit will be applied
after a curve if there is one and at my discretion. It is intended to have a small but non-negligable impact on your grade
- Not doing extra credit is guaranteed to not bring your grade down
Quizzes
30% of grade: 10 quizzes (10 points each)
- What: Multiple choice, infinite retry, open-resource quizzes covering material from the previous week
- Why: Encourage staying up to date on material, and reflect on how much we've learned. Quizzes cover basic concepts that will be crucial for the homeworks
- When: Posted each Monday, due the following Monday 11:59 PM PST. Late quizzes will not be accepted
- Where: Canvas
Homeworks
HW0: (5 points) HW0 is a small assignment to check your computing environment is set up correctly. No late days allowed
HW1-6: (25-50 points each)
- What: Scripting and coding assignments requiring practical application of lecture topics
- Why: The skills required are directly applicable to further computer science education and jobs in industry
- When: Due 1-2 weeks apart, depending on difficulty
- Late Days: 6 late days for the entire quarter; Maximum of 2 per HW
- If you submit an assignment late, late days will automatically be applied
- Late days will be applied in 1-day increments (i.e. 5 minutes late rounds up to 1 late day)
- HWs 1-3 will be significantly less time-intensive than HWs 3-6: We strongly recommend saving late days for HWs 3-6
- Where: Specifications posted here, submitted through Gradescope
- Note: You will have unlimited submissions before the deadline
- Note: If the autograder gives you points, we will not take them away. Our goal is a positive experience, not for you to feel like we are tricking you
- Important! Homeworks will often have hints and tips throughout. Read the entire spec before beginning to save a lot of time
Minimum Guaranteed Grade
As mentioned, there is no required curve for this class in terms of a specific median or mean grade. You have the minimum guarantees from me.
Minimum Guaranteed Grade |
Weighted percent in class |
Minimum Guaranteed Grade |
98.5 |
4.0 |
90 |
3.4 |
85 |
3.0 |
75 |
2.5 |
65 |
2.0 |
Detailed Expectations for Academic Integrity
I trust you all and expect us to have a great quarter filled with collaboration and without any cheating.
Collaboration is a great way to learn and encouraged.
Collaboration includes discussing and helping each other understand topics covered in class, and includes practicing
together if that practice is not related to the homework.
Cheating is representing someone else's work as your own. If your homework is too similar to another student's or is based on any other resource,
you will receive a failing grade and we will begin the process of creating a cheating case with the university.
For homework, it is OK to:
- Discuss high-level strategy
- Discuss a very specific single problem you are having and brainstorm potential solutions
For homework, it is not OK to:
- Discuss step-by-step solutions
- Write code for someone else
- Look at someone else's code
- Copy code from any other source (student, tutor, the web, etc.)
- Repeatedly rely on other people to solve challenges, including bugs
If you find yourself tempted to cheat, we recommend going to office hours, where our TAs can help get you unstuck.
If you are unsure how to represent work that you have done ask me and describe clearly what your collaboration looked like.
If you do, the worst that will happen is you will lose some credit on an assignment.
For further clarification on academic integrity, see the
Allen School Academic Misconduct Policy page.
Detailed List of Topics
Topics subject to change. My goal is to have the last week of class be a deep dive on whichever topics you all prefer.
- Files, processes, and shells
- Model of a computer: The shell & the operating system
- File editing and shell scripting via the command-line
- String processing; regular expressions
- C Programming
- Memory model
- Pointers
- Arrays
- Manual resource management
- The preprocessor
- Idioms for safe programming
- Programming tools
- Debuggers
- Linkers
- Compilation managers
- Version-control systems
- Software-engineering issues
- Specification
- Testing
- Useful info for industry
- Code-reuse patterns
- C++
- C with classes and objects
- Other differences from C
- Concurrency
- Threads
- Races and deadlocks
- Locks and Transactions
- Message-passing