Course

Programming Languages, Part C

University of Washington

Embark on a transformative journey through the world of programming languages with the "Programming Languages, Part C" course. This advanced segment, the final part of a comprehensive 3-part series, focuses on functional programming, leveraging languages such as ML, Racket, and Ruby to explore fundamental concepts while imparting a broader understanding of language constructs and effective program design. Participants are guided through a rich learning experience that transcends the confines of syntax, emphasizing the development of robust, reusable, composable, and elegant programs.

The course assumes prior programming experience and successful completion of Parts A and B. Through a structured approach, learners are empowered to grasp the underpinnings of modern languages, paving the way for effective programming in any context. With a strong emphasis on functional programming, participants delve into the roots of pivotal ideas and emerge equipped to build software with a fresh and beautiful perspective.

Unveil the potential of programming languages, cultivate a deeper understanding of software development, and unleash your creativity in building innovative solutions. Join this transformative course to elevate your programming prowess and embrace the art of elegant program design.

Certificate Available ✔

Get Started / More Info
Programming Languages, Part C
Course Modules

Programming Languages, Part C comprises modules that cover advanced topics in functional programming, including Ruby, ML, and Racket. Dive into OOP, functional decomposition, subtyping, and more.

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

This module introduces participants to the course and provides essential information, including software installation instructions for Ruby, SML, and Emacs. It sets the stage for the advanced concepts and topics covered throughout the course.

  • Introduction, Course-Wide Information, and Software Installation (Start Here)
  • Overview of Part C Concepts
  • Part C Course Structure
  • Start Here!
  • Part C Software Installation and Use: Ruby and irb
  • Installing and Using SML and Emacs

Section 8 and Homework 6 (First Module with Ruby)

This module delves into the intricacies of Ruby, covering classes, objects, state, visibility, and more. Participants explore a longer example, understand the dynamic nature of class definitions, and learn about important concepts like duck typing, blocks, and procs.

  • Section 8 and Homework 6 (First Module with Ruby)
  • Homework 6 Instructions
  • Practice Problems for Another Game in Ruby
  • Homework 6 Peer Review

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

This module focuses on the lesson choices related to Section 8 and Homework 6, providing participants with additional resources and activities to reinforce their understanding of the concepts covered in the first module with Ruby.

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

Section 9 and Homework 7 (Second Module With Ruby)

Participants explore advanced topics in Ruby, including OOP versus functional decomposition, double dispatch, multiple inheritance, mixins, interfaces, and more. This module also includes instructions and activities for Homework 7, enabling learners to apply their knowledge effectively.

  • Section 9 and Homework 7 (Second Module With Ruby)
  • Homework 7 Instructions
  • Practice Problem for Double Dispatch and ML-to-Ruby
  • Homework 7

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

This module encompasses Section 9 and Homework 7 lesson choices, offering participants additional resources and activities to deepen their understanding of the concepts covered in the second module with Ruby.

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

Section 10, Final Exam, and Course Wrap-Up

The final module covers advanced concepts such as subtyping, subtype relations, function subtyping, and more. Participants also encounter the final exam and receive guidance on summarizing the course material, culminating in a comprehensive understanding of the course content.

  • Section 10, Final Exam, and Course Wrap-Up
  • Information About the Exam (Required Reading)
  • Actual Final Exam
  • Practice Final Exam
More Software Development Courses

Java Programming and Software Engineering Fundamentals

Duke University

Embark on your journey into software development with this comprehensive introduction to Java programming and software engineering fundamentals.

CUDA at Scale for the Enterprise

Johns Hopkins University

Learn to develop scalable GPU and CPU applications with CUDA at Scale for the Enterprise course.

Implementando un motor con Alibaba Cloud y ElasticSearch

Coursera Project Network

Learn to implement a powerful search engine using Alibaba Cloud and ElasticSearch in just 1 hour.

Exam Prep CKA: Certified Kubernetes Administrator

Whizlabs

Prepare for the CKA: Certified Kubernetes Administrator exam with this comprehensive 7+ hour training covering core concepts, storage, networking, scaling workloads,...