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.44%
- 4 stars5.45%
- 3 stars0.17%
- 2 stars0.11%
- 1 star0.81%
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.
Excellent course and teacher. I love that all of it was 100% accessible for free, and that it was both fun and challenging, yet very doable for most people who do their work and had prior experience.
Best ever classic courses! Never learnt so much from any programming courses! Expect to see materials can be published as book even textbook! Looking forward further courses from Dan!
Excellent course! I learned the basic concepts of functional programming which I feel will be useful throughout my entire career, event when not writing functional code.
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.