# Using Graphs to Model Problems, Part 2

« Previous | Next »

## Session Overview

 This lecture returns to graph theory. It defines and gives examples of some classic graph problems: shortest path, shortest weighted path, cliques, and min-cut. It then shows how memoization can be used to speed up some algorithms. Centers for Disease Control and Prevention. This image is in the public domain.

## Session Activities

### Lecture Videos

Topics covered: Dynamic programming, optimal path, overlapping subproblems, weighted edges, specifications, restrictions, efficiency, pseudo-polynomials.

### Recitation Videos

Topics covered: Node graphs, nodes, edges, directed and undirected graphs, weighted edges, depth-first search, breadth-first search, graph cycles, children of nodes, shortest path, lambda functions.

## Check Yourself

What is memoization?

Memoization involves saving work that we’ve done to a table, so that in the future, we can look it up rather than recalculating.

Why is memoization important?

It helps us avoid redoing work that we have already done, thereby making programs more efficient. It is the key idea behind the programming techniques known as dynamic programming.

## Problem Sets

### Problem Set 10: Clustering (Due)

Every decade, the United States Census takes place. The census collects a lot of information from the population around the United States. In this problem set, we are going to use k-means clustering to analyze this information.

Note: Solutions are not available for this assignment.

### Problem Set 11 (Assigned)

Problem set 11 is assigned in this session. The instructions and solutions can be found on the session page where it is due, Lecture 24 Avoiding Statistical Fallacies.

« Previous | Next »

#### Learning Resource Types

theaters Lecture Videos
theaters Recitation Videos
assignment_turned_in Problem Sets with Solutions