CS 355 - Fall 2023: Schedule

Weekly Schedule

This is a tentative schedule of course topics and class periods, and it is subject to change.
Refer to the course's Moodle for up-to-date details.

Wk Date Plan
1 08/29 Tue Overview: Language Features, "Paradigms"
08/31 Thu
2 09/05 Tue Syntax, Semantics, Parsing, & Interpretation
09/07 Thu
3 09/12 Tue Functional Programming
  • Recursion
  • First-class functions
  • Lexical scope / closures
  • Callback functions
  • Lambdas / anonymous functions
  • Currying / partial application
09/14 Thu
4 09/19 Tue Exam 0
09/21 Thu Functional Programming (cont.)
5 09/26 Tue
09/28 Thu
6 10/03 Tue Exam 1
10/05 Thu Types & Typing
  • Static vs Dynamic
  • Type inference
  • Union types
  • Algebraic datatypes
  • Pattern matching
7 10/10 Tue
10/12 Thu
8 10/17 Tue
10/19 Thu
9 10/24 Tue Memory Management & Safety
  • Manual
  • Reference counting
  • Tracing garbage collection
  • Rust's ownership model
10/26 Thu
10 10/31 Tue
11/02 Thu
11 11/07 Tue Object Oriented Programming (OOP)
  • Inheritance
  • Interfaces, traits, mixins
  • Generics, polymorphism
11/09 Thu
12 11/14 Tue Exam 2
11/16 Thu Object Oriented Programming (cont.)
13 11/21 Tue
11/23 Thu Thanksgiving Break
14 11/28 Tue Application Styles
  • Asynchronous
  • Reactive
  • Backtracking
  • Lazy
11/30 Thu
15 12/05 Tue Evaluating & Choosing Languages
12/07 Thu
16 12/14 Thu 10:15am-12:15pm — Final exam period (moved)
12/15 Fri 10:15am-12:15pm — [original final exam period]