最新消息:网盘下载利器JDownloader--|--发布资讯--|--站务--|--解压出错.密码问题--

Coursera – Programming Languages

其他教程 007 0评论

Coursera - Programming Languages

WEB-Rip | AVC1 @ 500 Kbit/s | 960x540 | AAC Stereo @ 128 Kbit/s 48 KHz | 25 Hours | 2.06 GB

Genre: Development / Programming | Language: English | Course Materials Included

Programming Languages

Investigate the basic concepts behind programming languages, with a strong emphasis on the techniques and benefits of functional programming. Use the programming languages ML, Racket, and Ruby in ways that will teach you how the pieces of a language fit together to create more than the sum of the parts. Gain new software skills and the concepts needed to learn new languages on your own.

About the Course

Learn many of the concepts that underlie all programming languages. Develop a programming style known as functional programming and contrast it with object-oriented programming. Through experience writing programs and studying three different languages, learn the key issues in designing and using programming languages, such as modularity and the complementary benefits of static and dynamic typing. 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 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 – in any language.

Course Syllabus

Note: About half the students in prior offerings report an estimated workload of 8-12 hours / week is accurate while most of the other half spent more time -- 15 hours / week or more. Workload naturally differs for different people depending on one's background. Do see the recommended-background section below.

Topics (most of which may not mean anything to you until you take the course):

Syntax vs. semantics vs. idioms vs. libraries vs. tools
ML basics (bindings, conditionals, records, functions)
Recursive functions and recursive types
Benefits of no mutation
Algebraic datatypes, pattern matching
Tail recursion
First-class functions and function closures
Lexical scope
Currying
Syntactic sugar
Equivalence and effects
Parametric polymorphism and container types
Type inference
Abstract types and modules
Racket basics
Dynamic vs. static typing
Laziness, streams, and memoization
Implementing languages, especially higher-order functions
Macros
Eval
Ruby basics
Object-oriented programming is dynamic dispatch
Pure object-orientation
Implementing dynamic dispatch
Multiple inheritance, interfaces, and mixins
OOP vs. functional decomposition and extensibility
Subtyping for records, functions, and objects
Subtyping
Class-based subtyping
Subtyping vs. parametric polymorphism; bounded polymorphism

Recommended Background

The course assumes students are familiar with programming covered by most introductory courses -- this is not an introductory programming course. Conversely, it is also not a particularly advanced course -- a couple good prior programming courses should be enough. Students should be comfortable with variables, conditionals, arrays, linked lists, stacks, and recursion (though recursion will be reviewed and expanded upon), and the difference between an interface and an implementation. Students should be eager to write programs in languages new to them. Later parts of the course analyze basic object-oriented concepts and contrast them with those of other languages, so familiarity with Java or a closely related language (e.g., C#) is helpful, but not required for homework assignments.

Course at a Glance

8-16 hours of work / week
English
English subtitles

Instructors

Dan Grossman
University of Washington

Coursera - Programming Languages

Coursera - Programming Languages


Download rapidgator
http://rg.to/file/29d14567b3a217d90cf5cfa1c8d561be/Programming_Languages;_University_of_Washington_Coursera.part1.rar.html
http://rg.to/file/4ea6637fea698f7242b0280b69ee6630/Programming_Languages;_University_of_Washington_Coursera.part2.rar.html
http://rg.to/file/a4d1e0921e9312326dd8071593f37aba/Programming_Languages;_University_of_Washington_Coursera.part3.rar.html
http://rg.to/file/257882b243da59f3b056856af7942b6f/Programming_Languages;_University_of_Washington_Coursera.part4.rar.html
http://rg.to/file/1301a902af36a75ee9430d8c23a22829/Programming_Languages;_University_of_Washington_Coursera.part5.rar.html
http://rg.to/file/e121b5310acff8f52fff5f3ef64031bd/Programming_Languages;_University_of_Washington_Coursera.part6.rar.html

Download firedrive and 百度云

以下隐藏内容只提供VIP赞助会员

sorry! The following hidden content sponsorship VIP members only.

您必须 登录 才能发表评论!

网友最新评论 (1)

  1. Coursera - 编程语言 通过对函数编程的好处和技术方面的强调,本教程的重点放在了学习编程语言背后的基本概念上。使用如ML,Racket以及Ruby,可以让我学习到不同语言片段的使用可以比各部分和总和创造得更多。从而获得你能够自学新的语言所需要的新软件技巧和知识。 关于本课程:学习所有学习编程语言共通的知识。掌握与函数编程相对的面向对象编程编程风格。通过编程的经验,学习三只不同的语言,学习在设计和使用编程语言中的重要问题。如模块化和静态以及动态类型。本课程既非特别理论化,也不是特别偏重于编程的,而是会为你提供一个理解如何有效地使用语言构建以及如何设计正确优雅的程序。通过使用不同的语言,你会学习更深入地思考语言的语法结构。函数编程的重点在于学习如何使用任何语言写出健壮的、可用的、复用的以及优雅的程序。 课程大纲:差不多一半以前的学生报告说每周的工作量在8-12个小时/周,另一半则花了更多的时间—15个小时/周。时间的多少因人而异,所以一定要看看下面的背景建议。 语法vs.语义vs.习语vs.图书馆vs.工具;ML基础(绑定,条件,记录,函数);递归函数和类型;没有变形的好处;代数数据类型,模式匹配;尾递归;第一类型函数;语法范围;套用; 建议背景:本课程并非入门型的,假设学生熟悉大多数导论性课程中所涉及到的编程。相反,本课程也并非一门特别高深的课程—不过是先前不错的几门编程课程的合集。学生会很好地掌握变量、条件、数组、堆栈、递归以及接口和实现直接的区别。学生会非常渴望利用他们新学到的语言去编写程序。教程的后半部分,分析面向对象的概念,并将其与其它语言做比较,所以熟悉Java或相关语言(如C#)将会是非常帮助的,但对于课后作业并非必须的。 教师:Dan Grossman,华盛顿大学
    wilde(特殊组-翻译)3年前 (2014-03-24)