CS Login

If you do not have a CS login or realize you are not on the course mailing list, please send an email to You will be responsible for any announcement made through the course mailing list.

Welcome to CS157

A single algorithmic improvement can have a greater impact on our ability to solve a problem than ten years of incremental improvements in CPU speed. We study techniques for designing and analyzing algorithms. Typical problem areas addressed include numerical computing, hashing, searching, dynamic programming, graph algorithms, network flow, and string parsing and matching.

Course Prerequisites

CS16, CS18 or CS19 and one of CS22 or CS45

Meeting Time

Lectures will be held every Monday, Wednesday, and Friday from 1:00 to 1:50 PM, in the Metcalf Auditorium.

Course Documents

Course Missive: pdf
Collaboration Policy: pdf

LaTeX links

We recommend using ShareLatex for collaboration on problem sets.

Download CS157 LaTeX Assignment Template (you are not required to use this template).

Installing: Download LaTeX for Windows (proTeXt), MacOS (MacTeX), and Linux (TeX Live).

Tutorial: A Not So Short Introduction to LaTeX2e (classic), Essential LaTeX (may be outdated).

Wiki-style Reference: LaTeX Wikibook, and AOPS LaTeX.

Symbols: An exhaustive list of LaTeX Symbols, or you consider a a shorter list, or use the awesome Detexify^2 - LaTeX symbol classifier that gives the LaTeX symbol based on handwriting input.

Typesetting Pseudocode: You may use Cormen's clrscode3e package (or the older version clrscode package). Alternatively, you may also consider the algorithmic package.