Course: Programming Languages
Descriptions
- Offered By: University of Washington
- Prerequisites: How to Code (Check OSSU for details)
- Programming Languages: N/A
- Language: English
- Class Hour: N/A
- Projects: N/A
- Exercises: N/A
- Difficulty: N/A
- Depth: N/A
- Breadth: N/A
Course Reviews
- Makes one able to skim through programming languages documentation easily as most concepts are taught. Course leans more to CS than to SW as it teaches Functional Programming. Have medium-sized projects.
Course Resources
- Programming Languages, Part A: Link
- Programming Languages, Part B: Link
- Programming Languages, Part C: Link
Topics Covered
- programming concepts:
- Mutation
- References/Pointers: (Pairs, Tuples, Records)
- Polymorphism (Functional, OOP, Bounded), Datatype Binding,
- Type Inference (Implicit Typing, Explicit Typing),
- Weak Typing, Strong Typing
- Duck Typing, Method Overriding
- Dynamic Dispatch
- Double Dispatch
- Interpreter
- programming paradigms: (
functional programming
,OOP
) - functional programming:
- Recursion
- Mutual Recursion
- Tail Recursion
- Shadowing
- Case Expression (AKA Pattern Matching)
- High Order Function,
map
,filter
,fold
,lexical scope
,dynamic scope
, Stream, Lazy Evaluation, Eager Evaluation, Memoization, Tokenization - Subtyping (Functional Sutyping, OOP Sutyping), Generics
- ML-family languages (via Standard ML)
- Lisp-family languages (via Racket)
OOP
- Ruby`:
- Classes
- Object State
- Arrays
- Blocks
- Hashes & Ranges
- Subclassing: (Inheritance in java)
- Mixins
- universal libraries`: (File Stream, I/O Stream, Math)
- tools`: (Read Evaluate Print Loop (REPL), Debugger)