Programming Languages, Part B

  • 4.9
Approx. 17 hours to complete

Course Summary

This course is the second part of a two-part series on Programming Languages, focusing on type systems and language semantics. Students will learn about advanced programming concepts and how to apply them to different programming languages.

Key Learning Points

  • Gain a deep understanding of programming language semantics and type systems
  • Learn how to apply advanced programming concepts to different programming languages
  • Develop problem-solving skills and improve code quality

Job Positions & Salaries of people who have taken this course might have

    • USA: $86,000 - $154,000
    • India: ₹480,000 - ₹2,500,000
    • Spain: €23,000 - €50,000
    • USA: $86,000 - $154,000
    • India: ₹480,000 - ₹2,500,000
    • Spain: €23,000 - €50,000

    • USA: $68,000 - $126,000
    • India: ₹310,000 - ₹1,400,000
    • Spain: €22,000 - €40,000
    • USA: $86,000 - $154,000
    • India: ₹480,000 - ₹2,500,000
    • Spain: €23,000 - €50,000

    • USA: $68,000 - $126,000
    • India: ₹310,000 - ₹1,400,000
    • Spain: €22,000 - €40,000

    • USA: $56,000 - $102,000
    • India: ₹260,000 - ₹1,200,000
    • Spain: €21,000 - €35,000

Related Topics for further study


Learning Outcomes

  • Understand the semantics and type systems of programming languages
  • Apply advanced programming concepts to different programming languages
  • Improve problem-solving skills and code quality

Prerequisites or good to have knowledge before taking this course

  • Completion of Programming Languages, Part A
  • Familiarity with at least one programming language

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Programming Languages, Part A
  • Compilers
  • Computer Science: Programming with a Purpose

Related Education Paths


Related Books

Description

[As described below, this is Part B of a 3-part course. Participants should complete Part A first -- Part B "dives right in" and refers often to material from Part A.]

Outline

  • Introduction, Course-Wide Information, and Software Installation (Start Here)
  • Welcome to Part B
  • Overview of Part B Concepts
  • Part B Course Structure
  • Start Here!
  • Part B Software Installation and Use: Racket and DrRacket
  • Section 5 and Homework 4 (First Module with Racket)
  • Introduction to Racket
  • Racket Definitions, Functions, Conditionals
  • Racket Lists
  • Syntax and Parentheses
  • Parentheses Matter! (Debugging Practice)
  • Dynamic Typing
  • Cond
  • Local Bindings
  • Toplevel Bindings
  • Mutation with set!
  • The Truth About Cons
  • mcons For Mutable Pairs
  • Delayed Evaluation and Thunks
  • Avoiding Unnecessary Computations
  • Delay and Force
  • Using Streams
  • Defining Streams
  • Memoization
  • Macros: The Key Points
  • Optional: Tokenization, Parenthesization, and Scope
  • Optional: Racket Macros With define-syntax
  • Optional: Variables, Macros, and Hygiene
  • Optional: More Macro Examples
  • Section 5 Welcome Message
  • Notes and Tips for Section 5
  • Section 6 and Homework 5 (Second Module with Racket)
  • Datatype-Programming in Racket Without Structs
  • Datatype-Programming in Racket With Structs
  • Advantages of Structs
  • Implementing Programming Languages
  • What Your Interpreter Can and Cannot Assume
  • Implementing Variables and Environments
  • Implementing Closures
  • Optional: Are Closures Efficient?
  • Racket Functions As “Macros” For Interpreted Language
  • Section 6 Welcome Message
  • Notes and Tips for Section 6
  • Section 7 Including a Quiz
  • ML Versus Racket
  • What is Static Checking?
  • Soundness and Completeness
  • Weak Typing
  • Static Versus Dynamic Typing, Part One
  • Static Versus Dynamic Typing, Part Two
  • Optional: eval and quote
  • Part B Wrap-Up and Part C Preview
  • Section 7 Welcome Message
  • Quiz Instructions
  • Section 7 Quiz

Summary of User Reviews

Discover the world of programming languages with Programming Languages Part B by Coursera. This course has received high praise from users for its engaging curriculum and expert instructors. One key aspect that many users found particularly good is the practical approach to learning, which allows students to apply what they learn in real-world scenarios.

Pros from User Reviews

  • Engaging and interactive curriculum
  • Expert instructors with practical experience
  • Real-world applications of programming languages
  • Flexible schedule and self-paced learning
  • Great community support and resources

Cons from User Reviews

  • Some users found the course material to be too basic
  • Limited feedback and interaction with instructors
  • Some technical issues with the platform
  • Not suitable for advanced learners
  • Course content may not be relevant to all programming fields
English
Available now
Approx. 17 hours to complete
Dan Grossman Top Instructor
University of Washington
Coursera

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses