CSE206A: Lattices Algorithms and Applications (Spring 2014)

Schedule: Tue,Thu 11:00am-12:20pm in EBU3B (CSE) 4217
Section ID: 809063
Instructor: Daniele Micciancio
Office hour: by appointment

Course description

Point lattices are powerful mathematical objects that can be used to efficiently solve many important problems in computer science, most notably in the areas of cryptography and combinatorial optimization. This course gives a general introduction to the theory of point lattices, their algorithms, computational complexity, mathematical techniques, and applications to cryptography. Specific topics touched by the course include:

Prerequisites: The main prerequisites for the course are general mathematical maturity, knowledge of basic mathematics (mostly linear algebra, probability theory, and a little bit of calculus) and introductory level algorithms and complexity theory (analysis of algorithms, polynomial time solvability, NP-hardness, etc.) Some prior knowledge of cryptography is useful, but not strictly required. No prior knowledge of advanced complexity theory, Fourier analysis, or algebraic number theory is assumed, but you will learn a little bit about all this through the course.

Lectures Notes

Revised lecture notes and pointers to research papers and other reading material will be posted here as we cover the material in class. As a reference, see pointers to previous lecture notes and other courses in the external links section below.


Coursework for students enrolled in the course will include a small number of individual homework assignments (say, 3), and a group project to be executed in groups of 2 or 3 students. Projects should be discussed with the instructor during the 6th week of classes.