<head>
  <title>CSE374 21wi</title>
  <link rel="stylesheet" href="index.css">
</head>

# CSE374 21wi

## Redirections
- Info
    - [Syllabus](syllabus.html)
    - [Schedule](#schedule)
    - [Documentation](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/docs.md) (Gitlab)
    - [Homework](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/homework) (Gitlab)
    - [Lecture Slides](https://drive.google.com/drive/folders/1o_amRJl9kuHuNqThx5bQDv0UuZU78Jaq?usp=sharing)
    - [Lecture Videos](https://drive.google.com/drive/folders/1mBXrlK_8caemDkWQ03e8uixmAtvIUJSf?usp=sharing) (UW sign in required)
- Links
    - [Internal Repository](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo) (Gitlab)
    - [Zoom](https://washington.zoom.us/j/92337533952?pwd=MzcycWxSaVNZQ1FhWi8yZUpLM3FYdz09) (Lecture & Lab)
- Discussion
    - [Ed](https://us.edstem.org/courses/3113/)
    - [Mattermost](https://mattermost.cs.washington.edu/cse374-21wi/) ([Sign up link](https://mattermost.cs.washington.edu/signup_user_complete/?id=4pgezzbutin3bnpmdq3k37tawa))
    - [Class Discord](https://discord.gg/NXu5vSzc6b)
- Resources
    - [Linux Pocket Guide](https://learning.oreilly.com/library/view/linux-pocket-guide/9781491927557/) (UW sign-in required) by Daniel Barrett.
    - [The C Programming Language](https://www.oreilly.com/library/view/c-programming-language/9780133086249/) (UW sign-in required)
    by Brian Kernighan and Dennis Ritchie. Referred to as "K & R".
    - [C reference](https://en.cppreference.com/w/c) (ironically at a website about C++)
    - [So you want to be a wizard](https://wizardzines.com/zines/wizard/) (free) by Julia Evans.
    - [Julia's other zines](https://wizardzines.com/) (some free, some not).
    - [ohshitgit.com](https://ohshitgit.com/)


## Schedule
- Week 1. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week1.md): Intro to everything (firehose!)
    - L01 (1/4/21): [Slides(Keynote)](https://drive.google.com/file/d/14spbHC8mCrg2RcaKCm0YP8o0PijBR_ee/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1rGnyqT1_OzzKwttBLRG7ApRAhKKzUj3K/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L01), 
      [video](https://drive.google.com/file/d/1ms3z7YM9EW3AmVsxSZIMXgXELOtsARf5/view?usp=sharing) 
      (access restricted -- submit access request from your UW email)
    - L02 (1/6/21): [Slides(Keynote)](https://drive.google.com/file/d/1LCVvtx3WEKXJSKN8GazU0bbnWWq7UbED/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/178M3rr-mKvxRnJ4VLb3Le0D48UNf8lx4/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L02), 
      [video](https://drive.google.com/file/d/1Ja_mHl67HCFphLSe8nADdg7obDivY4p1/view?usp=sharing) 
    - L03 (1/8/21): [Slides(Keynote)](https://drive.google.com/file/d/1tvCvzkXymV3uKDPvNYo7m3eh0klmy7h9/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/11bLv5d8SXEFK35kL4UWPhSLGZTZOJjKl/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L03), 
      [video](https://drive.google.com/file/d/1Ycvefj3EsZMVCTROAZ9gr3fXHcryExeT/view?usp=sharing) 
- Week 2. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week2.md): Arrays and strings
    - L04 (1/11/21): [Slides(Keynote)](https://drive.google.com/file/d/1OIk2OtmySB9p6Jp8_lrc-qICAVL0poL1/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1vRJ0ORSZAysnqXH7XiJyibvsPP785iuv/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L04), 
      [video](https://drive.google.com/file/d/1KKgN3zJT4Byk9_ecH98PgUUJGQyXOeLC/view?usp=sharing) 
    - L05 (1/13/21): [Slides(Keynote)](https://drive.google.com/file/d/1STSbpN9JD5X0-_ukOmZJJmigpv2F4cZ-/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1-zBXGRoEC-n1_YiW33NFdaCzA8WsBaDa/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L05), 
      [video](https://drive.google.com/file/d/1itFQWBu-V3e-I1K4-GJ5zfn3nvQYfUGp/view?usp=sharing) 
    - L06 (1/15/21): [Slides(Keynote)](https://drive.google.com/file/d/19EIYnFq29q1THN6YgKduyNhPWAduAKa1/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1QNZTsKXk_rjaaXSOJvV_gIwnpqFRNWXs/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L06), 
      [video](https://drive.google.com/file/d/11oSZHkpIEl2sbZlZCtsMSKhumyB_0hKM/view?usp=sharing) 
- Week 3. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week3.md): Intro to pointers
    - (1/18/21): No class, MLK Day
    - L07 (1/20/21): [Slides(Keynote)](https://drive.google.com/file/d/1r1lDApV_4XRT4WS1QuhtIiSv3qJvsHry/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1QPpbprVgxpBUxCJNivQ9plMMIEwolbMn/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L07), 
      [video](https://drive.google.com/file/d/1Y5YF6F6noIXhbVlx8kzV-ZSX4W_SXeTO/view?usp=sharing) 
    - L08 (1/22/21): [Slides(Keynote)](https://drive.google.com/file/d/1dUOsriwGGvfu5af9DB1JiV3aXnp-zXXY/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1vpS-71dGGXO_vgtirD6PlGoIpcdssTN2/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L08), 
      [video](https://drive.google.com/file/d/1ouzwzvRcpM2KbnLJjsQ7BfZjjpwz-Gg4/view?usp=sharing) 
- Week 4. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week4.md): Dynamic memory allocation
    - L09 (1/25/21): [Slides(Keynote)](https://drive.google.com/file/d/15nNGJDbfnts0xfGfEEPYnz9jK6eNcfhR/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1xddIXKkXW5YqbAWPVfV8HUOiJ2DhX0yq/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L09), 
      [video](https://drive.google.com/file/d/15vPXm7IgqcuTJjKQCP5Ekk21p3Wmo7Iw/view?usp=sharing) 
    - L10 (1/27/21): [Slides(Keynote)](https://drive.google.com/file/d/15-0ByHHsXSyMj8YhEy6UJjaXMpU4Nts7/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1QzGshSgoLdmyuNsZndOKQH5ynnZKqQJ5/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L10), 
      [video](https://drive.google.com/file/d/1qUHPTGYzFquSV6HULVRH_5zXt9Ti7p3c/view?usp=sharing) 
    - L11 (1/29/21): [Slides(Keynote)](https://drive.google.com/file/d/1nfij5jo4CY8kGmUeTNu1koX36COnwzSA/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1EsX80M2J_E_mhzSpjFYpuf4Ts89u6MU2/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L11), 
      [video](https://drive.google.com/file/d/1WZbChvpxEBxncqebhw5uabc17zB9qJMc/view?usp=sharing) 
- Week 5. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week5.md): Linked data structures
    - L12 (2/1/21): [Slides(Keynote)](https://drive.google.com/file/d/1GDVR28k5B7RfSSi8MMOsGhYI_i7JOawH/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1g3kch_vrymNC4R2NlOt7FRYvC5FT3H8Z/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L12), 
      [video](https://drive.google.com/file/d/1LOUWKYjIzYQ4EKm9EWZJLbW73HwujoM2/view?usp=sharing) 
    - L13 (2/3/21): [Slides(Keynote)](https://drive.google.com/file/d/1jR74xLvnZvqenvy9Db3EVvJVbBEN1m--/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1gD7Q05h4jTv4HpZ3GooXVbMkrIQNLksv/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L13), 
      [video](https://drive.google.com/file/d/1DUIMKsUYkoXbZyV6TcKyl5LajHSGRvz2/view?usp=sharing) 
    - L14 (2/5/21): [Slides(Keynote)](https://drive.google.com/file/d/11uiue7PFbvgoJirExIp-n3MU3bE5NtQn/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1tntKrzFpyoYwtEKxTMPxiIKNcgyyTWqr/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L14), 
      [video](https://drive.google.com/file/d/13qBXJnE9zTn4741ZaDWKskMmfd40oAGP/view?usp=sharing)
- Week 6. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week6.md): Assembly and gdb
    - L15 (2/8/21): [Slides(Keynote)](https://drive.google.com/file/d/1u93K4Rgm5u4sq5ttgKYjhmY0blQhIQno/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1LLvt_TdGYwgQv6KTtujTFIOsYwjvwHJm/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L15), 
      [video](https://drive.google.com/file/d/10vhNM39Nm9RyqytHukz_H-jryOPr3MgK/view?usp=sharing) 
    - L16 (2/10/21): [Slides(Keynote)](https://drive.google.com/file/d/1SCAOLQ9lsh8DE408LYmCgtsU2nx3Ib0M/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1P2ob3YKjamBRxEITEARG-bkM8_J0TtAo/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L16), 
      [video](https://drive.google.com/file/d/1d-apt1maZCgle_hEXP-ehmfB-C6n2d4B/view?usp=sharing) 
    - L17 (2/12/21): [Slides(Keynote)](https://drive.google.com/file/d/1KVTuubHDTV9spwfjzeHJ9thHEu8k_KXB/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/15X04KIppp1LB4h9mPJxifyrQIJIo_qoZ/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L17), 
      [video](https://drive.google.com/file/d/1QGWkW_ZlEmuATXf5uFkeZ-9hMFDni60A/view?usp=sharing) 
      ([optional supplemental video](https://drive.google.com/file/d/1t3ZEbOf0UP9XdjOBn5YpjF6FQEsAzDN2/view?usp=sharing))
- Week 7. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week7.md): Shell scripting and vim
    - (2/15/21): No class, President's Day
    - L18 (2/17/21): [Slides(Keynote)](https://drive.google.com/file/d/1mEIPby7GzhrhfDqHL-YsSZhCfmmKorFw/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1WqaOjZKfR7R-E4h0ogbvt1jZvE_BXx-t/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L18), 
      [video](https://drive.google.com/file/d/1kX37soWq_4LEd0yCzMYHTHcm3xajMte0/view?usp=sharing) 
    - L19 (2/19/21): [Slides(Keynote)](https://drive.google.com/file/d/1E6k8-0OBH5-bInwFhltbgvSyse6KAJln/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1bAFdVGFvV70etJzpK4V_ZEj2R3hujY5p/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L19), 
      [video](https://drive.google.com/file/d/1x-uVSt6Gwqu7oHoxwcCKpgfJdvjmEOxQ/view?usp=sharing) 
- Week 8. [Assigned work](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/blob/main/homework/week8.md): Testing, fuzzing, and git mental model
    - L20 (2/22/21): [Slides(Keynote)](https://drive.google.com/file/d/1JCtUR0OFBIx6_8oFgi7uBDtdtQxpwXbK/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1EYIe6zKiCmUEvOPChidhuds3SnwRyURz/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L20), 
      [video](https://drive.google.com/file/d/17Mo8j2Awkmqx2n3sI_g4zNXgTpHnC-A_/view?usp=sharing) 
    - L21 (2/24/21): [Slides(Keynote)](https://drive.google.com/file/d/1l4zammTSejw1aDODR7SY3awZf7-sX2c5/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1tNhOIaZxQ0FUC2kIdY1zH5ht_dcsHx4K/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L21), 
      [video](https://drive.google.com/file/d/1wo8R8whAtEN6VnSrCXNOx6jVqtnrYwOG/view?usp=sharing) 
    - L22 (2/26/21): [Slides(Keynote)](https://drive.google.com/file/d/1S-yhA2jADJPiKi2s3A6ni473j2DubVWZ/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1Rh-ntGvMm7CkSL28ko7_TKFHFg8KyWGw/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L22), 
      [video](https://drive.google.com/file/d/1hW_ev_gjk5oxLOqvfwiRmdme4yLjDYQ5/view?usp=sharing) 
- Week 9. Security; buffer overflows
    - L23 (3/1/21): [Slides(Keynote)](https://drive.google.com/file/d/1CkpLO21MZ3bmkmXwgtBhS9LjSLeADDuW/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1WV6T6ogSwqff84-8NbksNIaR2aK_ZgxD/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L23), 
      [video](https://drive.google.com/file/d/1zmOpO9YMV65MkW-bgkqQvB_5tgjefjBT/view?usp=sharing) 
    - (3/3/21): cancelled
    - L24 (3/5/21): [Slides(Keynote)](https://drive.google.com/file/d/1alBN-Uhfi7nUZppabmzOykMPkabrE_A6/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/19GxpiDQtuFyIq8VbLU2d6wMDsw_O5Y9V/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L24), 
      [video](https://drive.google.com/file/d/1uZnswWEh86CFutHBdTrbjsLAOpWzv6XF/view?usp=sharing) 
- Week 10. Rust and course wrapup
    - L25 (3/8/21): [Slides(Keynote)](https://drive.google.com/file/d/1gZuUiwcFfVH01xz7p0MJWVVdYRfJI7rb/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1ji4kIazNNojlvfJHuG0_HUCAlux5u39G/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L25), 
      [video](https://drive.google.com/file/d/1BxsF2ggbtSGVZCi4f1AYRlbVdoX-4o0P/view?usp=sharing) 
    - L26 (3/10/21): [Slides(Keynote)](https://drive.google.com/file/d/1atMBq7WnwIrGjZtJq7zPUMzYz8jm9qJ8/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1pRGExzbsJYGtwFtkFOHdcPJWdq6yzkVg/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L26), 
      [video](https://drive.google.com/file/d/10CxP2SZuuq5ija65C2aLhJ-ORkOjHQWJ/view?usp=sharing) 
    - L27 (3/12/21): [Slides(Keynote)](https://drive.google.com/file/d/1bUqxVxU2k40SvaSq5TMBsebk_43y5pFd/view?usp=sharing), 
      [Slides(PDF)](https://drive.google.com/file/d/1OBrVxh_pkF6JIW3n4Xk2OohYmFQVmZRV/view?usp=sharing), 
      [demos and written notes](https://gitlab.cs.washington.edu/cse-374-21wi/cse374-21wi-monorepo/-/tree/main/lecture/L27), 
      [video](https://drive.google.com/file/d/1jEwbuERQT4rNAbPFfQAfxFWfDbvHtsLE/view?usp=sharing) 

## Course staff

You can email all staff at cse374-staff@cs.washington.edu. (But making a private
Ed post is generally preferred for topics closely related to the course content.
Email is good if for any reason you don't want it on Ed, or if it's really
urgent/important.)

- James Wilcox (he/him or they/them; call me "James")
    - jrw12@cs.washington.edu
- Yitian Hao (she/her)
    - yh255@cs.washington.edu
- Jiuru Li (he/him)
    - lij93@cs.washington.edu
- Katie Lum (she/her)
    - lumk3@cs.washington.edu
- Mickey Moonkaen (he/him or they/them)
    - moonkp@uw.edu
- Frank Qin (he/him or they/them)
    - qzh@cs.washington.edu
- Mohit Sane (he/him or they/them)
    - sanem@cs.washington.edu
- Yihong Zhang (he/him or they/them)
    - yz489@cs.washington.edu


## "Doing hours"

The Zoom link above is available for use as a "lab space" 24/7. All enrolled
students are co-hosts of the meeting and should have full privileges. (If not,
email James to be added as a co-host.)

The "lab" will be staffed at these times (all Pacific).

- Sundays
    - 4-6pm (James)
- Mondays
    - 11:30am-12pm (after lecture) (James)
    - 12-1pm (Yihong)
    - 2:30-3:30pm (Frank)
    - 4:30-5:30pm (Jiuru)
    - 10-11pm (Mickey)
- Tuesdays
    - 8:30-9:30am (Mohit)
    - 2:30-3:30pm (Katie)
    - 8-9pm (James)
    - 10-11pm (Yitian)
- Wednesdays
    - 9:30-10:20am (before lecture) (Mohit)
    - 11:30am-12pm (after lecture) (James)
    - 12-1pm (Yihong)
    - 2:30-3:30pm (Frank)
    - 3:30-4:30pm (Katie)
    - 10-11pm (Mickey)
- Thursdays
    - 7-8am (James)
    - 8:30-10am (Mohit)
    - 12:30pm-1:30pm (Jiuru)
    - 10-11pm (Yitian)
- Fridays
    - 11:30am-12pm (after lecture) (James)
    - 12-1pm (Yihong)
    - 2:30-3:30pm (Frank)
    - 3:30-4:30pm (Katie)
    - 4:30-5:30pm (Jiuru)
- Saturdays
    - 10-11pm (Mickey)

## Calendar
<iframe src="https://calendar.google.com/calendar/embed?height=600&amp;wkst=1&amp;bgcolor=%23ffffff&amp;ctz=America%2FLos_Angeles&amp;src=Y18wdnBtaWFxZmdjZmY5dXN0bXVlZDFxYzNna0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t&amp;color=%237CB342&amp;mode=WEEK" style="border:solid 1px #777" width="1000" height="600" frameborder="0" scrolling="no"></iframe>