Programming Languages Part B

2.4
2.4 rating

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.

WEEK 1
1 hour to complete
Introduction Course-Wide Information and Software Installation (Start Here)
Welcome! Start here! Learn about this course and how it's organized.
3 videos (Total 11 min) 2 readings

7 hours to complete
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...
23 videos (Total 211 min) 6 readings 2 quizzes

WEEK 2
6 hours to complete
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!
9 videos (Total 86 min) 6 readings 2 quizzes

WEEK 3
2 hours to complete
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.
8 videos (Total 77 min) 5 readings 1 quiz


Tham gia đánh giá khóa học

Nếu bạn đã học qua khóa học này thì mời bạn tham gia đóng góp ý kiến và đánh giá để cộng đồng bạn học có thêm thông tin tham khảo.

Cung cấp bởi: Coursera /  University of Washington

Thời lượng: 17 giờ
Ngôn ngữ giảng dạy: Tiếng Anh
Chi phí: Miễn phí / 0
Đối tượng: Intermediate

Thông tin về nhà cung cấp

Coursera (/ kərˈsɛrə /) là một nền tảng học tập trực tuyến toàn cầu được thành lập vào năm 2012 bởi 2 giáo sư khoa học máy tính của đại học Stanford là Andrew NgDaphne Koller, nền tảng này cung cấp các khóa học trực tuyến (MOOC) cho cộng đồng người học online.

Coursera hợp tác với các trường đại học danh tiếng tại Bắc Mỹ và trên khắp thế giới, cùng với nhiều tổ chức khác để cung cấp các khóa học trực tuyến chất lượng, theo chuyên ngành và được cấp chứng chỉ trong nhiều lĩnh vực như kỹ thuật, khoa học dữ liệu, học máy, toán học, kinh doanh, khoa học máy tính, tiếp thị kỹ thuật số, nhân văn, y học, sinh học, khoa học xã hội , và nhiều ngành khác.

Các khóa học cùng chủ đề

Motion Planning for Self-Driving Cars

This course will introduce you to the main planning tasks in autonomous driving, including mission planning, behavior planning and local planning. By the end of this course, you will be...

Capstone: Autonomous Runway Detection for IoT

This capstone project course ties together the knowledge from three previous courses in IoT though embedded systems: Development of Real-Time Systems Web Connectivity & Security and Embedded Hardware and Operating...

System Validation (4): Modelling Software Protocols and other behaviour

System Validation is the field that studies the fundamentals of system communication and information processing. It allows automated analysis based on behavioural models of a system to see if a...

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top