Max Willsey and Luis Ceze
{mwillsey,luisceze}@cs.uw.edu

Announcements

  • The midterm will be takehome. See Piazza for details.
  • Make sure you are in the Piazza, that's where course communication will take place.

Welcome to CSE 351! We have put the most important links at the top, categorized by what they're for. Please check them out!


Events


Asking Questions, Getting Assistance, Giving Feedback

It is very important to us that you succeed in CSE 351! Outside of lectures and sections, there are different ways to ask questions or discuss course issues:
  1. Visit office hours (see Events above)! In addition, if you need extra time or need to discuss something in private, feel free to email and make an appointment.
  2. Make a public post about course content on the , where they benefit the whole class. If other students can answer your question, you may receive a response more quickly than you would by emailing the course staff. This is the best way of asking questions about homework, labs, and other class-related topics. Before posting, please search through the questions that have already been posted in case someone has already asked the same question.
  3. Make a private post to just the course staff on the with any questions or issues you would prefer to discuss privately. While you can email staff members individually when that makes sense, contacting the whole staff is generally preferred to get a faster response and to let the whole staff see what issues students are having.
  4. Send to the course staff. The instructor will try to address the issue and share it with others only as appropriate, but will not have a way to reply to you without addressing the whole class. Note: the instructor will have no way to reply directly to the individual providing feedback.

Course Staff

Instructors

Staff Mini-Bio: Max Willsey
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in Georgia and went to undergrad at Carnegie Mellon. I'm now in my third year of the PhD program here, advised by my co-instructor Luis!

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
Quite a bit! I only really began programming in college (maybe a tad in senior year of high school). But now I'm a programming languages researcher, so I see a ton of them! Right now I'm very into Rust.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
I like reading, running, and doing the crossword! I don't think I have any super cool skills or anything :/

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
What a question! I'm doing a PhD; it's not done yet but that's pretty cool I think.

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
Teaching this course! Also, I'm helping prepare for prospective grad student visit days, and hopefully getting a little research done too :)
CSE 280
Staff Mini-Bio: Luis Ceze
WHERE DID YOU GROW UP?
São Paulo, Brazil

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
Wow. Lost count of how much! :) but... I wrote code in C, C++, BASIC, Visual Basic, FORTRAN, R. JavaScript, PhP, Python, Perl, X86 Assembly, PowerPC Assembly, MIPS Assembly, Motorola 68000 Assembly, Z80 Assembly. Phew!

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
I can’t play or even watch soccer…. But I love to cook and like to believe I do a decent job at it! Ask my life partner Karin if that is indeed the case :)

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I saw some of my research group’s work being featured live on stage by a major music band with a full house!

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
Making sure you all get the most out of this class!
CSE 576

Teaching Assistants

Britt Henderson
Staff Mini-Bio: Britt Henderson (Bleg)
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in TriCities Washington (east side of the state). As a freshman going into UW I had no idea what I wanted to major in and I knew nothing about CS (I didn't even know what a 'java' was). I first decided to take 142 because people on my dorm floor were talking about the cool programs they were writing and how they were also learning to make videogames with what the material from class. I fell in love with the material immidiately there after, pursued the major, was accepted summer '17, and am now set to graduate Au19!

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
I only started programming in spring 2016 after taking 142, but I haven't stopped programming since! Currently working on backend for a videogame project that I and 4 others are developing.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
Game Development, writing Bleg, Super Smash Bros Ultimate,

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I think life in general is pretty remarkable, and I'm thankful to be living it.

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
CSE 446 (ML), CSE 351 (of course), developing a videogame, and life in general :)
hendeb96
AD/BD
Lukas Joswiak
Staff Mini-Bio: Lukas Joswiak
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in North Seattle and started programming in high school. I came to UW knowing I wanted to pursue CS, and luckily things worked out!

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
I've used quite a few languages in a work environment, from Java to JavaScript to Python to Objective-C to C++. Currently I'm exploring Go as the backend for an app.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
Some of my more useless skills include being able to solve a Rubik's cube and cooking sub-par eggs. I also enjoy trying to improve my productivity by continuously tweaking my tmux and Vim settings. If you have any useful keybindings, let me know!

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
In Norway I hiked the Besseggen ridge and ended up seeing some amazing scenery. Nyhavn in Denmark is another amazing area. Try to visit Scandanavia if you can!

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
  • CS classes.
  • Sleep will probably consume a good 1/3 of it.

ljoswiak
AC/BC
Josie Lee
Staff Mini-Bio: TA
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in Frederick, Maryland until coming here for college!/br>
I knew I wanted to do something in the tech field since my senior year of high school. Aftering being at UW for a few years and studying computer science I'm hoping to combine my passion for CS with that of working with others by going into PMing or pursing a PhD.

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
Python, C, C++, Java (and a little bit of iOS but we don't have to talk about that)

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?

  • Making people laugh :)
  • Drawing / painting
  • Eating

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
Too many times to count

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
  • Research!
  • Peer Advising
  • Working on my fitness

jlee98
AB/BB
Wei Lin
Staff Mini-Bio: Wei Lin
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in China and went to high school in Portland. I am a 5th year master student.

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
Just some. Enough to pass through classes and get a job;). Java used to be my fav language until I realzied how easy python is.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
I love baking and cooking. Also my jokes are hilarious.

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I survived the undergrad cse here.

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
TAing this class and going to classes. Will also try to play basetball more often since i need more exercises.
veilam
AE
Daniel Snitkovskiy
Staff Mini-Bio: TA
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I was born in San Francisco, CA, but moved to Renton, WA when I was 8

I was exposed to programming my final year of High School through AP Computer Science, but didn't think it was all that interesting until I took CSE 143, at which point I began to develop my passion for it.

I'm interested in Data Science/Management and Systems.

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
My language of choice is Python, but obvious-C, I have a soft-spot for C/C++ :)

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?

  • Playing the piano + violin
  • MOOCs!
  • Is Netflix a hobby?

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I went to Petra's place (very top of Smith Tower)

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
  • Research w/ the iSchool DataLab
  • Friends/Family
  • 2 CS Classes

snitkdan
AC/BC
Luis Vega
Staff Mini-Bio: Luis Vega
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up and did my undergrad in Venezuela. Then, I went to Germany for a Master's degree. Later, I came to sunny San Diego (UCSD) and spent some time as a researcher there. Currently, I'm a second year PhD student here at UW, advised by Luis Ceze.

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
I enjoy programming and building weird hardware, which means that I am not only writing code most of the time for these machines but also building them using hardware languages. Recently, I got interested on highly-productive languages for describing hardware like Chisel.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?
I enjoy spending time with my family, reading, and cooking.

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
No, not really.

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
I'll be doing some research and helping with this course.
vegaluis
AE
Kory Watson
Staff Mini-Bio: Kory Watson
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in Des Moines, WA (a mile or two south of SeaTac airport.)

Middle school was around the time I began to program in Python; I found a passion for computing in general while working on Minecraft server code (of all things!).

I'm really interested in Machine Learning, so I joined a UW CS lab last year focused on that, did some ML work at Apple last summer.

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?

  • Soccer (pickup games are fun!)
  • Listening to and writing music
  • Eating (not seafood though thanks)
  • Hiking
  • Cooking tasty stuff
  • Board games are lit

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I was born with arthritis and was cured of it. I also almost went blind in one eye. Yep, almost. I'm lucky I guess ¯\_(ツ)_/¯

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?

  • 2 CS Classes
  • Attempting to adult in my first apartment

korywat
AA/BA
Ivy Yu
Staff Mini-Bio: Ivy Yu
WHERE DID YOU GROW UP? WHAT WAS YOUR ACADEMIC PATH?
I grew up in Shanghai/Boston and chose to come to Seattle because I had only visited in the summer and thought it was the prettiest city I'd been to.

I always thought I would pursue the humanities, and I never thought I would be interested in anything CS-related until I wrote my first line of code in CSE 142. After taking Psych 101, I also discovered how fascinating the study of humans and the brain was. CS and psychology are just different enough to keep me sane :)

HOW MUCH PROGRAMMING HAVE YOU DONE (AND WHAT LANGUAGES)?
I'm a fan of Java! Learning C/C++ took time and effort but was also ultimately worth it :)

WHAT ARE SOME OF YOUR HOBBIES, TALENTS, AND SKILLS?

  • Mexican food (go to Anna's Taqueria if you visit Boston!)
  • Reading
  • I can tie my shoelaces very fast
  • Netflix
  • Sleeping
  • Watching cat/dog videos

HAVE YOU DONE OR EXPERIENCED ANYTHING REMARKABLE OR MEMORABLE?
I have visited every Disney park in the world (except Paris, but I'm working on it)

WHAT COMMITMENTS WILL BE CONSUMING YOUR CYCLES THIS QUARTER?
  • Watching Tasty videos as I dabble in the art of meal prepping
  • CS, psychology, and English classes
  • Research with the Stereotypes, Identity, and Belonging Lab
  • (Hopefully) sleeping

yuey26
AB/BB

Schedule

  • Binary
  • Memory & Data
  • Integers
  • Floating Point
  • x86 Programming
  • The Stack & Procedures
  • Executables
  • Arrays
  • Structs
  • Buffer Overflows
  • Caches
  • Processes
  • Virtual Memory
  • Memory Allocation
  • Java and C
 
#
Day
Topic
Labs
Homework
Introduction, Binary
CSPP: § 1.0-1.10, 2.0-2.1.1 (p. 1-28, 31-39)
Floating Point
CSPP: § 2.4-2.5 (p. 108-128)
x86-64 Programming I
CSPP: § 3.5 (p. 191-199)
x86-64 Programming II
CSPP: § 3.6.0-3.6.6 (p. 200-220)
x86-64 Programming III & The Stack
CSPP: § 3.6.7-3.6.8 (p. 220-238)
The Stack & Procedures
CSPP: § 3.7.0-3.7.3 (p. 238-248)
Procedures II
CSPP: § 3.7.4-3.7.6, 3.2 (p. 248-255, 169-177)
Buffer Overflow, Memory & Caches Intro
CSPP: § 3.10, 3.12 (p. 276-293, 309-311)
TAKEHOME MIDTERM EXAM
Array and Structs, Buffer Overflow
Memory & Caches I
CSPP: § 6.0-6.3 (p. 579-614) (skim 6.1)
System Control Flow & Processes
CSPP: § 8.0-8.4 (p. 732-756)
Virtual Memory I
CSPP: § 9.0-9.3 (p. 802-810)
Virtual Memory II
CSPP: § 9.4-9.6 (p. 811-825)
Virtual Memory III
CSPP: § 9.7-9.8 (p. 825-833) (skim 9.8)
Memory Allocation I
CSPP: § 9.9-9.9.11 (p. 839-853)
Memory Allocation II
CSPP: § 9.9.12-9.10 (p. 854-870)
Parallelism & Course Wrap-up