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 (in Part A), Racket (in Part B), and Ruby (in Part C) 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 repo contains my solutions for this course.
-
Part A: ML and Functional Pragramming
- Week 2 - Homework 1 - ML Functions, Tuples, Lists, and More: 100/100
- Week 3 - Homework 2 - Datatypes, Pattern Matching, Tail Recursion, and More: 100/100
- Week 4 - Homework 3 - First-Class Functions and Closures: 100/100
- Week 5 - Part A - Exam 100/100
-
Part B: Racket and Dynamically Typed Language
- Week 1 - Homework 4 - Racket, Delaying Evaluation, Memoization, Macros: 100/100
- Week 2 - Homework 5 - Structs, Implementing Languages, Static vs. Dynamic Typing: 100/100
- Week 3 - Section Quiz: 100/100
-
Part C: Ruby and Object-Oriented Language
- Week 1 - Homework 6 - Ruby, Object-Oriented Programming, Subclassing: 100/100
- Week 2 - Homework 7 - Program Decomposition, Mixins, Subtyping, and More: 100/100
- Week 3 - Final Exam: 100/100