# Homeworks

## Homework 0

This is an optional homework, meant to refresh your Python skills. Submit on **Gradescope by Feb. 24th at 12pm (noon) US EST.**

**Download**: Homework 0.

## Homework 1

This is a homework on basic `bash`

usage. Submit on **Gradescope by Monday, March 8th at 12pm (noon) US EST.**

**Download**: Homework 1.

**Solutions**: Homework 1 solutions.

## Homework 2

This is a homework focused on algorithms. Submit on **Gradescope by Monday, March 22nd at 12pm (noon) US EST.**

**Download**: Homework 2.

**Solutions**: Homework 2 solutions.

## Homework 3

This homework focuses on algorithms for big data. Submit on **Gradescope by Friday, April 9th at 11:59pm (midnight) US EST.**

**Download**: Homework 3.

**Solutions**: Homework 3 solutions.

Some skeleton code for Problem 1 is available here, and a function for generating the prime numbers for Problem 3 is available here.

**Update**: Some clarifications have been added (in blue color) to the handout since Saturday, April 4th.

## Homework 4

For this homework, you will have to create a **private** repository on Cornell's Github with documentation and unit tests
for an algorithm or data structure of your choice, and solve some simple problems using `threading`

and `multiprocessing`

.
Submit on **Gradescope by Thursday, April 22nd Friday, April 30th at 11:59pm (midnight) US EST.**

**Download**: Homework 4.

**Solutions**: Homework 4 solutions.

## Homework 5

This homework consists of 2 short problems on MapReduce and a problem on SQL.
Submit on **Gradescope by Friday, May 14th at 11:59pm (midnight) US EDT**.

**Download**: Homework 5.

Some start code for Problem 2 can be found here, and for the first part of Problem 3 here.