This course should develop students' sense of what really happens when software runs — and that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level, the C programming level, and the Java programming level. The core around which the course is built is C, assembly, and low-level data representation, but this is connected to higher levels (roughly how basic Java could be implemented), lower levels (the general structure of a processor), and the role of the operating system (but not how the operating system is implemented).
For (computer science) students wanting to specialize at higher levels of abstraction, this could, in the extreme, be the only course they take that considers the “C level” and below. However, most will take a subset of , , , , , etc.
For students interested in hardware, embedded systems, computer engineering, computer architecture, etc., this course is the introductory course after which other courses will delve both deeper (into specific topics) and lower (into hardware implementation, circuit design, etc.). Of particular interest are , , , and .
The course has three principal themes:
At the end of this course, students should:
Approximate list of topics:
Note that even more important than the topics at various levels of abstraction is the connection between them: students should get an informal sense of how Java could be translated to C, C to assembly, and assembly to binary.
The course consists of the following elements:
We will try to ensure that the workload is typical for a 4-credit course, namely, 9-12 hours per week outside of the lectures. If we do not succeed, please let us know in whichever way you feel the most comfortable (in-person, email, ) 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 an assignment for the day before it is due you will not have time to ask questions when (not if) the software misbehaves.
We will compute your course grade approximately as follows (percentages may be modified):
Part of your grade will be determined by your participation in the course, specifically by completing lecture polling questions (see below). One goal for 20su is to provide opportunities to participate in the course asynchronously both for students who may be in a different time zone, and to give everyone more flexibility during these challenging times. We will be using PollEverywhere for activities during lecture. Students who are not able to attend lecture will still be able to submit answers to PollEverywhere questions asynchronously.
In our on-line format for 20su, we imagine folks will be making more use of our Piazza message board. While message board participation won't be explicitly counted in your grade, we highly encourage students to engage by not only asking questions, but also importantly answering questions as well as reading posts from others. The message board can be a valuable resource for growing your knowledge and succeeding in this course!
You will receive credit for voting on multiple choice questions in lecture. This quarter we will be using , which will be attached to your UWNetID. Make sure you first register your account and then all you will need is an Internet-enabled device during lecture! There is a mobile app available as well. More information can be found at .
These questions are designed to give you a chance to check your understanding of the material by applying it on-the-spot, as well as an opportunity to interact with your classmates.
Makeups: We think attending lecture and answering the questions during lecture is the best way to learn, but we understand that different circumstances may not make this possible. After every lecture, a Canvas quiz will open for that day's poll everywhere question, due at 10:30am on the day of the next lecture. If you attended lecture and filled out the poll everywhere question, you do not need to submit this quiz. If you did not attend lecture, you must fill out this Canvas quiz to receive credit for that day's question. The quiz will ask you to explain your answer to simulate the discussion you would have had with your peers, you must include an explanation to receive credit!
Scoring: For every question you fill in an answer for, regardless of if it's correct, you will receive 1 point. For every question you answer correctly you will receive .05 extra points (as a small incentive for correct answers). You will receive full credit for participation if you obtain 80% of the total points for the quarter (total points for the quarter is calculated by using 1 point per question).
Note: in 20su the first week of polling will NOT count towards your grade in the course.
We will keep track of any extra credit items you complete on labs. You won't see these affecting your grades for individual 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 likely have NO effect on your overall grade (and only a small amount if you are on a borderline). You want to be sure you have completed the non-extra credit portions of the lab 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.
All assignment submission deadlines have an implied "and zero seconds" attached to them. This means that if your clock reads the deadline time (e.g. "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.
While turning in assignments on time is the best way to stay on top of the material and on schedule, we realize that 20su is not a usual quarter and we all may face unexpected challenges. This quarter we are giving each student a total of 7 late days for the entirety of the quarter to utilize on labs and unit summaries (NOT homeworks) should the need arise. Please do not use these casually, as they are meant to provide a buffer to help you get over unexpected events.
num_late_days = ceil(hours_late / 24).
What happens if I have used up all my late days? You may still submit any lab or unit summary up to two late days past the original due date (except Lab 5 and Unit Summary 3 as noted above). However, for each late day you use that exceeds the total late days given to you, you will be penalized 20% of your score on one of the items that you submitted late. The penalties will be applied in a manner that maximizes your overall grade (i.e. minimizes your total penalties).
For 20su: Your lowest homework score will be dropped at the end of the quarter. The way this will be implemented is by boosting your homework grade by 11.5 points (the max total for one homework) which will allow for a more even policy for each student, but essentially implements dropping your lowest homework score. Your homework score cannot exceed 100%.
Learning from our mistakes is often one of the most memorable ways of learning and the staff is not immune from making them, too! If you have a question about a graded assignment, please don't hesitate to ask a staff member about it during their office hours or via private post on Piazza. If, after discussing your question, you feel that your work was misunderstood or otherwise should be looked at again to see if an appropriate grade was given, we ask that you submit an electronic regrade request via the interface, which will open and close automatically (regrades typically open a day after grades are released and stay open for a week). Note that when an assignment is regraded, the entire work will be regraded. This means that while it is possible to regain some points, it is also possible to lose points.
In general, we encourage collaboration, 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 work, 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.
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 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 .
This course is scheduled to run synchronously at your scheduled class time via Zoom. These Zoom lecture sessions will be recorded. The recording will capture the presenter's audio, video and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. The recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public. Note: Quiz Sections and Office Hours will be held over Zoom but NOT be recorded.
The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded should:
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 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.
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. The course staff values your mental/physical health above the course material, and are willing to help figure out the best balance for your situation. 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 Piazza post to discuss your situation. Please contact us ASAP if you think that your circumstance will affect your ability to complete an assignment. 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 .