Programming Languages is a course intended to teach many important principles in programming with a strong emphasis in functional programming.
Among the most interesting concepts are the contrasts between static and dynamic typing (and type inference), and the contrasts between functional programming and object-oriented programming. But The course covers other fundamental concepts like mutability / immutability, algebraic data types and pattern matching, recursion and tail recursion, first-class functions and closures, high-order programming, currying, modules, parametric polymorphism, thunks and lazy evaluation, streams, memoization, macros, object-oriented inheritance, mixins, and many other interesting topics.
Every week a set of topics is covered in great detail in a series of videos that may have a length between 10 to 20 minutes. The material is…
View original post 1,148 more words