Spring 2019

Lecture Schedule

Topics link to slides, where available. Topics noted with (Recitation) are covered in recitation that week, not in lecture. You're responsible for everything listed on this schedule, some of which may not be covered in lecture or recitation.

Date Topics Reading and Resources Reminders
Scala Basics
Week 1
2019-01-07 Intro to CS2340 Getting Started
PIS, Ch 1
HW0 Released 2019-01-07
2019-01-09 Intro to Scala PIS, Ch 2
2019-01-11 Values and Variables Primary reading: PIS, Ch 2, 3, 5
Code: Basics
Registration Deadline (2019-01-11)
Week 2
2019-01-14 Scala Control Structures Primary reading: PIS, Ch 7
Code: Basics
HW0 Due 2019-01-15
Payment Deadline (2019-01-14)
2019-01-16 Scala Functions Primary reading: PIS, Ch 2.3, 8, 9
Code: Basics
2019-01-18 Scala Classes and Objects Primary reading: PIS, Ch 4, 6
Code: Basics
Software Engineering
Week 3
2019-01-21 MLK Day - No Class HW1 Released 2019-01-22
2019-01-23 Scala Functions Primary reading: PIS, Ch 2.3, 8, 9
Code: Basics
2019-01-25 Scala OOP PIS, Ch 10, 11
Verification of Participation (Faculty Only) (2019-01-25)
Week 4 (Dr. CS will be at AAAI-2019 all week)
2019-01-28 Project Logistics IntelliJ
Pro Git
SBT
2019-01-30 Project Logistics IntelliJ
Pro Git
SBT
HW1 Due 2019-01-31
2019-02-01 Sprint Planning (No Lecture) M0: Team Formation Due
Object-Oriented Design
Week 5
2019-02-04 Scala OOP PIS, Ch 10, 11
2019-02-06 Software Engineering
software-design

2019-02-08 Object-Oriented Design CA, Ch 7 - 11
GoF, Ch1 - 2
Week 6
2019-02-11 Project Launch
2019-02-13 SOLID Design CA, Ch 7 - 11
GoF, Ch1 - 2
2019-02-15 Scala OOP PIS, Ch 10, 11
Week 7
2019-02-18 Scala OOP PIS, Ch 10, 11
Progress Report Deadline (Faculty Only) (2019-02-18)
2019-02-20 Scala Case Classes PIS, Ch 15
2019-02-22 Scala Implicits PIS, Ch 21
Week 8
2019-02-25 Scala Play Framework Scala Play Documentation
2019-02-27 review1 M1 Due
2019-03-01 Exam 1
Advanced Scala
Week 9
2019-03-04 Project Work Day
2019-03-06 Scala Collections PIS, Ch 16, 17, 24, 25
2019-03-08 Scala Generics PIS, Ch 19
Week 10
2019-03-11 Scala Generics PIS, Ch 19
M2 Due 2019-03-12
2019-03-13 Testing PIS, Ch 14
ScalaTest
Testing Play Applications
Withdrawal Deadline (2019-03-13)
2019-03-15 Refactoring
Week 11
2019-03-18 Spring Break - No Class
2019-03-20 Spring Break - No Class
2019-03-22 Spring Break - No Class
Software Architecture
Week 12
2019-03-25 OO Design Patterns
Creational Design Patterns
GoF, Ch
GoF, Ch 3
2019-03-27 Structural Design Patterns
Behavioral Design Patterns
GoF, Ch 4
GoF, Ch 5
2019-03-29 Clean Code CC
M3 Due
Functional Design
Week 13
2019-04-01 Intro to Functional Programming in Scala Functional Programming in Scala, Ch 1, 2
2019-04-03 Project Work Day
2019-04-05 Clean Classes CC
Week 14
2019-04-08 scala-functional-abstraction
2019-04-10 Functional Data Structures Functional Programming in Scala, Ch 3
FP Scala Code
2019-04-12 Functional Data Structures Functional Programming in Scala, Ch 3
FP Scala Code
M4 Due
Week 15
2019-04-15 Functional Error Handling Functional Programming in Scala, Ch 4
2019-04-17 Functional Error Handling Functional Programming in Scala, Ch 4
2019-04-19 scala-functional-parallelism
Week 16
2019-04-22 Monoids
Monads
Applicative and Traversable Functors
Functional Programming in Scala, Ch 10
Functional Programming in Scala, Ch 11
Functional Programming in Scala, Ch 12
Final Instructional Days (2019-04-22)
Finals Week
2019-05-01 11:20 AM ‐ 2:10 PM M5: Final Delivery Due