# Scheduling Algorithms

# Overview

Scheduling concerns the allocation of limited resources to tasks over
time. The resources and tasks may take many forms, ranging from
scheduling computational threads on a network of workstations to
assigning airline crews to various routes.
This class will study algorithms for scheduling
problems. We will start with some classic algorithms for simple
combinatorial problems, and then move onto some more recent algorithms and
different models including scheduling with energy considerations,
scheduling and game theory, and scheduling with resource augmentation.
In the course of studying scheduling problems, we will have the
opportunity to study, in depth, many important algorithmic ideas, such
as randomized algorithms, approximation algorithms and linear
programming relaxation, and online algorithms.
There will be several problem sets and a final paper, project or presentation.
The course will mainly meet during the first half of the semester with 2 ~2 hour classes per week.
The second half of the semester will be devoted to projects with several meetings towards the end of the semester for
presentations.
## Information

## Homework

## Course Announcements

- No class on Friday, September 30.

## Lecture Notes

- Lecture 1 , 9/8
- Lecture 2 , 9/9
- Lecture 3 , 9/15
- Lecture 4 , 9/16
- Lecture 5, 9/22
- Lecture 6, 9/23
- Lecture 7, 9/29
- Lecture 8, 10/6
- Lecture 9, 10/7
- Lecture 10 , 10/13
- Lecture 11 , 10/14
- Lecture 12 , 10/20
- Lecture 13 , 10/27
- Lecture 14 , 10/28