Set Reminder Save for later

Programming Languages, Part A

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. This course is neither particularly theoretical nor just about programming specifics -- it will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs. By using different languages, you will learn to think more deeply than in terms of the particular syntax of one language. The emphasis on functional programming is essential for learning how to write robust, reusable, composable, and elegant programs. Indeed, many of the most important ideas in modern languages have their roots in functional programming. Get ready to learn a fresh and beautiful way to look at software and how to have fun building it. The course assumes some prior experience with programming, as described in more detail in the first module. The course is divided into three Coursera courses: Part A, Part B, and Part C. As explained in more detail in the first module of Part A, the overall course is a substantial amount of challenging material, so the three-part format provides two intermediate milestones and opportunities for a pause before continuing. The three parts are designed to be completed in order and set up to motivate you to continue through to the end of Part C. The three parts are not quite equal in length: Part A is almost as substantial as Part B and Part C combined. Week 1 of Part A has a more detailed list of topics for all three parts of the course, but it is expected that most course participants will not (yet!) know what all these topics mean.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera.

Get a Reminder

Not ready to enroll yet? We'll send you an email reminder for this course

Send to:



University of Washington

Rating 4.9 based on 243 ratings
Length 6 weeks
Effort 8-16 hours/week
Starts Mar 18 (6 weeks ago)
Cost $39
From University of Washington via Coursera
Instructor Dan Grossman
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development Mobile And Web Development

Get a Reminder

Get an email reminder about this course

Send to:

What people are saying

We analyzed reviews for this course to surface learners' thoughts about it

functional programming in 44 reviews

It gives both usage and formalisation of basic concepts of statically typed functional programming.

One would be very clear on functional programming style and concepts after completing this course.

Would be helpful for everyone working with functional programming.

If you are interested in functional programming or in programming languages in general, this should be one of the must take MOOCs I loved learning the concepts used in the ML language: case statements, tail recursion, signatures, pattern matching.

The magic of functional programming, unlike the "classes" in OOP, is its conciseness, straight-forwardness, and elements of math underlied in every recursion, function and number.

It enlightened me more on many functional programming idioms and concepts than any other book / course.

A challenging but awesome course that teaches a lot about functional programming.

:) This is absolutely a challenge course for those people who are not familiar with functional programming.

dan grossman in 10 reviews

Dan Grossman is one THE best teachers in the world hands down!

Very well paces and Dan Grossman is an amazing teacher!

The instructor, Dr. Dan Grossman became one of my favorite teachers of my life.

Dan Grossman is a lovely person, and a good lecturer.

And while the lectures start out a bit repetitive, Dan Grossman justifies it by revisiting themes in the later weeks.

Dan Grossman did a great job with this course.

Dan Grossman has to be one of the most enthusiastic and clear computing science professors.

Brilliant course, thank you Dan Grossman et al!

introduction to functional in 9 reviews

such a clear introduction to Functional Programing.

Amazing Awesome introduction to functional programming.

I have learned many knowledge about functional programming Great course... helps with building fundamentals of FP Great course with deep information on functional programming A very good introduction to functional programming.

A good introduction to functional programming concepts.

The course gives an interesting overview of Standard ML and introduction to functional programming.

It's a very thorough introduction to functional programming and language design.

An interesting introduction to functional programming.

Looking forward to part B and C. Fantastic course providing not only a great introduction to Functional Programming fundamentals, but also leading on to how languages relate to one another.

highly recommend in 8 reviews

Highly recommended for everyone interested in programming.

I would highly recommend it if you are serious about a career in software engineering.

Highly recommend for anyone who hasn't made any study of programming languages before, whether you are a student or professional.

Would highly recommend!

highly recommend to anyone who'd like a deeper understanding of programming.

Highly recommended.

recommend this course in 7 reviews

i can highly recommend this course to anyone who wants to become more agile, literate and confident programming in whatever language you are using.

It was quite some exciting moments of (re)discovery, finding out about ideas that translate from one language to another.I highly recommend this course to anyone who aspire to become better programmers.

I absolutely recommend this course to everyone who wishes to be a good programmer.

I'd recommend this course to everyone involved in programming.

I already see the application of the material in my daily work (Scala) so it's proven very useful.I would recommend this course to any programmer, whether is novice or expert, and particularly to those wanting to learn (or start to learn) functional programming.

I cannot recommend this course more highly!PS: The course uses SML, a functional language.

I can't recommend this course highly enough!

ever taken in 7 reviews

This was the hardest course I've ever taken in my entire Life!

Easily one of the best courses I have ever taken.

One of the best, and most challenging, courses on Coursera Probably the best course I have ever taken about programming languages.

Best programming course I have ever taken in person or online.

Maybe the best course I've ever taken in my whole life.

One of the best course I have ever taken.

This is one of the best courses that I have ever taken before!


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Programming Coordinator 1 $54k

Programming Acquisitions $61k

CNC Programming $70k

Programming advisor $72k

Network Programming $78k

NC Programming $79k

functional testing $87k

DBA - Programming $103k

Gameplay Programming $120k

IT and Programming Specialist $122k

Programming Producer $129k

Functional Controller $146k

Write a review

Your opinion matters. Tell us what you think.



University of Washington

Rating 4.9 based on 243 ratings
Length 6 weeks
Effort 8-16 hours/week
Starts Mar 18 (6 weeks ago)
Cost $39
From University of Washington via Coursera
Instructor Dan Grossman
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development Mobile And Web Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now