Chevron Left
返回到 Programming Languages, Part A

学生对 华盛顿大学 提供的 Programming Languages, Part A 的评价和反馈

1,707 个评分


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



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


51 - Programming Languages, Part A 的 75 个评论(共 494 个)

创建者 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.

创建者 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.

创建者 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.

创建者 顾津洋(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.

创建者 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.

创建者 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.

创建者 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#.

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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!

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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.

创建者 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!

创建者 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.

创建者 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.

创建者 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

创建者 Sida L

Feb 7, 2018

Impressive course that will definitely open a new door for anyone, yes, anyone, who is obssessed with OOP like C# or Java like me. 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. I love this course soooo much!