このコースについて
77,170 最近の表示

100%オンライン

自分のスケジュールですぐに学習を始めてください。

柔軟性のある期限

スケジュールに従って期限をリセットします。

中級レベル

約35時間で修了

推奨:8-16 hours/week...

英語

字幕:英語

習得するスキル

RecursionHigher-Order FunctionPattern MatchingFunctional Programming

100%オンライン

自分のスケジュールですぐに学習を始めてください。

柔軟性のある期限

スケジュールに従って期限をリセットします。

中級レベル

約35時間で修了

推奨:8-16 hours/week...

英語

字幕:英語

シラバス - 本コースの学習内容

1
2時間で修了

Introduction and Course-Wide Information (Start Here)

Welcome! Start here! Learn about this course and how it's organized....
7件のビデオ (合計56分), 5 readings
7件のビデオ
Optional: Who I Am / Acknowledgments6 分
What the Course is About / Initial Motivation8 分
Recommended Background9 分
Why Part A, Part B, Part C5 分
Grading Policy9 分
Optional: Very High-Level Outline7 分
5件の学習用教材
Start here!5 分
About the Course10 分
Some More Perspective on Recommended Background7 分
Why are there 3 courses (Part A, Part B, Part C)?5 分
Grading Policy Details10 分
2時間で修了

Software Installation and Homework 0

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....
4件のビデオ (合計9分), 3 readings, 2 quizzes
4件のビデオ
Emacs installation2 分
SML installation1 分
SML Mode installation3 分
3件の学習用教材
Part A Software Installation and Use: SML and Emacs
Why Emacs? (Optional)5 分
Homework 0 Detailed Peer-Assessment Instructions
2
6時間で修了

Section 1 and Homework 1

It's time to dive in! Start with a careful reading of the "Section 1 Welcome Message" and go from there....
17件のビデオ (合計150分), 6 readings, 2 quizzes
17件のビデオ
Rules for Expressions9 分
The REPL and Errors12 分
Shadowing6 分
Functions Informally7 分
Functions Formally8 分
Pairs and Other Tuples9 分
Introducing Lists10 分
List Functions11 分
Let Expressions7 分
Nested Functions7 分
Let and Efficiency10 分
Options9 分
Booleans and Comparison Operations7 分
Benefits of No Mutation7 分
Optional: Java Mutation4 分
Pieces of a Language6 分
6件の学習用教材
Section 1 Welcome Message7 分
Section 1 Reading Notes
Code Files for All Section 1 Videos
Homework 1 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Homework 15 分
Extra Practice Problems
3
7時間で修了

Section 2 and Homework 2

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....
22件のビデオ (合計178分), 6 readings, 2 quizzes
22件のビデオ
Records8 分
Tuples as Syntactic Sugar6 分
Datatype Bindings8 分
Case Expressions10 分
Useful Datatypes11 分
Pattern Matching So Far4 分
Another Expression Example8 分
Type Synonyms6 分
Lists and Options are Datatypes9 分
Polymorphic Datatypes8 分
Each of Pattern Matching / Truth About Functions14 分
A Little Type Inference6 分
Polymorphic and Equality Types8 分
Nested Patterns10 分
More Nested Patterns10 分
Nested Patterns Precisely6 分
Optional: Function Patterns3 分
Exceptions7 分
Tail Recursion9 分
Accumulators for Tail Recursion7 分
Perspective on Tail Recursion5 分
6件の学習用教材
Section 2 Welcome Message5 分
Section 2 Reading Notes
Code Files for All Section 2 Videos
Homework 2 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Homework 27 分
Extra Practice Problems
4
8時間で修了

Section 3 and Homework 3 -- and Course Motivation

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. ...
28件のビデオ (合計247分), 6 readings, 2 quizzes
28件のビデオ
Functions as Arguments8 分
Polymorphic Types and Functions as Arguments7 分
Anonymous Functions9 分
Unnecessary Function Wrapping5 分
Map and Filter8 分
Generalizing Prior Topics9 分
Lexical Scope7 分
Lexical Scope and Higher-Order Functions7 分
Why Lexical Scope11 分
Closures and Recomputation6 分
Fold and More Closures11 分
Closure Idiom: Combining Functions9 分
Closure Idiom: Currying10 分
Partial Application9 分
Currying Wrapup6 分
Mutable References8 分
Closure Idiom: Callbacks8 分
Standard-Library Documentation7 分
Optional: Abstract Data Types With Closures11 分
Optional: Closure Idioms Without Closures4 分
Optional: Java Without Closures12 分
Optional: C Without Closures10 分
Course-Motivation Introduction5 分
Why Study General PL Concepts?10 分
Are All PLs the Same?6 分
Why Functional Languages?11 分
Why ML, Racket, and Ruby?12 分
6件の学習用教材
Section 3 Welcome Message5 分
Section 3 Reading Notes
Code Files for All Section 3 Videos
Homework 3 Detailed Guidelines for Peer Assessment
Hints and Gotchas for Section 310 分
Extra Practice Problems
5
5時間で修了

Section 4 and Part-A Exam

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....
19件のビデオ (合計144分), 5 readings, 2 quizzes
19件のビデオ
What is Type Inference5 分
ML Type Inference6 分
Type Inference Examples10 分
Polymorphic Examples10 分
Optional: The Value Restriction and Other Type-Inference Challenges9 分
Mutual Recursion9 分
Modules for Namespace Management6 分
Signatures and Hiding Things7 分
A Module Example11 分
Signatures for Our Example11 分
Signature Matching4 分
An Equivalent Structure6 分
Another Equivalent Structure9 分
Different Modules Define Different Types3 分
Equivalent Functions8 分
Standard Equivalences10 分
Equivalence Versus Performance6 分
Part A Wrap-Up & Parts B&C Preview6 分
5件の学習用教材
Section 4 Welcome Message7 分
Section 4 Reading Notes
Code Files for All Section 4 Videos
Nothing (yet) (explanation)
Information About the Exam (Required Reading)10 分
2の練習問題
Practice Exam for Part A
Exam for Part A
4.9
289件のレビューChevron Right

30%

コース終了後に新しいキャリアをスタートした

15%

コースが具体的なキャリアアップにつながった

人気のレビュー

by YZDec 3rd 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.

by VAMar 5th 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

講師

Avatar

Dan Grossman

Professor
Computer Science & Engineering

ワシントン大学(University of Washington)について

Founded in 1861, the University of Washington is one of the oldest state-supported institutions of higher education on the West Coast and is one of the preeminent research universities in the world....

よくある質問

  • 修了証に登録すると、すべてのビデオ、テスト、およびプログラミング課題(該当する場合)にアクセスできます。ピアレビュー課題は、セッションが開始してからのみ、提出およびレビューできます。購入せずにコースを検討することを選択する場合、特定の課題にアクセスすることはできません。

  • 修了証を購入する際、コースのすべての教材(採点課題を含む)にアクセスできます。コースを完了すると、電子修了証が成果のページに追加されます。そこから修了証を印刷したり、LinkedInのプロフィールに追加したりできます。コースの内容の閲覧のみを希望する場合は、無料でコースを聴講できます。

さらに質問がある場合は、受講者向けヘルプセンターにアクセスしてください。