CSE 333 20su Systems Programming
Information and Syllabus

At the moment this is the standard syllabus for CSE333. It has not been updated yet to reflect changes that will need to be made for 20su. However, the general content of the course will be the same to the extent possible, and most of the information in here will still apply.

Logistics and Contact Information: See the main course web site www.cs.washington.edu/333/. Look there for information about the course including meeting times, staff, office hours, communications, etc.

[ prereqs | topics | grades | participation | polling | assignments | exercises | exams | textbooks | late policies | disability resources | inclusiveness | religious accommodations ]


Requirements

Prerequisites

Suggested


Approximate topic list


Grades

The initial plan for 20su is the following. We will adjust this once we determine whether it will be feasible to administer (quizzes) or "exercise++'s" and we reserve the right to make additional adjustments to reflect other changes as the quarter evolves:


Course-Wide Participation

You can earn credit towards your pariciaption grade by actively participating in the course. This includes, but not limited to:

Note that you do not have to complete all of the listed activities to get full credit for course-wide participation. Participation grades are kept internal to the staff (i.e. not disclosed to students).

Lecture Polling

Lecture will be supplemented with in-class peer instruction questions that will give you a chance to solve a question related to lecture content, discuss with your peers, and vote on the answer. This is 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. Voting on peer instruction questions in lecture will count as credit towards the course-wide participation portion of your grade (you will receive credit based on participation -- your response does not need to be correct).

  1. Register your UWNetID on the . More information can be found from .
  1. Optionally, you may download the Poll Everywhere mobile app.
  1. Bring an Internet-enabled device with you to lecture. (Though, with courses online, it would be hard not to do so.)


Assignments

This course is designed to give you substantial experience with programming. There will be four major programming assignments during the quarter; the assignments are designed to build on top of each other, so it is in your interest to make sure that you have a decent understanding of each phase of the project..


All of our assignments assume you will be programming within an Allen School Linux environment. There are three ways to do this:

Regardless of where you develop your assignments, we will test and grade them on the CSE lab machines or attu, so you must ensure that your code works properly there.


Exercises

Great programmers write great code. People become great programmers writing lots of code and learning from the experience. We will be assigning a mandatory programming exercise with most lectures, due before the next lecture. Each exercise will try to reinforce material covered in lecture, and each will have different takeaways. Since each exercise has a specific take-away, we will try to highlight what the take-away is for each exercise, and be more lenient when handling errors not directly relating to the main take-away. These will (hopefully) be relatively short and simple. We will grade them, but the grading will be coarse-grained, roughly as follows:

We expect 0's and 1's to be rare, and 3's to be less common at first, with more 3's as the quarter progresses and earlier feedback is taken into account. As with larger assignments, exercises will be graded and evaluated on the CSE linux machines.

We will also assign 'gold stars' to those solutions that have exceptionally good style in the code. This would include following the best C/C++ practices, writing good comments, and modularizing nicely. These 'gold stars' will not count directly towards your grade, but may be considered when it comes time to assign final grades for the course.


Exams

Because of the unusual situation during this quarter, there will not be a traditional midterm or final exam. We are hoping to have 1 or 2 "exercise++'s" or potentially quizzes during the quarter to provide an opportunity to review and solidify course material, but those plans are still tentative. An "exercise++" would be a programming assignment slightly larger than an exercise, but worth more points, and have a more fine-grained grading rubric.


Text books

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. We recommend that you have a copy of the C++ Primer as C++ is a big, complex language and it is hard to understand how it fits together from google searches and stack overflow snippets and folklore.

Many of these books are freely available to UW students through the UW Library's subscription to Safari Books Online.

Strongly Recommended

Suggested

The course web resources page has links to several useful C, C++, and Linux reference and tutorial sites.


Late Policy

The standard CSE 333 late policy is as follows:

For exercises, we will not accept any late; you must turn them in on time.

For Homework Assignments, these are expected to be done on time, however we realize that occasionally a bit of slack is needed for unexpected problems or to get rid of that "last" bug. For the entire quarter, you may have four free "late days". You are strongly advised to save them for emergencies.

If you are not finished with an assignment and have no more remaining late days you should turn in your best effort for partial credit either on time or after using any available late day(s). This policy may not be the same as in other classes. You are responsible for understanding it if you choose to submit late work.

For Summer Quarter 2020: Given the unusual circumstances this quarter, we will be flexible when needed about deadlines. The goal is to stay on schedule as best we can, while acknowledging that the current situation may well require some adjustments. We will try to be clear about any changes in advance so everyone can plan accordingly. Please contact the course staff in advance if you find it will be difficult to meet deadlines for reasons beyond your control.

Reasonableness: No set of rules can apply perfectly in every setting. We will make reasonable exceptions, and in return, we expect you to be reasonable as well.


Academic Conduct

Cheating vs. Collaboration: Please see the separate discussion of Academic Integrity. You are expected to read and understand every word in that document. Ask first if you have any questions.

Collaboration is a very good thing and is generally encouraged. On the other hand, cheating is considered a very serious offense and is vigorously prosecuted. Vigorous prosecution requires that you be advised of the cheating policy of the course before the offending act.

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 future courses 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.

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 .


Disability Resources

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.


Extenuating Circumstances and Inclusiveness

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstance that arises 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, religious observations, 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 anonymous feedback or contacting the .


Religious Accommodations

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