Chevron Left
Вернуться к Programming Languages, Part A

Отзывы учащихся о курсе Programming Languages, Part A от партнера Вашингтонский университет

Оценки: 1,240
Рецензии: 352

О курсе

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 03, 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 22, 2017

Great course!\n\nI think this course has just the right balance of theoretical background, formal definitions, and actual examples to make "just right".\n\nThanks Dan, and everybody else involved!

Фильтр по:

1–25 из 348 отзывов о курсе Programming Languages, Part A

автор: Allison C

Mar 03, 2018

I loved learning the concepts used in the ML language: case statements, tail recursion, signatures, pattern matching. The professor explained things really well. Being provided with the pdf summaries of the sections and the code used in the lectures was much appreciated. Doing the peer reviews was hard, having to parse through other people's code, but doing this made me understand the material much better. Getting peer reviews was also great because I never would have noticed the style mistakes I made. I'm on to Part B!

автор: Mike S

Aug 12, 2016

A brilliant first part to this 3 part programming language course.

Part A focuses on teaching Functional Programming concepts using ML, a programming language that is becoming more relevant today with the popularity increase in the Haskell and F# languages, both based on ML.

Dan is excellent on the videos, explaining the core concepts extremely well, while also doing a great job with the live coding (a really hard thing to do, even for a software engineer with 10 years of experience).

Everyone on the discussion forums, the TA's, the Admins and Dan, are really great, and compliment the video lectures well.

Overall really happy with the course and can't wait to get started on Parts B and C.

автор: Yiang Z

Dec 03, 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.

автор: Vaidas A

Mar 05, 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

автор: Igor P S

Oct 07, 2019

This course is fun. I recommend it. I had a great time learning about many topics I was somewhat familiar but never had the chance to study them deeply. I was introduced to a new programming language, which l learned to respect and enjoy. After finishing the course I feel confident about what functional programming is and also about many other aspects programming languages have. I definitely will take part B and C of the course. Thanks a lot for providing this course!

I would like to politely and respectfully suggest as an improvement for the next version of this course the usage of examples more connected to the real world instead of those purely didactical. It is not a big deal, the examples used in the course work fine to grasp the announced idea, but the knowledge would consolidate more firmly this other way.

автор: Maria K

Jun 17, 2017

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.

автор: Akos L

Mar 22, 2017

Great course!

I think this course has just the right balance of theoretical background, formal definitions, and actual examples to make "just right".

Thanks Dan, and everybody else involved!

автор: 张弛

Apr 30, 2019

can learn fast

автор: Ali K

Dec 29, 2019

The course teaches you some fundamental concepts of programming languages using a functional programming language called SML. Overall it's a challenging course from a reputable American university and the quality is really good.

Some pros:

Good lecturer, good materials, good programming examples, good assignments that complement the material.

Some cons:

The forums are completely dead. I don't think there's any more support since the course is about 5-6 years old and it feels like it's been abandoned by the community TAs and the lecturer. So you're completely on your own if you get stuck. I think it needs a bit of a face-lift.

I think it's a good course for someone who wants to learn from scratch rather than diving into a programming language. So get ready to dig deep into recursion, functions as arguments, data type bindings, polymorphic data types!..

автор: Lincoln K

Nov 18, 2017

Committed Tutor, interesting and impact full content, good community and well, finishing needed that extra nudge.... Well worth it :)

автор: Yijie Q

Aug 06, 2017

This course (and its subsequent parts) has long been on my MOOC bucket list. However, I have dropped out of previous sessions quite a few times when things got hectic with work and general life chaos.

I had excused myself with (false) statements such as "this course is too theoretical to be immediately useful" and "what's the point of spending time scratching the surface of a not-so-popular language". Looking back, I couldn't believe how wrong i was at the time, and couldn't be more glad that I finally started to pull through this series.

Sure this series is more theoretical and has little of the "cool" projects, but even this first course of the series has already shed new lights on my perspectives on programming languages, familiar or new. I used to see programming languages each in a class of their own (or only with similarities on the syntax-level), but this course has so far taught me, that there are governing principles true to all programming languages, and general rules that apply to types/families of languages.

Granted that I was writing ML the whole time for this course, but throughout the assignments and lectures, I couldn't help (though really not supposed to) but kept on seeing connections to languages that I'm familiar with (Options -> Java Optional, Signature -> header files, map/filter/reduce across the board). 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. Thank you very much Dan, for sharing this course and your passion for programming languages with people around the world! I can't wait to find out what part B and C have to offer!

автор: Jack

Apr 23, 2020

Part A is a great course overall. There are minor things like I disliked like a few of the problems being worded unclearly and some lectures topics that weren't explained in the best manner. But for the majority of the course content the delivery was excellent.

The course teaches programming languages in the functional paradigm using SML. The material is at a level you'd find in third year at a top-tier university computer science program, so in that way it is a bargain, but it also means you will need to invest serious time in order to complete it. You will likely need the full month and 8-16 weekly hours as advertised, this isn't one of those MOOCs where you finish a week's module in a day (especially if you've never done functional programming before).

In terms of difficult, I'd rate it at about the level of the common algorithms MOOCS (maybe a bit lower?). It's doable, but it takes time, so don't be intimidated. Before commencing I highly recommend you can program in one of Java/C#/C++/C (JS/Python alone are not enough imo) and understand basics of data structures up to using recursion on binary trees (no need for graphs and beyond). You'll also need some basic command line knowledge like compiling from a terminal or running VIM from it. If you have that down, I highly recommend enrolling. Such a course is a required core course in most top comp sci programs and there is a reason for that.

автор: Srikanth C

Feb 09, 2020

I'm very pleased with this gem of a course! I'd been meaning to learn formally about Functional Programming for a while now, and began this course as it sounded relevant to my interests. Although the focus of the course was not exclusively Functional Programming, it was a brilliant refresher of the various programming concepts I'd studied as an undergraduate student and more advanced concepts that build upon those basics, a good part of which overlaps with what one comes across in Functional Programming. The assignments were challenging, and demanded close attention and . Dan's lecture notes in this course are gold, and I benefited each time I read them.

Having finished this course, I'll take a few weeks to redo some of the assignments and the challenge problems that I could not attend during the course and take a shot at some of the community material as well. I'm glad that there is still so much of optional content for me to now dive deep into despite having completed the course. Plus, I code in Python most of the time these days and I'm very eager to learn about how the things I've learned during this course translate to that language.

I will definitely do the next two courses from Dan, who is an excellent lecturer! Looking forward to those too.

автор: Huong M L

Feb 15, 2020

In case you're wondering why professor Dan Grossman decides to teach SML and Racket instead of more fashionable functional languages like Haskell, rest assure that right after taking part A, I was able to learn Haskell very quickly, as SML & Haskell have quite a large common subset (and in fact, SML syntax is actually more beginner-friendly than Haskell!) I believe I would have been able to learn Haskell even faster had I taken part B first (which includes thunk and stream, idioms that are essential to Haskell). Of course, there's no mention of monads (which is quite , but hey, baby steps!

PS: In case you are still searching for the n-th tutorial on Javascript ES6 features (scoping, closure, currying, destructuring, iterator, promises, async/await, etc.), then give these courses a try! Dan would make everything finally click, and you'll come out forever changed!

автор: nikofeyn

Aug 11, 2018

Take this course. Many modern languages are still slowly stealing features from Standard ML, even decades later. Dan Grossman is passionate about this material. This course is arranged in such a way that it slowly builds you up in skill and knowledge, and the pacing is quite good. The homework assignments are very useful in reiterating the material, and the peer-grading really works if you commit and put work into it.

Learning functional programming is a great way to expand your skills as a software developer and programmer. The thinking required is much more principled than in something like Python, and so you begin to understand how this approach could be useful in the real world.

автор: Michael W

Jul 03, 2018

Thank you so much Professor Grossman! This course made me believe in the value of MOOCs. Even though I'm a Computer Science student at a University already, the rigor in this course surprised me, and comparing it with the course webpage on UWashington's offering (also by Professor Grossman) makes me think this MOOC was not watered down from the CS major, real-life version, as promised. Huge points go to Professor Grossman again for putting this course together, and all the course contributors as well. I would gladly take any other UWashington CS major courses in MOOC form on Coursera that are of a similar depth and challenge (or greater).

автор: Guo F

Sep 30, 2019

Thanks a lot, Dan! Prior to this course, I've been using Python for some casual projects for a few years, but some concepts like first-class functions and lambda expressions, etc, always seem daunting to me and I never got the hang of that. With the help of this course, my understanding of a lot of concepts in Python really improved a lot. In addition, I find learning Javascript becomes much easier after understanding SML. To sum up, I really learned a lot from this lesson, I like your teaching style (especially Live Coding :)) and I surely would sign up for the rest of the course.

автор: Aren T

Feb 19, 2020

A fascinating and brilliantly put together course, but highly demanding.

A little more guidance on some of the challenging homework would have been welcomed, but in terms of the lecture quality, course structure, and materials provided, this is a superb introduction to Functional Programming and a great theoretical guide to programming meta-concepts in general.

Recommended both for prospective future developers and experienced seasoned developers, especially if your background thus far is primarily in imperative/OO languages like Python, Java, and C/C++ etc. You will learn a lot!

автор: Youlian S

Nov 13, 2016

I can't say enough good things about this sequence of courses. I've been a professional software developer for 5 years, and was looking to shore up some of the electives that I didn't get to take in college. I am very glad that I chose this course to flesh out my knowledge of programming languages. I learned a lot of design patterns and principles that I can now apply to my day-to-day coding, and my ability to quickly learn and parse foreign programming languages has shot through the roof.

Thanks, Dan and your team, for all of your hard work in putting this course together!

автор: Saatchi B

Oct 07, 2016

Really great course! Professor Grossman's lectures are engaging and you can tell he's really excited about the material. I had no experience with functional programming or ML prior to this course, and it was very manageable after the first week and a half or so. The only downside was that I felt the discussion boards weren't really active, or mainly used by people who had a much stronger grasp of the material already. So i ended up struggling through certain parts-- but I can definitely say that helped me master the material! Thanks for a great session :)

автор: Eric T

Jan 26, 2019

I just finished Programming Languages Part A, and I can confidently say that it has been one of the most challenging and rewarding classes that I've taken in the MOOC format. Functional Programming is new to me, but this class gives a great overview of the language paradigm. The assignments are difficult and rewarding. I encourage you to take this class if you've taken an introductory computer science class using a language such as Python, Java, or C++. It is definitely worth the time investment and it will turn you into a more competent programmer.

автор: 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.

автор: 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!

автор: 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.

автор: 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.