Chevron Left
Back to Programming Languages, Part A

Learner Reviews & Feedback for Programming Languages, Part A by University of Washington

1,527 ratings
452 reviews

About the Course

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....

Top reviews

Dec 2, 2016

I'm just a beginner for CS or SE classes, and find this course really concise and challenging. It opens a door for me to get deeper into programming language. No wonder it got so high average score.

Mar 4, 2018

Very interesting course! Superb teaching and homework assignments. If you are interested in functional programming or in programming languages in general, this should be one of the must take MOOCs

Filter by:

26 - 50 of 450 Reviews for Programming Languages, Part A

By Adam

Jun 14, 2020

The course was quite time intensive (it took me about 54 hours), but it was absolutely worth it!

I am quite experienced in object-oriented programming with Java, but I had no clue about functional programming. This has changed! I have learned some foundational concepts and idioms that will help me in other languages as well. For example, in newer Java versions there are many features that allow functional-style programming. Now I have a good foundation to pick them up quickly and use them properly.

I'm looking forward to part B!

By Mehmet M G

Aug 4, 2021

Dan Grossman is a wonderful instructor. He conveys the ideas in the course fluently. I wish he give more courses about other topics in computer science

By Кассиров И

Jan 14, 2021

Я очень хотел пройти данный курс, но из-за того, что в последний раз информация по пользованию программами обновлялась в 2016 году, как тут сказано, не смог выполнить даже создание файла.

И сейчас не могу найти как отписаться от этого курса.

By Gleb L

Jul 25, 2018

All three parts are amazing. Dan is a great computer scientists and a teacher. He have very clear way of explaining ideas. Material covered in courses is highly relevant. Concepts covered in functional parts can be seen in many "fresh" languages (Scala, Swift, Nim). Deeper grasp of OOP and its relation to functional programming helps understand core differences and similarities.

I cant recommend this three part course enough for anyone who don't just want to know one programming language, but to be a better computer engineer.

By Nikolas V

Feb 11, 2017

This is an essential lesson to start learning programming language concepts. Dan Grossman has created a great learning path. All the videos are of high quality explaining in detail concepts that each developer should be aware of. The material given was nicely organized with a lot of examples. I cannot recommend this course more highly!

PS: The course uses SML, a functional language. If it's your first time working with that paradigm do not hesitate. SML is quite simple and it will open a new world for you!

By Tom K

Jan 26, 2021

Phenomally empathetic, considerate, useful, and entertaining course. The model of how to explain things to people without either wasting any of their time or omitting any crucial context. Far better than the in-person first-year units of the Curtin University CS degree (Australia) I attended in 2019. I hope this is open-sourced and remains available to all future generations of people. It's an incredibly valuable resource for human society. Thanks to everyone involved for their labour spent on this.

By xinxiao

Sep 18, 2019

This course is really eye-opening! I find many answers to my questions during my exploration about functional programming language. The presentation is very clear, each piece of information over the course is well-connected with other parts. This course presents programming language as an intriguing subject/topic. A slightly more practical benefit is that this course makes one a better programmer, regardless of the choice of programming language. I definitely hope to see more courses like this.

By Philip H

May 23, 2018

a great experience! i was surprised how engaging the course was!

never having heard about the language used or intended to learn it, it is true what dan had said from the beginning: it does lend itself beautifully to learn fundamental concepts of programming and it certainly gave me a deeper understanding of programming languages in general.

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

By J.-F. R

Nov 11, 2019

Really excellent course which teaches the underlying concepts of functional PL. Prog. Grossman is passionate as well as expert in the topic, and the course is very well organized and inspiring. I recommend it highly, especially for experienced OOP programmers who want to know what the "big deal is about" FP. Also, the ML skills I acquired during the course will be transferable, as well as useful to read research papers and books using it, e.g. Okinawa's Functional Data Structures.

By Sean U

Mar 18, 2019

Great course! I learned some concepts of functional programming and language implementation, their advantages and caveats, I'm going check out part B. It's a quite easy course, considering what it is about (it's not an easy subject). But the resources are great and there's plenty of cool activities, this definitely made me a better programmer and I tried to make some things with haskell after I finishing this, and this course definitely made things easier.

By Brandon C I

Feb 5, 2020

Challenging course. It may be a good idea to have some prior practice with the ideas (especially lexical scope, higher-order functions, and recursion). However, the instructor's enthusiasm makes it worth it in any case. For me, it hit the spot, since it built up some things I had practiced from before, yet taught me some new things (especially being an introduction to static typing and type inference). I'm definitely looking forward to parts B and C!

By Zexiang L

Sep 9, 2020

Pretty nice course on an introduction to programming languages. The most useful part of this course for me is the programming idioms. It is really about the high-level ideas/ abstractions of programming languages. By learning those idioms, I find that many technical details from different languages I used in the past share the same idioms and it definitely helps me understand those languages from a high-level perspective and write better code.

By Christian K

Mar 4, 2019

Absolutely fantastic. This course is the best MOOC have ever experienced regarding the passion of the instructor, the well thought through structure and just the right level of challenge to keep you engaged without being frustrating. The experience taking the course has changed my perspective on programming languages that I already know and significantly increased my passion for the subject as well as my expectation of what MOOCS can achieve.

By 纯白棒球帽

Nov 8, 2018

When finding programming related courses on the Internet, I knew this lesson in “”, where someone give this course a high score evaluation. To satisfy my curiosity I tried a few lessons. However, to my surprise, it attracts me deeply. I told myself it was that courses which I have been looking for. I do believe it`s my great honor to participate and I will try my best to seize the opportunity and finish it perfectly.

By Neelakantan

Sep 5, 2020

Great course for getting into the fundamentals of programming languages. Bit of a steep curve between Sections 1 and 2, but nothing impossible as long as you go over the material well. My prior programming experience in Python meant I had to work a bit in the first homework to break out of that mould of thinking. But that was good as it did help me find more elegant solutions to even projects I was doing in Python.

By Rongge Y

Dec 29, 2017

The course gives an interesting overview of Standard ML and introduction to functional programming. The lecture is very well prepared and the lecturer is highly precise.

I'd say the course is suitable for someone with some prior experience in programming, as the lecture is given in a "reflective" way, i.e. where one can constantly compare/contrast with existing knowledge. It is probably not suitable for beginners.

By Douglas L

Jul 26, 2017

Dan Grossman did a great job with this course. Actually, I wish he would create an online course that goes into greater detail about the SML language. I would also like to see him create an online course in Haskell, and perhaps even Prolog. I really learned a lot and worked hard for my certificate, which I'm very proud of. Thank you Dan. I wish more professors followed your excellent teaching example.

By 顾津洋(Jim o W o a

Jun 29, 2018

非常有趣的课程,非常好的介绍了函数士编程,虽然语言不常用,但是其函数式编程思想内核,对编程能力提高大有裨益。It is a much interesting course. It give us a good, full and profound introduction to functional programming. Althought you might think that ML , the language used in the part A, is not as popular as java, python, and so on, but the core of part A- a thinking way of functional programming- absolutely benefits you a lot, and improve your coding ability.

By Mike A

Jan 7, 2021

There are no words to describe just how well put together and executed this course is.

Dan is an amazing teacher, and I wish that, 25 years ago, he could have taught my university Computer Science course.

He explains complicated ideas with such clarity, you will wonder why you ever thought they were complicated in the first place!

Take this course and you will surely be a better programmer as a result.

By Pedro d S Q

Jul 27, 2020

Great course, very well organized. I think the main objective of this course is to familiarize the student with many concepts from programming language research. It helped me understand some roots of modern programming languages and get a better grasp for why some abstractions work better than others. The code written in this style is VERY testable and very easy to use in a parallel environment.

By Dave S

Oct 18, 2020

This was an excellent opportunity to learn a relatively simple and relatively pure functional language. I was able to understand the concepts behind functional programming and put those concepts into practice with both simpler and more complicated programming challenges. This will make it much easier to new progress to other, more modern, functional languages such as elixir, elm, and F#.

By Gustavo D M

Feb 12, 2017

Great course, I really liked the ideas presented here and think the PL election is certainly the best to learn the material. 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.

By Güray O

Mar 21, 2020

Great instructor, nice content, precise definitions, challenging (in a good way) homeworks... Are these enough to take an online course without certificate and commit 15-20 hours on average per week? I think for most of the people the answer is YES.

Warning: This course is not for beginners but if you see yourself on at least close to intermediate level don't worry; you will do fine.

By Suchith J N

Sep 7, 2016

It is awesome. It really taught me to see things slightly differently, especially static vs dynamically typed programming languages. I also learned about theory behind them. It also helped me to clear some misconceptions. Implementing a mini programming language is the fun part. Go for it! I'm gonna study Structure and Interpretation of Computer Programs for more stuffs like this.

By Jonathan C

Aug 22, 2017

While the trend has been to spread out course content into specializations, these courses, the Programming Languages series, actually contain enough content to merit being a course. And while the lectures start out a bit repetitive, Dan Grossman justifies it by revisiting themes in the later weeks. It's a very thorough introduction to functional programming and language design.