CSE 341: Programming Languages (Spring 2014)

Piazza Staff Lecture Section Homework Exams Links

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.

Staff: We're here for you.

Role Name Email 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

Lecture

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

In-class Exercises

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

Section

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

Homework

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!

Exams

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