Programming Languages, Part C

  • 4.9
Approx. 18 hours to complete

Course Summary

This course teaches programming language concepts and design principles through the study of three programming language paradigms: object-oriented, functional, and concurrent. Students will learn how to use these paradigms to build programs that are efficient, elegant, and easy to maintain.

Key Learning Points

  • Learn the concepts and design principles of programming languages
  • Study three programming language paradigms: object-oriented, functional, and concurrent
  • Build efficient, elegant, and easy to maintain programs

Related Topics for further study


Learning Outcomes

  • Understand programming language concepts and design principles
  • Apply object-oriented, functional, and concurrent programming language paradigms
  • Build efficient, elegant, and easy to maintain programs

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of programming
  • Familiarity with at least one programming language

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced
  • Video lectures
  • Assignments and quizzes
  • Programming assignments

Similar Courses

  • Programming Languages
  • Programming Languages and Compilers

Related Education Paths


Notable People in This Field

  • Bjarne Stroustrup
  • Simon Peyton Jones

Related Books

Description

[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.]

Outline

  • Introduction, Course-Wide Information, and Software Installation (Start Here)
  • Welcome to Part C
  • Overview of Part C Concepts
  • Part C Course Structure
  • Start Here!
  • Part C Software Installation and Use: Ruby and irb
  • Section 8 and Homework 6 (First Module with Ruby)
  • Introduction to Ruby
  • Classes and Objects
  • Object State
  • Visibility
  • A Longer Example
  • Everything is an Object
  • Class Definitions are Dynamic
  • Duck Typing
  • Arrays
  • Blocks
  • Using Blocks
  • Procs
  • Hashes and Ranges
  • Subclassing
  • Why Use Subclassing?
  • Overriding and Dynamic Dispatch
  • Method-Lookup Rules, Precisely
  • Dynamic Dispatch Versus Closures
  • Optional: Dynamic Dispatch Manually in Racket
  • Section 8 Welcome Message
  • Explanation of "Lesson Choices"
  • Homework 6 Instructions
  • Section 8 and Homework 6 (First Module with Ruby): Lesson Choices
  • Section 9 and Homework 7 (Second Module With Ruby)
  • OOP Versus Functional Decomposition
  • Adding Operations or Variants
  • Binary Methods with Functional Decomposition
  • Double Dispatch
  • Optional: Multimethods
  • Multiple Inheritance
  • Mixins
  • Interfaces
  • Optional: Abstract Methods
  • Section 9 Welcome Message
  • Explanation of "Lesson Choices"
  • Homework 7 Instructions
  • Section 9 and Homework 7 (Second Module With Ruby): Lesson Choices
  • Section 10, Final Exam, and Course Wrap-Up
  • Subtyping From the Beginning
  • The Subtype Relation
  • Depth Subtyping
  • Optional: Java/C# Arrays
  • Function Subtyping
  • Subtyping for OOP
  • Generics Versus Subtyping
  • Bounded Polymorphism
  • Summarizing All We Have Learned
  • Saying Good-Bye :-)
  • Section 10 Welcome Message
  • Information About the Exam (Required Reading)
  • Practice Final Exam
  • Actual Final Exam

Summary of User Reviews

Discover the world of programming languages with Programming Languages Part C course on Coursera. This course has received positive reviews from users who found it informative and well-structured.

Key Aspect Users Liked About This Course

The course is well-structured and informative.

Pros from User Reviews

  • The course covers a wide range of programming languages.
  • The instructors provide clear explanations and examples.
  • The assignments and quizzes are well-designed and challenging.
  • The course is self-paced and flexible, allowing users to study at their own pace.
  • The course is suitable for both beginners and experienced programmers.

Cons from User Reviews

  • Some users found the course to be too basic.
  • The course could benefit from more hands-on coding exercises.
  • The course may not be suitable for users with limited programming experience.
  • Some users found the lectures to be too long and dry.
  • The course could benefit from more interactive elements.
English
Available now
Approx. 18 hours to complete
Dan Grossman Top Instructor
University of Washington
Coursera

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses