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.
Programming Languages, Part A
Instructor: Dan Grossman
Top Instructor
Sponsored by ITC-Infotech
199,725 already enrolled
(1,880 reviews)
Skills you'll gain
Details to know
Add to your LinkedIn profile
2 assignments
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 6 modules in this course
Welcome! Start here! Learn about this course and how it's organized.
What's included
7 videos5 readings1 discussion prompt
This module contains two things: (1) The information for the [unusual] software you need to install for Programming Languages Part A. (2) An optional "fake" homework that you can turn in for auto-grading and peer assessment to get used to the mechanics of assignment turn-in that we will use throughout the course. You can do this module either before or after watching the first few "actual course content" videos in the next module, but you will want to get the software installed soon so you can learn by actively trying out variations on the code in the videos. You will need to install the software to do the homework.
What's included
4 videos3 readings1 programming assignment1 peer review
It's time to dive in! Start with a careful reading of the "Section 1 Welcome Message" and go from there.
What's included
17 videos6 readings1 programming assignment1 peer review
This section is a particularly rewarding one where a lot of ideas come together to reveal a surprisingly elegant underlying structure in ML. As usual, start with the welcome reading, dive into the material, and leave plenty of time to approach the programming assignment methodically.
What's included
22 videos6 readings1 programming assignment1 peer review
This section is all about higher-order functions -- the feature that gives functional programming much of its expressiveness and elegance -- and its name! As usual, the first reading below introduces you to the section, but it will make more sense once you dive in to the lectures. Also be sure not to miss the material on course motivation that we have put in a "lesson" between the other videos for this week and the homework assignment. The material is "optional" in the sense that it is not needed for the homeworks or next week's exam, but it is still very highly encouraged to better understand why the course (including Parts B and C) covers what it does and, hopefully, will change the way you look at software forever.
What's included
28 videos6 readings1 programming assignment1 peer review
We finish Part A of the course with this module. As explained in more detail in the welcome message, we discuss type inference, ML's module system, and the fundamental idea in computing of two computations being equivalent. There is no programming assignment -- instead there is an exam covering all of Part A. Finally, there is a brief wrap-up video for the end of Part A that also looks ahead to Part B and Part C -- we have put it after the exam, so don't overlook it.
What's included
19 videos5 readings2 assignments
Instructor
Offered by
Why people choose Coursera for their career
Learner reviews
1,880 reviews
- 5 stars
93.14%
- 4 stars
5.46%
- 3 stars
0.15%
- 2 stars
0.31%
- 1 star
0.90%
Showing 3 of 1880
Reviewed on Jan 28, 2023
Great course! I learned the ML programming language and functional programming in general. I recommend it to everyone interested in programming. Assignments are interesting and fun.
Reviewed on Dec 28, 2019
Instructor's strive for perfection really shows. The quality of content is top-notch; both for the video explanations and the pdfs. Definitely going to check out the other two parts as well.
Reviewed on Jan 3, 2017
Instant favourite programming course. Great instructor and material, fun assignments, mind-bendy recursion, cool concepts you didn't know you wanted to know about. Learned a lot.
Recommended if you're interested in Computer Science
École Polytechnique Fédérale de Lausanne
Dartmouth College
University of California, Santa Cruz
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy