Chevron Left
Back to Programming Languages, Part A

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

4.9
stars
1,879 ratings

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

JF

Mar 14, 2023

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.

YZ

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.

Filter by:

51 - 75 of 547 Reviews for Programming Languages, Part A

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 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 “www.zhihu.com”, 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 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 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.

By Manish K

Feb 10, 2017

This course has been more rewarding than any other I've taken. The topics - recursion, functional programming, pattern-matching, currying, abstract types, the list goes on and on - are extremely valuable. In addition, Professor Grossman is a precise and thorough instructor and it's clear that he is passionate about the material. I can't recommend this course highly enough!

By GONG L

Feb 11, 2017

It is an exhilarating experience to learn Programming Languages A. Although this course seems a little vapid and unexceptional at first, it becomes more and more fascinating from Week 2 to Week 4. It is true that the assignment is challenging. On the other hand, it is quite absorbing, and my understanding of programming reached a new level after finishing each homework.

By Hector A G

May 20, 2021

Professor Dan is the type of mentor we all wished we into more often during our studies. This course is challenging -- as it should be --, interesting, the topics covered are important and foundational for someone that wants to learn how to write software. This is an amazing, course. If you have the will to take this, go for it. It'll be worth it once you finish it.

By Chris S

May 20, 2019

This course introduces a new style of programming to what most programmers are familiar with, and has been incredibly eye-opening for me personally. The lectures are delivered in a clear and crisp manner, and the instructor definitely shows enthusiasm for the material. I would highly recommend this course to anyone wishing to broaden their programming skill set.

By Sergey Z

Feb 4, 2017

I've never thought about thunks, closures and so on. Looks like I've known only about syntax. Now I think more about semantics. The greatest thing is that I'm really started better understand programming languages. Thanks to Dan and all participants for this experience. I'm not sure I would be so involved without such a good explanation of the course materials.

By Johnathan F

Jan 14, 2018

Courses I've taken on programming languages often focus on one language. You learn the different concepts for that one language but don't understand why the language chose those concepts and what the alternatives are. By covering three languages, this course integrates the concepts and their alternatives to give you a solid understanding of how languages work.

By steve b

Feb 19, 2021

Very good, polished course. Clearly many picky students have improved it in the eight years since it was posted. It was my first exposure to pure functional programming. I had never programmed without loops or assignment statements before. I gained some insight into certain features of Java and python, even though those weren't really mentioned in the course.

By Joseph R

Jan 20, 2022

Very fun and engaging. What I really liked about the course was having pdfs for each week that summarized the theory. What I did was read the pdf for the week first, then watch the videos at 2 times speed, pausing for sections I didn't understand while reading the pdf and also doing the pop up questions. With this method the exam part becomes very easy.

By Hao S

Jan 19, 2022

Really well designed, challenging, and well delievered. I hesitated when I saw it's using a completely unknown language, and I was already glad that I didn't unenroll in just a couple of lessions. Language is just a tool, what matter are the concepts Dan's trying to teach. Btw, to my astonishment, SML is actually really elegant for the course materials.

By Ahmad N R

Jul 23, 2017

Even though I have been programming for a couple of years, this is the course that happens to be the most helpful for me when it comes to thinking about programming languages. The choice of ML as the primary language has helped me a lot at getting up to speed with Haskell. I look forward to taking Part B. Excellent content... and definitely recommended!

By Deleted A

Sep 8, 2020

Thx ossu for discover for me this course. Thank you Dan for creating such amazing course and Dan's dogs who supporting Dan while he creating this course This course was pretty challenging for me, but the given knowlenge worth it. I highly recommend pick this course to broadening your one's horizons about different programming idioms and concepts.

By Kyle K

Jun 24, 2020

Awesome course all around. Instructor is amazing and the content is really fun and interesting. The assignments are fun, challenging, and well done. It gave me a really fresh perspective on languages and programming in general. It was eye-opening to see a very different way at approaching problem solving by using SML and the ideas are really cool.

By Giuseppe S

Nov 1, 2019

It is a must

I followed other CS coursers but this stands for clarity on explanations of concepts that are an important part of a programming language that is based on the functional paradigm.

You will use recursion since the begin and finally understand it, assignments are engaging but not too difficult and are strictly related to lectures subjects