À propos de ce cours
4.9
379 notes
76 avis
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau intermédiaire

Niveau intermédiaire

Heures pour terminer

Approx. 19 heures pour terminer

Recommandé : 8-16 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais

Compétences que vous acquerrez

Racket (Programming Language)Programming Language ConceptsType SystemFunctional Programming
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau intermédiaire

Niveau intermédiaire

Heures pour terminer

Approx. 19 heures pour terminer

Recommandé : 8-16 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
Heures pour terminer
1 heure pour terminer

Introduction, Course-Wide Information, and Software Installation (Start Here)

Welcome! Start here! Learn about this course and how it's organized. ...
Reading
3 videos (Total 11 min), 2 lectures
Video3 vidéos
Overview of Part B Concepts5 min
Part B Course Structure2 min
Reading2 lectures
Start Here!7 min
Part B Software Installation and Use: Racket and DrRacket15 min
Heures pour terminer
7 heures pour terminer

Section 5 and Homework 4 (First Module with Racket)

Let's get started programming with Racket and then learning idioms related to delaying evaluation. The welcome message has a few additional comments about picking up a new language and how to approach the homework assignment, so let's get started......
Reading
23 videos (Total 211 min), 6 lectures, 2 quiz
Video23 vidéos
Racket Definitions, Functions, Conditionals10 min
Racket Lists9 min
Syntax and Parentheses8 min
Parentheses Matter! (Debugging Practice)10 min
Dynamic Typing9 min
Cond8 min
Local Bindings13 min
Toplevel Bindings4 min
Mutation with set!8 min
The Truth About Cons7 min
mcons For Mutable Pairs7 min
Delayed Evaluation and Thunks10 min
Avoiding Unnecessary Computations6 min
Delay and Force9 min
Using Streams10 min
Defining Streams10 min
Memoization10 min
Macros: The Key Points8 min
Optional: Tokenization, Parenthesization, and Scope7 min
Optional: Racket Macros With define-syntax9 min
Optional: Variables, Macros, and Hygiene10 min
Optional: More Macro Examples9 min
Reading6 lectures
Section 5 Welcome Message5 min
Section 5 Reading Notes0
Code Files for All Section 5 Videos0
Homework 4 Detailed Guidelines for Peer Assessment0
Notes and Tips for Section 56 min
Extra Practice Problems0
Semaine
2
Heures pour terminer
6 heures pour terminer

Section 6 and Homework 5 (Second Module with Racket)

Welcome to the second week of Part B where we will focus on (a) building data structures in dynamically typed languages and (b) implementing programming languages with interpreters. Most of the programming assignment is focused on (b) -- implementing a small programming language that has function closures. As usual, start with the welcome message and enjoy!...
Reading
9 videos (Total 86 min), 6 lectures, 2 quiz
Video9 vidéos
Datatype-Programming in Racket With Structs9 min
Advantages of Structs8 min
Implementing Programming Languages10 min
What Your Interpreter Can and Cannot Assume13 min
Implementing Variables and Environments6 min
Implementing Closures6 min
Optional: Are Closures Efficient?9 min
Racket Functions As “Macros” For Interpreted Language9 min
Reading6 lectures
Section 6 Welcome Message5 min
Section 6 Reading Notes0
Code Files for All Section 6 Videos0
Homework 5 Detailed Guidelines for Peer Assessment0
Notes and Tips for Section 67 min
Extra Practice Problems0
Semaine
3
Heures pour terminer
2 heures pour terminer

Section 7 Including a Quiz

In the last module of Part B we will use our experience programming in ML and Racket to compare and contrast static typing and dynamic typing. This is not only the most important difference between these two languages, but it is a fundamental topic in the study of programming languages. Learning it can help you program more effectively in both kinds of languages. After completing this week's quiz, don't forget to watch the Part B Wrap-Up and Part C Preview video....
Reading
8 videos (Total 77 min), 5 lectures, 1 quiz
Video8 vidéos
What is Static Checking?10 min
Soundness and Completeness9 min
Weak Typing9 min
Static Versus Dynamic Typing, Part One9 min
Static Versus Dynamic Typing, Part Two13 min
Optional: eval and quote7 min
Part B Wrap-Up and Part C Preview7 min
Reading5 lectures
Section 7 Welcome Message5 min
Section 7 Reading Notes0
Code Files for All Section 7 Videos0
Quiz Instructions5 min
Nothing (yet) (explanation)0
Quiz1 exercice pour s'entraîner
Section 7 Quiz45 min
4.9
76 avisChevron Right
Avantage de carrière

83%

a bénéficié d'un avantage concret dans sa carrière grâce à ce cours
Promotion de carrière

20%

a obtenu une augmentation de salaire ou une promotion

Meilleurs avis

par AAMar 24th 2018

Great course with really interesting and challenging assignments that allow to get more precise vision on programming languages (especially on PL's typing systems) and get experience with modern LISP

par KRMar 23rd 2018

I'm a pretty experienced C/C++ programmer and this course has been a brilliant introduction into functional programming and the underlying philosophies underpinning programming languages in general.

Enseignant

Avatar

Dan Grossman

Professor
Computer Science & Engineering

À propos de 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....

Foire Aux Questions

  • Une fois que vous êtes inscrit(e) pour un Certificat, vous pouvez accéder à toutes les vidéos de cours, et à tous les quiz et exercices de programmation (le cas échéant). Vous pouvez soumettre des devoirs à examiner par vos pairs et en examiner vous-même uniquement après le début de votre session. Si vous préférez explorer le cours sans l'acheter, vous ne serez peut-être pas en mesure d'accéder à certains devoirs.

  • Lorsque vous achetez un Certificat, vous bénéficiez d'un accès à tout le contenu du cours, y compris les devoirs notés. Lorsque vous avez terminé et réussi le cours, votre Certificat électronique est ajouté à votre page Accomplissements. À partir de cette page, vous pouvez imprimer votre Certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez seulement lire et visualiser le contenu du cours, vous pouvez accéder gratuitement au cours en tant qu'auditeur libre.

D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.