This quarter we'll learn new programming languages, discuss design tradeoffs, and write fascinating programs. Lecture and sections are super important; don't miss out!
Meeting | Day | Time | Location | Leader |
---|---|---|---|---|
Lecture | MWF | 12:30 - 1:20 | THO 125 | Zach |
Section AA | Th | 12:30 - 1:20 | CLK 219 | Armando |
Section AB | Th | 1:30 - 2:20 | MGH 231 | Armando |
Section AC | Th | 2:30 - 3:20 | MGH 238 | Max |
Unfortunately, we only get to spend a few hours a week together in person. To help make up for that, we'll use Piazza to facilitate lively discussion and timely feedback.
When you have questions, ask them on Piazza. That way everyone can benefit from the answers AND you can get faster responses from your colleagues. You can even ask questions anonymously! Remember, everyone is working hard to make this the best course possible, so please always be polite and patient. Well-written posts get brownie points.
We'll submit homework using the 341 Dropbox, and you can check your grades using the 341 Gradebook. Please carefully read the Academic Integrity and Challenge Problem policies.
Role | Name | Office Hours | |
---|---|---|---|
Instructor | Zach Tatlock | ztatlock@cs | CSE 546, Tue 11:00 - 12:00 |
TA | Armando Diaz Tolentino | ajdt@cs | CSE 218, Tue 2:00 - 3:00 |
TA | Riley Klingler | rklingl@cs | CSE 002, Mon 2:30 - 3:30 |
TA | Max Sherman | mms343@cs | CSE 002, Wed 1:30 - 2:30 |
Date | Topic |
---|---|
June 6 | Last Lecture .. . slides . pdf . 4up . code1 . code2 . code1 . code2 . code1 . code2 |
June 4 | More Ruby, Subclassing .. . slides . pdf . 4up . code1 . code2 . code3 . code4 . code5 . code6 .. . video: Finish Unit |
June 2 | More Ruby, Block, Procs .. . slides . pdf . 4up . code1 . code1 .. . video: Up to Procs |
May 30 | Ruby OOP .. . slides . pdf . 4up . code1 . code2 . code3 . code4 . code5 . code6 .. . video: Up to Duck Typing |
May 28 | Ruby Ramp Up .. . slides . pdf . 4up . code1 . code2 . code3 .. . video: Up to Everything is an Object |
Unit 7 | Reading Notes Videos |
May 23 | Racket Wrap Up .. . slides . pdf . 4up . code1 . y . positivity .. . video: finish up unit |
May 21 | Datatype Style Programming with Lists or Structs .. . slides . pdf . 4up . code1 .. . video: up to Implementing Closures |
May 19 | Datatype Style Programming with Lists or Structs .. . slides . pdf . 4up . code1 .. . video: up to Advantages of Structs |
Unit 6 | Reading Notes Videos |
May 16 | Promises, More Macros .. . slides . pdf . 4up . code1 . code2 .. . video: finish up unit |
May 14 | More Streams, Macro Intro .. . slides . pdf . 4up . code1 .. . video: up to defining streams |
May 12 | Thunks and Control .. . slides . pdf . 4up . code1 . code2 .. . video: up to avoiding unnecessary computations |
May 09 | More Racket Intro .. . slides . pdf . 4up . code1 . code2 . code3 .. . video: up to mcons |
May 07 | 16: Welcome to Racket .. . slides . pdf . 4up . code1 . code2 . code3 .. . video: up to "Parentheses Matter!" |
Unit 5 | Reading Notes Videos |
May 04 | 15: Course Motivation, Midterm Debrief .. . slides . pdf . 4up |
Apr 30 | 14: SML Review + Arrays + Life .. . code1 . code2 |
Apr 25 | 12, 13: ML Modules .. . slides . pdf . 4up . code1 . code2 . code3 . code3 .. . videos: . unit intro . modules for namespaces . sig and hiding .. . videos: . example module . example sig . sig matching .. . videos: . equiv struct 1 . equiv struct 2 . diff mods, types |
Unit 4 | Reading Notes |
Apr 23 | 11: Unit 3 Recap .. . slides . pdf . 4up . code1 . code2 |
Apr 21 | 10: Closure Idioms .. . slides . pdf . 4up . code1 . code2 .. . videos: . partial . more curry . refs . callbacks . adt + closure |
Apr 18 | 9: More First Class Functions, Lexical Scope .. . slides . pdf . 4up . code1 . code2 .. . videos: . map + filter . generalizing . lex scope . lex scope + hof .. . videos: . why lex . closures/recomp |
Apr 16 | 8: First Class Functions .. . slides . pdf . 4up . code1 . code2 . code3 .. . videos: . hof intro . func as arg . type + func as arg . anon func . eta rule |
Unit 3 | Reading Notes |
Apr 14 | 7: More Exceptions, Tail Recursion .. . slides . pdf . 4up . code1 . code2 .. . videos: . exceptions . tail rec . tail rec acc . tail rec perspective |
Apr 11 | 6: Fancy Patterns, Exceptions .. . slides . pdf . 4up . code1 . code2 .. . videos: . pattern matching 3 . type inference . poly and eq types .. . videos: . nested pats 1 . nested pats 2 . nested pats 3 . func pats |
Apr 9 | 5: More Datatypes and Pattern Matching .. . slides . pdf . 4up . code1 . code2 .. . videos: . datatypes . pattern matching 2 . more expr . type synonyms |
Apr 7 | 4: Records, Datatypes, Case Expressions .. . slides . pdf . 4up . code . graphviz .. . videos: . pl pieces . compound types . records .. . videos: . tuple sugar . datatype bindings . case exprs |
Unit 2 | Reading Notes |
Apr 4 | 3: Local Bindings, Options, Purity .. . slides . pdf . 4up . code . efficiency .. . videos: . let . nested funcs . efficiency . options . bools . purity . mutation |
Apr 2 | 2: Functions, Pairs, Lists .. . slides . pdf . 4up . code .. . videos: . funcs 1 . funcs 2 . tuples . lists . list funcs |
Mar 31 | 1: Hello World!, Welcome to ML .. . slides . pdf . 4up . code .. . videos: . bindings . exprs |
Unit 1 | Reading Notes |
Date | Topic |
---|---|
May 14 | Streams |
May 09 | Racket Lists |
Apr 30 | Midterm Review |
Apr 28 | Modules, Refs, etc. |
Apr 21 | More Fold |
Apr 16 | Mult |
Apr 14 | Tail Recursion |
Apr 09 | Exp |
Apr 04 | Fact, Fib |
Date | Topic |
---|---|
Apr 10 | Docs, Fold, Trees .. . slides . pdf . 4up . code .. . videos: . docs . fold . combining . currying |
Apr 10 | Type Synonyms, Polymorphism, and More! .. . slides . pdf . 4up . code . MaxCode . ArmandoCode .. . videos: . type synonyms . familiar datatypes . polymorphic datatypes |
Apr 3 | Emacs, SML Mode, Shadowing, Error Messages .. . slides . pdf . 4up .. . code: . errors.sml . errors-fixed.sml . sort.sml . sums.sml . max .. . videos: . REPL . shadowing |
Please submit homework using the 341 Dropbox.
# | Due | Assignment |
---|---|---|
6 | Fri, June 6 at 11:00pm | TETRIS . hw6assignment.rb hw6graphics.rb hw6provided.rb hw6runner.rb |
5 | Wed, May 28 at 11:00pm | MUPL . hw05.rkt hw05-tests.rkt |
4 | Sat, May 17 at 11:00pm | Racket Goes Bananas! . hw04.rkt hw04-tests.rkt |
3 | Mon, Apr 28 at 11:00pm | Functions of a Higher Order . hw03.sml |
2 | Wed, Apr 16 at 11:00pm | Match Those Patterns! . hw02.sml . tests |
1 | Wed, Apr 9 at 11:00pm | Welcome to Standard ML! |
The Midterm will be held on Friday, May 2 in class. Study up on some past midterms!
Spring 2014 | midterm solved |
Spring 2013 | midterm solved |
Winter 2013 | midterm solved |
Fall 2011 | midterm solved |
Spring 2011 | midterm solved |
Spring 2008 | midterm solved |
Winter 2008 | midterm solved |
The Final is currently scheduled for Thursday, June 12 at 8:30am. Also study up on some of these too!
Spring 2013 | final solved |
Winter 2013 | final solved |
Fall 2011 | final solved |
Spring 2011 | final solved |
Spring 2008 | final solved |
Winter 2008 | final solved |
SML Mode Documentation (many nice keybindings!)
UW CSE 341: Spring 2013, Winter 2013