Includes substantial programming experience in languages that expose machine characteristics and low-level data representation (e.g., C, C++); explicit memory management; interacting with operating-system services; and cache-aware programming.
At the end of this course, students should be able to:
All assignments in this class will be graded on the CSE Linux environment. We strongly recommend that you work on the assignments in this same environment. There are three ways to do this:
attu.cs.washington.edu
You will be given a private repository on the CSE Gitlab to use throughout the quarter. Project ("homework") files will be pushed to your repo and then submitted for you to Gradescope. We strongly recommend using your repo for version control for all assignments and to facilitate sharing if you have a partner.
There are no strictly required texts for this courses. Most people will find it useful to have both a C and a C++ reference; suggestions are given below. The C++ Primer is strongly recommended as C++ is a big, complex language and it is hard to understand how it all fits together from just Google and Stack Overflow snippets and folklore.
Strongly Recommended:
Suggested:
malloc
/free
)make
Your grade in the class will be broken into the following components:
We will use an approximate "straight-scale" grading scheme:
You can earn "points" for each of the following:
You will receive credit for voting on multiple choice questions in lecture. This quarter we will be using Poll Everywhere, which you should have open during lecture (whether live or recorded).
-final
(e.g., hw2-final
).
For partnerships, you will need to submit to a Google Form for each
assignment to indicate whose repo to submit from.
Your tagged commit will be uploaded for you to Gradescope and graded
on a combination of test suite scores, manual user testing (where
applicable), and style grading.
For a list of all assignment due dates (deadline times specified below) in one place, see the . Please contact the instructor as soon as possible (preferably in advance) if you encounter or foresee any difficulties meeting deadlines for reasons that are beyond your control (see our extenuating circumstances policy below for more details).
num_late_days = ceil(hours_late / 24)
.In general, we encourage , but there is a very fine 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. Keep in mind that the overall goal is for *YOU* to learn the material so you will be prepared for the exams, future courses, 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 all by not doing it.
Cheating consists of sharing code or solutions to assignments by either copying, retyping, looking at, or supplying a copy of a file. Examples include:
Cheating is a very serious offense. If you are caught cheating, you can expect the initiation of an academic misconduct case in the University system and a grade penalty, if found guilty. Cheating is an insult to the instructor and course staff, to the school and 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 please reach out to the instructor ASAP! Just don't cheat.
If you are in doubt about what might constitute cheating, contact the course staff via email or private post describing the situation and we will be happy to clarify it for you. For more information, you may consult the school's .
The is a unit within the Division of Student Life and is dedicated to ensuring access and inclusion for all students with disabilities on the Seattle campus. They offer a wide range of services for students with disabilities that are individually designed and remove the need to reveal sensitive medical information to the course staff. If you have a medical need for extensions of exam times or assignment deadlines, these will only be granted through official documentation from DRS. Browse to to start the process as soon as possible to avoid delays.
You can refer to the university policies regarding for more information.
Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW's policy, including more information about how to request an accommodation, is available at . Accommodations must be requested within the first two weeks of this course using the .
We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arise during the course, please do not hesitate to contact the instructor in office hours, via email, or private Ed Discussion post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.
Additionally, if at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, you may consider sending or contacting the .