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

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

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

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

Programming Languages, Part A

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

О курсе

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. 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. The three parts are not quite equal in length: Part A is almost as substantial as Part B and Part C combined. 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.

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

Computer ProgrammingFunctional DesignProgramming PrinciplesCode ReusabilityObject Oriented Programming (OOP)Theoretical Computer ScienceOther Programming LanguagesRuby (Programming Language)Development EnvironmentSoftware Installation

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

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

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

Welcome Information

Start here!ЧтениеWelcome! (And Some Course Mechanics)ВидеоOptional: Who I Am / AcknowledgmentsВидеоWhat the Course is About / Initial MotivationВидео

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

Dan Grossman

Professor

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

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

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

Начать на Coursera

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

Обучение на Coursera

≈ 29.7 ч

6 модулей

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

Субтитры: Арабский, Французский, Бенгальский, Украинский, Китайский (Китай), Греческий, Итальянский, Бразильский португальский, Вьетнамский, Нидерландский, Корейский, Ория, Немецкий, Пушту, Урду, Русский, Тайский, Индонезийский, Шведский, Турецкий, Азербайджанский, Испанский, Дари, Хинди, Японский, Казахский, Венгерский, Польский

Часть программы вашего университета
Recommended BackgroundВидео
Why Part A, Part B, Part CВидео
Grading PolicyВидео
Optional: Very High-Level OutlineВидео
About the CourseЧтение
Some More Perspective on Recommended BackgroundЧтение
Why are there 3 courses (Part A, Part B, Part C)?Чтение
Grading Policy DetailsЧтение
Discussion Forums: Why Are You Participating?Обсуждение
02Software Installation and Homework 09 материалов

Installation Instructions

Part A Software Installation and Use: SML and EmacsЧтениеWhy Emacs? (Optional)Чтение

Videos Showing Installation Steps (Optional)

Software Installation IntroductionВидеоEmacs installationВидеоSML installationВидеоSML Mode installationВидео

Homework 0 (Optional)

Homework 0 (Auto-Grader)ПрограммированиеHomework 0 Detailed Peer-Assessment InstructionsЧтениеHomework 0 (Peer Assessment) Взаимная проверка
03Section 1 and Homework 125 материалов

Section-Wide Items

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

Video Lectures

ML Variable Bindings and ExpressionsВидеоRules for ExpressionsВидеоThe REPL and ErrorsВидеоShadowingВидеоFunctions InformallyВидеоFunctions FormallyВидеоPairs and Other TuplesВидеоIntroducing ListsВидеоList FunctionsВидеоLet ExpressionsВидеоNested FunctionsВидеоLet and EfficiencyВидеоOptionsВидеоBooleans and Comparison OperationsВидеоBenefits of No MutationВидеоOptional: Java MutationВидеоPieces of a LanguageВидео

Homework 1

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

Community-Contributed Resources

Hints and Gotchas for Homework 1ЧтениеExtra Practice ProblemsЧтение
04Section 2 and Homework 230 материалов

Section-Wide Items

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

Video Lectures

Building Compound TypesВидеоRecordsВидеоTuples as Syntactic SugarВидеоDatatype BindingsВидеоCase ExpressionsВидеоUseful DatatypesВидеоPattern Matching So FarВидеоAnother Expression ExampleВидеоType SynonymsВидеоLists and Options are DatatypesВидеоPolymorphic DatatypesВидеоEach of Pattern Matching / Truth About FunctionsВидеоA Little Type InferenceВидеоPolymorphic and Equality TypesВидеоNested PatternsВидеоMore Nested PatternsВидеоNested Patterns PreciselyВидеоOptional: Function PatternsВидеоExceptionsВидеоTail RecursionВидеоAccumulators for Tail RecursionВидеоPerspective on Tail RecursionВидео

Homework 2

Homework 2ПрограммированиеHomework 2 Detailed Guidelines for Peer AssessmentЧтениеHomework 2Взаимная проверка

Community-Contributed Resources

Hints and Gotchas for Homework 2ЧтениеExtra Practice ProblemsЧтение
05Section 3 and Homework 3 -- and Course Motivation36 материалов

Section-Wide Materials

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

Video Lectures

Introduction to First-Class FunctionsВидеоFunctions as ArgumentsВидеоPolymorphic Types and Functions as ArgumentsВидеоAnonymous FunctionsВидеоUnnecessary Function WrappingВидеоMap and FilterВидеоGeneralizing Prior TopicsВидеоLexical ScopeВидеоLexical Scope and Higher-Order FunctionsВидеоWhy Lexical ScopeВидеоClosures and RecomputationВидеоFold and More ClosuresВидеоClosure Idiom: Combining FunctionsВидеоClosure Idiom: CurryingВидеоPartial ApplicationВидеоCurrying WrapupВидеоMutable ReferencesВидеоClosure Idiom: CallbacksВидеоStandard-Library DocumentationВидеоOptional: Abstract Data Types With ClosuresВидеоOptional: Closure Idioms Without ClosuresВидеоOptional: Java Without ClosuresВидеоOptional: C Without ClosuresВидео

Optional But Highly Recommended: Course Motivation

Course-Motivation IntroductionВидеоWhy Study General PL Concepts?ВидеоAre All PLs the Same?ВидеоWhy Functional Languages?ВидеоWhy ML, Racket, and Ruby?Видео

Homework 3

Homework 3ПрограммированиеHomework 3 Detailed Guidelines for Peer AssessmentЧтениеHomework 3Взаимная проверка

Community-Contributed Resources

Hints and Gotchas for Section 3ЧтениеExtra Practice ProblemsЧтение
06Section 4 and Part-A Exam26 материалов

Section-Wide Materials

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

Video Lectures

Section IntroductionВидеоWhat is Type InferenceВидеоML Type InferenceВидеоType Inference ExamplesВидеоPolymorphic ExamplesВидеоOptional: The Value Restriction and Other Type-Inference ChallengesВидеоMutual RecursionВидеоModules for Namespace ManagementВидеоSignatures and Hiding ThingsВидеоA Module ExampleВидеоSignatures for Our ExampleВидеоSignature MatchingВидеоAn Equivalent StructureВидеоAnother Equivalent StructureВидеоDifferent Modules Define Different TypesВидеоEquivalent FunctionsВидеоStandard EquivalencesВидеоEquivalence Versus PerformanceВидео

Community-Contributed Resources

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

Part A Exam

Information About the Exam (Required Reading)ЧтениеPractice Exam for Part AЗаданиеExam for Part AЗадание

Part A Wrap-Up

Part A Wrap-Up & Parts B&C PreviewВидео