# Schedule

The schedule and assignments may be changed until officially covered in class. You are certainly free to work ahead; just be mindful if things do end up changing!

You may encounter some symbols. Here is what they mean:

⊕: key concepts you should be familiar with

▲: additional links to check out

## Unit 1: Getting Started

- Setting up the Environment
- Taste of Scala
- Warm Ups / Review

## Unit 2: Data Structures

- Linear Structures
- Quiz

- Associative Structures
- Lab 2

## Unit 3: Algorithms

- Time and Space Complexity
- Recursion and Induction
- Quiz

- Searching and Sorting
- Lab 3

## Unit 4: Automata Theory

- Trees and Graphs
- Deterministic Finite Automata
- Quiz

- Turing Machines
- Computational Complexity
- Lab 4

## Unit 5: Hardware

- Computer Architecture
- Assembly Language
- Quiz

- Debugging
- Lab 5