Getting Started + Functions & Evaluation-Getting Started
Course Introduction
()
Working on Assignments
Tools Setup (Please read)
Scala 3 REPL and Worksheets
Cheat Sheet
SBT tutorial and Submission of Assignments (Please read)
Learning Resources
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
Week 2: Introduction
()
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
()
2.7 - Evaluations and Operators
()
Data and Abstraction-Data and Abstraction
Week 3: Introduction
()
Lecture 3.1 - Class hierarchies
()
Lecture 3.2 - How classes are organized
()
Lecture 3.3 - Polymorphism
()
Lecture 3.4-Objects Everywhere
()
Lecture 3.5-Functions as Objects
()
Types and Pattern Matching-Types and Pattern Matching
Week 4: Introduction
()
Lecture 4.1 - Decomposition
()
Lecture 4.2 - Pattern Matching
()
Lecture 4.3 - Lists
()
Lecture 4.4 - Enums
()
Lecture 4.5 - Subtyping and Generics
()
Lecture 4.6 - Variance
()
Lists-Lists
Week 5: Introduction
()
Lecture 5.1 - A Closer Look at Lists
()
Lecture 5.2 - Tuples and Generic Methods
()
Lecture 5.3 - Higher-order list functions
()
Lecture 5.4 - Reduction of Lists
()
Lecture 5.5 - Reasoning about lists
()
Collections-Collections
Week 6: Introduction
()
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
()