Search this site
Embedded Files
Skip to main content
Skip to navigation
CSE 341 Winter 2020
Home
Lecture
Homework
Resources
CSE 341 Winter 2020
Home
Lecture
Homework
Resources
More
Home
Lecture
Homework
Resources
Lecture
Unit 1 : ML Functions, Tuples, Lists, and More
Reading Notes
Videos
Mon, Jan 6 -
Lecture 1: Course Mechanics, ML Variable Bindings
Wed, Jan 8 -
Lecture 2: Functions, Pairs, Lists
Thu, Jan 9 -
Section 1: Emacs, SML Mode, Shadowing, Error Messages
Fri, Jan 10 -
Lecture 3: Local Bindings, Options, Benefits of No Mutation
Unit 2 : Datatypes, Pattern Matching, Tail Recursion
Reading Notes
Videos
Mon, Jan 13 -
Lecture 4: Records, Datatypes, Case Expressions
Wed, Jan 15 -
Lecture 5: More Datatypes and Pattern Matching
Thu, Jan 16 -
Section 2: Type synonyms, type generality, equality types, syntactic sugar
Fri, Jan 17 -
Lecture 6: Nested Pattern Matching, Exceptions, Tail Recursion
Unit 3 : First-Class Functions and Closures
Reading Notes
Videos
Mon, Jan 20 - MLK Day Observance (no class)
Wed, Jan 22 -
Lecture 7: First-Class Functions
Thu, Jan 23 -
Section 3: HW1, Tail Recursion, More Pattern-Matching
Fri, Jan 24 -
Lecture 8: Lexical Scope and Function Closures
Mon, Jan 27 -
Lecture 9: Function-Closure Idioms
Unit 4 : ML Modules, Type Inference, Equivalence, and More
Reading Notes
Videos
Wed, Jan 29 -
Lecture 10: ML Modules
Thu, Jan 30 -
Section 4: HW2, Anonymous functions, higher-order functions
Fri, Jan 31 -
Lecture 11: Type Inference
Mon, Feb 3 -
Lecture 12: Equivalence
Interlude and Midterm
Wed, Feb 5 - Course Interlude and ML Magic
Thu, Feb 6 -
Section 5: Midterm Review
Fri, Feb 7 - Midterm (in class)
Unit 5 : Racket, Delaying Evaluation, Memoization, Macros
Reading Notes
Videos
Mon, Feb 10 -
Lecture 13: Racket Introduction
Wed, Feb 12 -
Lecture 14: Thunks, Laziness, Streams, Memoization
Thu, Feb 13 -
Section 6: Racket intro, lists, thunks, streams
Fri, Feb 14 -
Lecture 15: Macros
Unit 6 : Structs, Implementing Languages, Static vs. Dynamic Typing
Reading Notes
Videos
Mon, Feb 17 - Presidents' Day Observance (no class)
Wed, Feb 19 -
Lecture 16: Datatype-Style Programming With Lists or Structs
Thu, Feb 20 -
Section 7: Macros, implementing an interpreter
Fri, Feb 21 -
Lecture 17: Implementing Languages Including Closures
Mon, Feb 24 -
Lecture 18: Static vs. Dynamic Typing
Unit 7: Ruby, Object-Oriented Programming, Subclassing
Reading Notes
Videos
Wed, Feb 26 -
Lecture 19: Introduction to Ruby and OOP
Thu, Feb 27 -
Section 8: Ruby classes, arrays, hashes, and blocks
Fri, Feb 28 -
Lecture 20: Arrays, Blocks, Procs, Inheritance, Overriding
Mon, Mar 2 -
Lecture 21: Dynamic Dispatch Precisely, Manually in Racket
Unit 8: Program Decomposition, Mixins, Subtyping, and More
Reading Notes
Videos
Wed, Mar 4 -
Lecture 22: OOP vs. Functional Decomposition, Adding Operators and Variants, Double-Dispatch
Thu, Mar 5 -
Section 9: Double Dispatch, the Visitor Pattern, and Mixins
Fri, Mar 6 -
Lecture 23: Multiple Inheritance, Mixins, Interfaces, Abstract Methods
Mon, Mar 9 -
Lecture 24: Subtyping
Wed, Mar 11 -
Lecture 25: Subtyping for OOP; Comparing/Combining Generics and Subtyping
Thur, Mar 12 - Section 10: Final Review
Fri, Mar 13 -
Victory Lap
Report abuse
Page details
Page updated
Report abuse