About this Course

120,018 recent views

Learner Career Outcomes

29%

started a new career after completing these courses

16%

got a tangible career benefit from this course
Shareable Certificate
Earn a Certificate upon completion
100% online
Start instantly and learn at your own schedule.
Flexible deadlines
Reset deadlines in accordance to your schedule.
Intermediate Level
Approx. 30 hours to complete
English

Skills you will gain

RecursionHigher-Order FunctionPattern MatchingFunctional Programming

Learner Career Outcomes

29%

started a new career after completing these courses

16%

got a tangible career benefit from this course
Shareable Certificate
Earn a Certificate upon completion
100% online
Start instantly and learn at your own schedule.
Flexible deadlines
Reset deadlines in accordance to your schedule.
Intermediate Level
Approx. 30 hours to complete
English

Offered by

Placeholder

University of Washington

Syllabus - What you will learn from this course

Content RatingThumbs Up97%(9,867 ratings)Info
Week
1

Week 1

2 hours to complete

Introduction and Course-Wide Information (Start Here)

2 hours to complete
7 videos (Total 56 min), 5 readings
7 videos
Optional: Who I Am / Acknowledgments6m
What the Course is About / Initial Motivation8m
Recommended Background9m
Why Part A, Part B, Part C5m
Grading Policy9m
Optional: Very High-Level Outline7m
5 readings
Start here!5m
About the Course10m
Some More Perspective on Recommended Background7m
Why are there 3 courses (Part A, Part B, Part C)?5m
Grading Policy Details10m
2 hours to complete

Software Installation and Homework 0

2 hours to complete
4 videos (Total 9 min), 3 readings, 2 quizzes
4 videos
Emacs installation2m
SML installation1m
SML Mode installation3m
3 readings
Part A Software Installation and Use: SML and Emacs1h
Why Emacs? (Optional)5m
Homework 0 Detailed Peer-Assessment Instructions
Week
2

Week 2

6 hours to complete

Section 1 and Homework 1

6 hours to complete
17 videos (Total 150 min), 6 readings, 2 quizzes
17 videos
Rules for Expressions9m
The REPL and Errors12m
Shadowing6m
Functions Informally7m
Functions Formally8m
Pairs and Other Tuples9m
Introducing Lists10m
List Functions11m
Let Expressions7m
Nested Functions7m
Let and Efficiency10m
Options9m
Booleans and Comparison Operations7m
Benefits of No Mutation7m
Optional: Java Mutation4m
Pieces of a Language6m
6 readings
Section 1 Welcome Message7m
Section 1 Reading Notes
Code Files for All Section 1 Videos
Homework 1 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Homework 15m
Extra Practice Problems
Week
3

Week 3

7 hours to complete

Section 2 and Homework 2

7 hours to complete
22 videos (Total 178 min), 6 readings, 2 quizzes
22 videos
Records8m
Tuples as Syntactic Sugar6m
Datatype Bindings8m
Case Expressions10m
Useful Datatypes11m
Pattern Matching So Far4m
Another Expression Example8m
Type Synonyms6m
Lists and Options are Datatypes9m
Polymorphic Datatypes8m
Each of Pattern Matching / Truth About Functions14m
A Little Type Inference6m
Polymorphic and Equality Types8m
Nested Patterns10m
More Nested Patterns10m
Nested Patterns Precisely6m
Optional: Function Patterns3m
Exceptions7m
Tail Recursion9m
Accumulators for Tail Recursion7m
Perspective on Tail Recursion5m
6 readings
Section 2 Welcome Message5m
Section 2 Reading Notes
Code Files for All Section 2 Videos
Homework 2 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Homework 27m
Extra Practice Problems
Week
4

Week 4

8 hours to complete

Section 3 and Homework 3 -- and Course Motivation

8 hours to complete
28 videos (Total 247 min), 6 readings, 2 quizzes
28 videos
Functions as Arguments8m
Polymorphic Types and Functions as Arguments7m
Anonymous Functions9m
Unnecessary Function Wrapping5m
Map and Filter8m
Generalizing Prior Topics9m
Lexical Scope7m
Lexical Scope and Higher-Order Functions7m
Why Lexical Scope11m
Closures and Recomputation6m
Fold and More Closures11m
Closure Idiom: Combining Functions9m
Closure Idiom: Currying10m
Partial Application9m
Currying Wrapup6m
Mutable References8m
Closure Idiom: Callbacks8m
Standard-Library Documentation7m
Optional: Abstract Data Types With Closures11m
Optional: Closure Idioms Without Closures4m
Optional: Java Without Closures12m
Optional: C Without Closures10m
Course-Motivation Introduction5m
Why Study General PL Concepts?10m
Are All PLs the Same?6m
Why Functional Languages?11m
Why ML, Racket, and Ruby?12m
6 readings
Section 3 Welcome Message5m
Section 3 Reading Notes
Code Files for All Section 3 Videos
Homework 3 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Section 310m
Extra Practice Problems

Reviews

TOP REVIEWS FROM PROGRAMMING LANGUAGES, PART A

View all reviews

Frequently Asked Questions

More questions? Visit the Learner Help Center.