The most useful and interesting parts of the syllabus are on the main class page. This extended syllabus page is for covering details and policies governing exceptional circumstances.
The course grade will be composed of 4 programming projects and 4-5 written homeworks. Final grades (prior to 4.0 scale conversion) will be summed based on 20% for each programming project and 18% for the written homeworks. An additional 2% will be assigned for completion of a "project 0" which consists almost entirely of demonstrating that you can get the starter code running successfully.
All Assignments are due on Thursdays by midnight. Each student is allowed up to 3 late days for homeworks and an additional 3 late days for projects. Exceptions to this policy will only be given in extreme circumstances, with instructor approval.
Students who regularly participate in class and turn in projects on time will be eligible to make up missed points on projects and homeworks by demonstrating comprehension of the relevant concepts through quizzes or other means at the discretion of the instructor. (Basically, if you're putting in your best effort and can eventually prove you learned everything this class is supposed to teach you, then you'll get a good grade)
This last point is very important. Since 557 is a graduate class, we expect all students taking 557 to be more interested in learning than in earning points. Assignments (projects & homeworks) are designed to be tough
The Golden Rules for Academic Misconduct are that (1) you should not misrepresent others' work as your own; and (2) you should not aid others in doing so. Further details are covered in the general Allen School misconduct policy linked above.
It is our policy to trust all students and not aggressively investigate or attempt to catch misconduct. Please do not violate this trust, as we will have very little sympathy once you have done so. If we have to file a misconduct report and CSSC finds you at fault, it is class policy to pursue the maximum allowable penalty.
Discussion of further class specific policies and justifications follows below.
In the past two offerings of 557, we have tried running the programming project both with and without teams. Our experience was that when we switched to project teams, time spent completing the programming projects went up. We suspect this was due to rules requiring students to pair program together. Therefore we are switching back to individually completed projects with the hope that this reduces workload for the class.
Likewise, the written homework is expected to be completed by each student independently. Broader discussion on either type of assignment is allowed, but you must write and turn in your own work. Please use the discussion board on EdStem to ask and answer questions, but do not post source code or partial solutions to homework questions. The same rules apply to discussions off of the discussion boards.
Computers, phones, and other electronics can be a distraction both to the student who is using the device and to others around them during lecture. However, we understand that (1) phones may be important for alerting you to an emergency and (2) laptops (or tablets) are the preferred means for many students to take notes. Therefore we ask that everyone restrict any regular and sustained use of devices during lecture to note-taking. If it appears that you are using laptops or devices for other purposes, we may pause to remind everyone of this policy.
Over the Spring and Summer of 2025, the discipline of Computer Science has experienced a collective panic over AI coding assistants. As part of our first class, we discussed the topic and conducted a poll. Informed by the poll, here is the policy for the course, along with explanations for the different parts of the policy.
Most importantly, because this is a graduate level class, we are adopting the policies of "trust" and "prioritizing learning." As your teacher, I want to spend my time helping you learn, not testing some company's LLM. I also don't want to spend my time becoming increasingly paranoid that students are being dishonest with me. Hopefully you agree from our poll that everyone in the class has good intentions and will be honest with each other, so long as we agree to some set of rules/policies.
In this course we will adopt blanket ban on AI coding assistants. (This may require you to use a different IDE or disable features in your IDE)
Why a blanket ban? It is difficult to anticipate which parts of the projects will or will not be easy to complete with an AI coding assistant. However, some project tasks will probably be trivial to complete using a coding assistant. These tasks are still educationally valuable. For example, you will be asked to implement Bezier curves on project 4. This is a valuable exercise for building your understanding even if many decades of programmers have implemented Bezier curves before you.
The use of AI for information retrieval in a manner analogous to a web search engine is allowed. However, please use your judgement. Entering into a dialog with a chatbot to try to get a homework question answered is against the spirit of this policy.
All uses of AI to generate or edit non-code text (i.e. project reports and homework writeups) needs to be attributed as part of that document, including the use of tools such as grammarly to correct grammar or improve fluency. If in doubt, please attribute. If this becomes ridiculous, we can diagnose as a group and adjust.
Why attribute everything? There are two major reasons. First, if everyone attributes all generative AI uses, we will clear up ambiguities in the policy more quickly. It's hard to get in trouble for doing something wrong if you said you did it. Secondly, if we are aware of when and how you are using AI to change your writing, (e.g. improve fluency) we will be better prepared to give you useful feedback and be less surprised if you change your practices mid-way through the quarter.
Under no circumstances should you upload any homework question or project (code or readme) to a third-party service including but not limited to LLMs/chatbots.
Why? The end user agreements for these services (when not established as business-to-business contracts especially) have many loopholes that permit the company to retain and use data for training or other purposes.
Your teachers (instructor, TA) in this class have not used and will not use AI for creating lectures, homeworks, projects, grading your work, or communicating with you (e-mail and Ed).
Why? Students don't like us doing this, and we certainly don't want to be hypocrites who don't let you do something while doing it ourselves.
If you have already established accommodations with Disability Resources for Students (DRS), please activate your accommodations via myDRS so we can discuss how they will be implemented in this course.
If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), contact DRS directly to set up an Access Plan. DRS facilitates the interactive process that establishes reasonable accommodations. Contact DRS at disability.uw.edu.
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 Religious Accommodations Policy (https://registrar.washington.edu/staffandfaculty/religious-accommodations-policy/). Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form (https://registrar.washington.edu/students/religious-accommodations-request/).