CSE 374 Syllabus¶
This course is kind of like going out for dim sum with a big family. You’ll get a huge variety of dishes, but the portion sizes are small. CSE 374 is a whirlwind of different topics that will give you a foothold in several different areas of computing not covered in the intro series. We won’t have time to go deep on any of these topics, but hopefully when you see one of these topics outside of the classroom, you’ll be ready to dive deeper into it.
Learning Objectives¶
| 1 | Linux and automation — Tools |
|---|---|
| 1A | Shell commands, arguments, bash interface |
| 1B | Files, directories, relative and absolute paths |
| 1C | I/O streams, piping |
| 1D | Glob, regex |
| 1E | Version control (git) |
| 1F | Compiling, linking, and build automation (make) |
| 1G | Containers, CI/CD (Docker, Gitlab runner) |
| 1H | Explain what an OS is: syscalls, access control |
| 2 | Testing and debugging — Thinking |
|---|---|
| 2A | Unix philosophy |
| 2B | Test-driven development, pre- and post-conditions |
| 2C | Debugging strategies |
| 2D | Interactive debuggers (gdb) and runtime profiling (valgrind) |
| 2E | Writing documentation |
| 2F | Canon to Folklore: official docs vs StackOverflow vs chatbots |
| 3 | Resource management — Allocation |
|---|---|
| 3A | Pointers, dereferencing, arrays, and dynamic allocation |
| 3B | Identify and fix simple memory errors |
| 3C | Automatic resource management (RAII) |
| 3D | Identify and fix dynamic memory errors |
| 3E | Concurrency, data races |
| 3F | Differentiate b/w resources: stack/heap, RAM/disk, code/assembly |
Grades¶
| Item | Percentage |
|---|---|
| Exams (three total) | 30% |
| Homeworks | 30% |
| Exercises | 30% |
| Participation (lecture polls, OH, Ed) | 10% |
Late submissions¶
- Homeworks can be submitted up to two days late.
- A late day is defined as the 24 hour period after a homework’s due date:
num_late_days = ceil(hours_late / 24).- An exception is made for weekends, which count as a single late day. That is, if an assignment is due at 11:59 PM on Friday, submitting before Sunday at 11:59 PM counts as only ONE day late (submitting by 11:59 PM on Monday would count as TWO days late).
- Homework submissions are NOT ACCEPTED more than two days late.
- You get 6 free late days to use across the quarter, then we start lowering your max grade for the late homework.
Exercises are generally due at the beginning of the lecture after next. (e.g., if it was assigned on Monday, it’s due before class on Friday) Exercises cannot be accepted late, unless you have an approved DRS accommodation. The same goes for lecture polls.
| Percentage grade | 4.0 scale grade |
|---|---|
| > 96.5% | 4.0 |
| > 88.5% | >= 3.5 |
| > 80% | >= 3.0 |
| > 70% | >= 2.5 |
| > 60% | >= 2.0 |
Participation¶
Lecture polls¶
Polls are graded entirely based on participation, not based on correctness. You will be able to answer polls during lecture, as well as up to 24 hours after the polls open. So, even if you can’t physically attend lecture that day, you may still get credit if you respond while the poll is open.
Office hours and EdStem participation¶
Asking and answering questions earns you participation credit, whether it is in office hours or on Ed. All students are required to attend at least one office hours in the first two weeks.
Exams¶
There will be three in-person exams, roughly one at the end of every three weeks. We will attempt to schedule them in a 2 hour block when everyone is available using a poll, but if not, they will be scheduled during class time, so you will have 1 hour to complete it.
Exam 1: Scripting and Linux¶
Confirmed time: Monday, July 13, 9:50-11:50 (2 hr)
Location: PCAR 291
Exam 2: Debugging in C¶
Proposed times:
- Friday, Aug 7, 9:50-11:50 (2 hr)
- Friday, Aug 7, 10:50-12:50 (2 hr)
- Friday, Aug 7, 1:00-3:00 (2 hr)
- Friday, Aug 7, 5:30-7:30 (2 hr)
Back-up time: Friday, Aug 7, during class (60 min)
Exam 3: Building systems in C/C++¶
Proposed times:
- Thursday, Aug 20, 9:50-11:50 (2 hr)
- Thursday, Aug 20, 10:50-12:50 (2 hr)
- Thursday, Aug 20, 1:00-3:00 (2 hr)
- Thursday, Aug 20, 5:30-7:30 (2 hr)
- Friday, Aug 21, 9:50-11:50 (2 hr)
- Friday, Aug 21, 10:50-12:50 (2 hr)
- Friday, Aug 21, 1:00-3:00 (2 hr)
Back-up time: Friday, Aug 21, during class (60 min)
There may be a reference sheet provided on the exam with some helpful notes. You are also allowed one 8.5x11 inch piece of paper with handwritten notes. You are not allowed to use any computational devices.
Academic Honesty¶
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 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¶
Cheating consists of sharing code or solutions to assignments by either copying, retyping, looking at, or supplying a copy of a file.
Examples include:
- Coaching a friend to arrive at a solution by simply following your instructions (i.e., no thinking involved). An example is helping a friend write a program line-by-line.
- Copying code or answers from a similar course (i.e., previous quarters of 374 or from another university).
- Using solutions/code from the web directly or as a starting point, including GitHub, Chegg, and AI generative tools like ChatGPT.
- Communicating your solution with another student via electronic or non-electronic means.
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 Academic Misconduct Policy.
Generative AI policy¶
Some use of generative AI on homework assignments is permitted, but not encouraged. However, exercises and exams must be completed without any assistance from AI tools.
ChatGPT and other LLMs are incredibly useful tools, but they can hinder your learning.
It’s impractical for us to ask you to stay away entirely.
- Many software engineers and programmers use them daily.
Be mindful of how much you lean on it to learn how to code.
- It’s ok to ask questions and learn from it (i.e., use it like web search).
- It’s NOT ok to ask it to implement your homework.
You may NOT rely on ChatGPT (or other GenAI tools) to complete assignments!
Disability Resources¶
The Disability Resources for Students (DRS) 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 DRS getting started to start the process as soon as possible to avoid delays.
You can refer to the university policies regarding Disability Accommodations for more information.
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 Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.
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 circumstances 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 anonymous feedback or contacting the Office of the Ombud.
Course Materials¶
CSE Linux Environment¶
All assignments in this class will be graded on the CSE Linux environment. You need to remotely log in to calgary.cs.washington.edu
Note
In previous quarters, there was another option of using the CSE home VM on your personal machine. However, due to some hardware updates, we can no longer use the VM for this class.
Textbooks¶
There are no required texts for this course. The following are some free reference materials you may find helpful:
Online Tools¶
To facilitate our learning experience, we will be leveraging a number of different educational platforms:
- Course Website: Look here for a centralized source of all course materials. Here we will post lecture slides, assignments, announcements and reference materials.
- Canvas: Look here for grades and Panopto Recordings.
- Gradescope: This is where you will submit all assignments. Gradescope will also be responsible for auto grading your submissions and providing feedback so you will be able to know exactly how many points your submission will earn.
- Ed Board: We will use Ed for online course discussions. Go here to post questions about assignments and course materials. Also feel free to use the board to discuss opportunities, form study groups and connect with classmates. Course staff will be proactively monitoring the board for questions, but you are also encouraged to answer questions for one another. Teamwork makes the dream work!
Discussion Board¶
Ed serves as an online discussion forum. For most questions about the course or materials, they are the right place to ask: the course staff read them regularly, so you will get a quick answer. On Ed, you can also submit questions anonymously or privately to the course staff if you are more comfortable doing so. We also strongly encourage students to answer one another’s questions as well: we’re all in this together! Explaining a concept to someone else is also a great way to solidify your own learning.
We will also post announcements and other relevant information on Ed.