К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Programming Languages, Part B · LearnSpace
Назад в каталог
courseraПрограммирование

Programming Languages, Part B

Курс от University of Washington
Средний≈ 16.6 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

[As described below, this is Part B of a 3-part course. Participants should complete Part A first -- Part B "dives right in" and refers often to material from Part A.] 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 of Part A. Part B assumes successful completion of Part A. 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. 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.

Навыки, которые вы освоите

Functional DesignData StructuresCode ReusabilityComputer ProgrammingOther Programming LanguagesProgramming PrinciplesSoftware DesignRuby (Programming Language)

Программа курса

4 модулей · 67 учебных материалов

01Introduction, Course-Wide Information, and Software Installation (Start Here)5 материалов

Course Information and Overview

Start Here!ЧтениеWelcome to Part BВидеоOverview of Part B ConceptsВидеоPart B Course StructureВидео

Software Installation

Учитесь у экспертов

Dan Grossman

Professor

Programming Languages, Part B
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 16.6 ч

4 модулей

Язык: Английский

Субтитры: Арабский, Французский, Итальянский, Вьетнамский, Ория, Немецкий, Русский, Испанский

Часть программы вашего университета
Part B Software Installation and Use: Racket and DrRacketЧтение
02Section 5 and Homework 4 (First Module with Racket)31 материалов

Section-Wide Items

Section 5 Welcome MessageЧтениеSection 5 Reading NotesЧтениеCode Files for All Section 5 VideosЧтение

Video Lectures

Introduction to RacketВидеоRacket Definitions, Functions, ConditionalsВидеоRacket ListsВидеоSyntax and ParenthesesВидеоParentheses Matter! (Debugging Practice)ВидеоDynamic TypingВидеоCondВидеоLocal BindingsВидеоToplevel BindingsВидеоMutation with set!ВидеоThe Truth About ConsВидеоmcons For Mutable PairsВидеоDelayed Evaluation and ThunksВидеоAvoiding Unnecessary ComputationsВидеоDelay and ForceВидеоUsing StreamsВидеоDefining StreamsВидеоMemoizationВидеоMacros: The Key PointsВидеоOptional: Tokenization, Parenthesization, and ScopeВидеоOptional: Racket Macros With define-syntaxВидеоOptional: Variables, Macros, and HygieneВидеоOptional: More Macro ExamplesВидео

Homework 4

Homework 4 (Auto-Grader)ПрограммированиеHomework 4 Detailed Guidelines for Peer AssessmentЧтениеHomework 4Взаимная проверка

Community-Contributed Resources

Notes and Tips for Section 5ЧтениеExtra Practice ProblemsЧтение
03Section 6 and Homework 5 (Second Module with Racket)17 материалов

Section-Wide Items

Section 6 Welcome MessageЧтениеSection 6 Reading NotesЧтениеCode Files for All Section 6 VideosЧтение

Video Lectures

Datatype-Programming in Racket Without StructsВидеоDatatype-Programming in Racket With StructsВидеоAdvantages of StructsВидеоImplementing Programming LanguagesВидеоWhat Your Interpreter Can and Cannot AssumeВидеоImplementing Variables and EnvironmentsВидеоImplementing ClosuresВидеоOptional: Are Closures Efficient?ВидеоRacket Functions As “Macros” For Interpreted LanguageВидео

Homework 5

Homework 5 (Auto-Grader)ПрограммированиеHomework 5 Detailed Guidelines for Peer AssessmentЧтениеHomework 5Взаимная проверка

Community-Contributed Resources

Notes and Tips for Section 6ЧтениеExtra Practice ProblemsЧтение
04Section 7 Including a Quiz14 материалов

Section-Wide Items

Section 7 Welcome MessageЧтениеSection 7 Reading NotesЧтениеCode Files for All Section 7 VideosЧтение

Video Lectures

ML Versus RacketВидеоWhat is Static Checking?ВидеоSoundness and CompletenessВидеоWeak TypingВидеоStatic Versus Dynamic Typing, Part OneВидеоStatic Versus Dynamic Typing, Part TwoВидеоOptional: eval and quoteВидео

Quiz for This Section

Quiz InstructionsЧтениеSection 7 QuizЗадание

Community-Contributed Resources (Nothing Yet)

Nothing (yet) (explanation)Чтение

Part B Wrap-Up

Part B Wrap-Up and Part C PreviewВидео