This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones.
Offered By


Programming Languages, Part A
University of WashingtonAbout this Course
Could your company benefit from training employees on in-demand skills?
Try Coursera for BusinessSkills you will gain
- Recursion
- Higher-Order Function
- Pattern Matching
- Functional Programming
Could your company benefit from training employees on in-demand skills?
Try Coursera for BusinessOffered by
Syllabus - What you will learn from this course
Introduction and Course-Wide Information (Start Here)
Software Installation and Homework 0
Section 1 and Homework 1
Section 2 and Homework 2
Section 3 and Homework 3 -- and Course Motivation
Reviews
- 5 stars93.43%
- 4 stars5.45%
- 3 stars0.17%
- 2 stars0.11%
- 1 star0.82%
TOP REVIEWS FROM PROGRAMMING LANGUAGES, PART A
Good fundaments for learning new programming languages. Well prepared and challenging homeworks. I learned a lot of functional programming concepts fom this course and I am sure I will use them.
Awesome introduction to functional programming. A wonderful supplement to my working language Scala. Would be helpful for everyone working with functional programming.
Exceptionally well thought-through content taught by a highly motivating teacher. Without doubt one of the best courses I have taken on Coursera so far. Demanding and very rewarding!
I took this course about 10 years off the college, and it was excellent refresher on the topics I don't use on a daily basis. Absolutely great lecturer, great videos and study materials!
Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I purchase the Certificate?
Is financial aid available?
More questions? Visit the Learner Help Center.