Об этом курсе
4.9
Оценки: 881
Рецензии: 257
100% онлайн

100% онлайн

Начните сейчас и учитесь по собственному графику.
Гибкие сроки

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Промежуточный уровень

Промежуточный уровень

Часов на завершение

Прибл. 35 часов на выполнение

Предполагаемая нагрузка: 8-16 hours/week...
Доступные языки

Английский

Субтитры: Английский...

Приобретаемые навыки

RecursionHigher-Order FunctionPattern MatchingFunctional Programming
100% онлайн

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....
Reading
7 видео (всего 56 мин.), 5 материалов для самостоятельного изучения
Video7 видео
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мин
Reading5 материалов для самостоятельного изучения
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....
Reading
4 видео (всего 9 мин.), 3 материалов для самостоятельного изучения, 2 тестов
Video4 видео
Emacs installation2мин
SML installation1мин
SML Mode installation3мин
Reading3 материала для самостоятельного изучения
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....
Reading
17 видео (всего 150 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video17 видео
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мин
Reading6 материалов для самостоятельного изучения
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....
Reading
22 видео (всего 178 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video22 видео
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мин
Reading6 материалов для самостоятельного изучения
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. ...
Reading
28 видео (всего 247 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video28 видео
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мин
Reading6 материалов для самостоятельного изучения
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мин
4.9

Лучшие рецензии

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

автор: SKMar 24th 2017

An excellent course! Make sure you really have enough time to take this course. There are a lot of videos, but they worth watching. I'd recommend this course to everyone involved in programming.

Преподаватель

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. Просто ознакомиться с содержанием курса можно бесплатно.

Остались вопросы? Посетите Центр поддержки учащихся.