Getting Started + Functions & Evaluation-Getting Started
Course Introduction
()
Tools Setup (Please read)
Tools Setup for Linux
()
Tools Setup for Mac OS X
()
Tools Setup for Windows
()
Cheat Sheet
IntelliJ IDEA Tutorial
SBT tutorial and Submission of Assignments (Please read)
Learning Resources
Scala Tutorial
Scala Style Guide
Getting Started + Functions & Evaluation-Functions & Evaluation
Lecture 1.1 - Programming Paradigms
()
Lecture 1.2 - Elements of Programming
()
Lecture 1.3 - Evaluation Strategies and Termination
()
Lecture 1.4 - Conditionals and Value Definitions
()
Lecture 1.5 - Example: square roots with Newton's method
()
Lecture 1.6 - Blocks and Lexical Scope
()
Lecture 1.7 - Tail Recursion
()
Higher Order Functions-Higher Order Functions
Lecture 2.1 - Higher-Order Functions
()
Lecture 2.2 - Currying
()
Lecture 2.3 - Example: Finding Fixed Points
()
Lecture 2.4 - Scala Syntax Summary
()
Lecture 2.5 - Functions and Data
()
Lecture 2.6 - More Fun With Rationals
()
Lecture 2.7 - Evaluation and Operators
()
Data and Abstraction-Data and Abstraction
Lecture 3.1 - Class Hierarchies
()
Lecture 3.2 - How Classes Are Organized
()
Lecture 3.3 - Polymorphism
()
Types and Pattern Matching-Types and Pattern Matching
Lecture 4.1 - Objects Everywhere
()
Lecture 4.2 - Functions as Objects
()
Lecture 4.3 - Subtyping and Generics
()
Lecture 4.4 - Variance (Optional)
()
Lecture 4.5 - Decomposition
()
Lecture 4.6 - Pattern Matching
()
Lecture 4.7 - Lists
()
Lists-Lists
Lecture 5.1 - More Functions on Lists
()
Lecture 5.2 - Pairs and Tuples
()
Lecture 5.3 - Implicit Parameters
()
Lecture 5.4 - Higher-Order List Functions
()
Lecture 5.5 - Reduction of Lists
()
Lecture 5.6 - Reasoning About Concat
()
Lecture 5.7 - A Larger Equational Proof on Lists
()
Collections-Collections
Lecture 6.1 - Other Collections
()
Lecture 6.2 - Combinatorial Search and For-Expressions
()
Lecture 6.3 - Combinatorial Search Example
()
Lecture 6.4 - Maps
()
Lecture 6.5 - Putting the Pieces Together
()
Conclusion
()