Programming Languages, Part C

所在平台: Coursera

课程主页: https://www.coursera.org/learn/programming-languages-part-c

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:编程语言,第三部分 概述:本课程是一个为期三个部分的课程之中的第三部分,参与者需先完成第一部分和第二部分。第三部分将深入探讨编程语言的基本概念,特别注重函数式编程。课程通过ML、Racket和Ruby等语言来教授相关概念,旨在帮助学习者理解任何编程语言的架构,从而提升其在多种语言中的编程效能及学习新语言的能力。 本课程并非单纯理论,也不仅仅关注具体编程细节,而是提供了一个有效使用语言构造及设计正确优雅程序的框架。通过学习不同的编程语言,您将超越对单一语言语法的理解,更深层次地思考。重视函数式编程对于编写健壮、可重用、可组合和优雅的程序至关重要,很多现代语言的重要思想根源于函数式编程。准备好以一种新颖和优美的方式看待软件,并享受构建软件的乐趣。 课程假设参与者具备一定的编程经验,第一部分的首个模块中进行更详细的介绍。第二部分需在完成第一部分后才能进行。 本课程分为三部分,分别为A、B、C,以便设置中间里程碑并提供在继续学习之前的休息机会。三部分设计为顺序完成,旨在激励参与者坚持到完成第三部分。 大纲: - 名称:介绍、课程总体信息与软件安装(从这里开始) 描述:欢迎!从这里开始!了解本课程的组织结构。 - 名称:第八单元及作业六(第一模块与Ruby) 描述:开始使用Ruby编程,包括学习Ruby的函数闭包变种和面向对象编程的“继承与重写”,这是本课程的核心内容。 - 名称:第九单元及作业七(第二模块与Ruby) 描述:欢迎来到第三部分的第二周,我们将专注于功能编程与面向对象编程如何以“完全相反”的方式分解问题,实际上却有许多相似之处。这是整合已有学习内容的关键机会,我们还将探讨一些相关的高级主题,并着手完成最后的编程作业,将一个解释器从ML移植到Ruby。 - 名称:第十单元、期末考试以及课程总结 描述:我们已达到编程语言的最后一个模块。首先将学习子类型及其与静态类型的关系,以及与泛型的关系。虽然没有专门针对这一“新材料”的作业或测验,但会有一个涵盖第二部分和第三部分的“期末考试”。祝您复习愉快,完成后不要错过最后的总结课程!

课程大纲

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

Description:Welcome! Start here! Learn about this course and how it's organized.

Name:Section 8 and Homework 6 (First Module with Ruby)

Description:Let's get started programming with Ruby, including learning about Ruby's variant of (almost) function closures and the "inheritance and overriding" that is the essence of object-oriented programming. The welcome message has a few additional comments about "what makes Ruby different" and how to approach the (rather different) homework assignment, so let's get started...

Name:Section 8 and Homework 6 (First Module with Ruby): Lesson Choices

Description:

Name:Section 9 and Homework 7 (Second Module With Ruby)

Description:Welcome to the second week of Part C where we will focus on how functional programming and object-oriented programming encourage such "exactly opposite" decompositions of problems that they are "more alike than you might realize". This is a key opportunity to synthesize much of what we have learned so far. As the welcome message discusses in more detail, we will go a bit beyond this to touch on some related advanced topics and then dive into the last -- and challenging -- programming assignment, which involves porting an interpreter from ML to Ruby.

Name:Section 9 and Homework 7 (Second Module With Ruby): Lesson Choices

Description:

Name:Section 10, Final Exam, and Course Wrap-Up

Description:We have reached the last module of Programming Languages! We first study subtyping, how it relates to static types for object-oriented programming, and how it relates to generics. There is no assignment or quiz devoted only to this last "new material", but there is a "final exam" covering Part B and Part C of the course. Enjoy studying for the exam, and don't miss the final "wrap-up" lesson when you're all done!

课程评论(0条)

课程详情

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

课程标签

0人关注该课程

主题相关的课程