Course information |
|
Institution | University of Washington |
Course | Programming Languages |
Date | Autumn 2013 |
Platform | coursera |
Course content |
|
Topics | Syntax vs. semantics vs. idioms vs. libraries vs. tools
ML basics (bindings, conditionals, records, functions) Recursive functions and recursive types Benefits of no mutation Algebraic datatypes, pattern matching Tail recursion Higher-order functions; closures Lexical scope Currying Syntactic sugar Equivalence and effects Parametric polymorphism and container types Type inference Abstract types and modules Racket basics Dynamic vs. static typing Laziness, streams, and memoization Implementing languages, especially higher-order functions Macros Eval Ruby basics Object-oriented programming is dynamic dispatch Pure object-orientation Implementing dynamic dispatch Multiple inheritance, interfaces, and mixins OOP vs. functional decomposition and extensibility Subtyping for records, functions, and objects Class-based subtyping Subtyping Subtyping vs. parametric polymorphism; bounded polymorphism |
Format | Lecture videos
Readings Programming Assignments Peer Assessments Midterm Exam Final Exam |
Target group | Beginner
Advanced Expert |
Workload |
|
Length | 11 weeks |
Weekly workload | 12 hours/week |
Rating |
|
Overall impression | 9/10 |
Summary | This course was really exciting. Dan Grossman has explained the background and ideas of programming languages by using three different programming languages: ML, Racket and Ruby. I manly use C# and therefore a static typed object oriented language. By learning the concepts of these other languages I could increase my knowledge about programming languages and I have already used a lot of the learned topics in my daily business. I will recommend this course to each advanced software developer. |
-
Aktuelle Beiträge
Archiv
- März 2020 (1)
- Januar 2020 (1)
- November 2019 (1)
- Oktober 2019 (1)
- September 2019 (2)
- August 2019 (1)
- Juli 2019 (2)
- Juni 2019 (2)
- Mai 2019 (2)
- April 2019 (2)
- März 2019 (3)
- Februar 2019 (2)
- Januar 2019 (2)
- Dezember 2018 (3)
- November 2018 (2)
- Oktober 2018 (2)
- September 2018 (2)
- August 2018 (1)
- Juli 2018 (3)
- Juni 2018 (1)
- Mai 2018 (3)
- April 2018 (5)
- März 2018 (4)
- Februar 2018 (4)
- Januar 2018 (3)
- Dezember 2017 (4)
- November 2017 (4)
- Oktober 2017 (5)
- September 2017 (3)
- August 2017 (3)
- Juli 2017 (5)
- Juni 2017 (1)
- Mai 2017 (4)
- April 2017 (5)
- März 2017 (3)
- Februar 2017 (3)
- Januar 2017 (4)
- Dezember 2016 (2)
- November 2016 (2)
- Oktober 2016 (2)
- September 2016 (2)
- August 2016 (2)
- Juli 2016 (2)
- Juni 2016 (3)
- Mai 2016 (4)
- April 2016 (4)
- März 2016 (4)
- Februar 2016 (4)
- Januar 2016 (5)
- Dezember 2015 (4)
- November 2015 (5)
- Oktober 2015 (3)
- September 2015 (4)
- August 2015 (4)
- Juli 2015 (4)
- Juni 2015 (4)
- Mai 2015 (5)
- April 2015 (4)
- März 2015 (5)
- Februar 2015 (5)
- Januar 2015 (6)
- Dezember 2014 (5)
- November 2014 (7)
- Oktober 2014 (7)
- September 2014 (8)
- August 2014 (7)
- Juli 2014 (4)
- Juni 2014 (5)
- Mai 2014 (4)
- April 2014 (4)
- März 2014 (5)
- Februar 2014 (5)
- Januar 2014 (5)
- Dezember 2013 (5)
- November 2013 (6)
- Oktober 2013 (6)
- September 2013 (5)
- August 2013 (6)
- Juli 2013 (7)
- Juni 2013 (4)
- Mai 2013 (8)
- April 2013 (9)
- März 2013 (10)
- Februar 2013 (11)
- Januar 2013 (14)
Kategorien
Meta