Fall 2017

- Optimization Methods 50:198:461, 56:198:561
Introduction to various methods based on linear programming (LP) to solve discrete optimization problems. The topics covered include introduction to non-linear optimization, and especially linear optimization (linear programming with the simplex algorithm); network flows, and application of LP-based techniques to solve certain optimization problem. Prerequisites: 50:640:121 or 50:640:130; and 50:640:250.
Required textbook:   J. Matoušek, B. Gärtner, Understanding and Using Linear Programming, Springer (2007).

- Crytography and Computer Security 50:198:475, 56:198:575
Secret-key cryptography, one-way function, cryptographic hash functions; public-key cryptography, key agreement, digital signatures; secret sharing; message and user authentication; key management; attacks; practical applications to computer and communications security. Prerequisites: 50:198:113; and 50:640:237 or 50:198:171.
Required textbooks:
A. Menezes, P. van Oorschot and S. Vanstone, Handbook of applied cryptography, CRC Press (1996)   (see ).
N. Ferguson, B. Schneier, and T. Kohono, Cryptography Engineering, Wiley (2010).

[Reference page on C, Unix, Python, etc.:   Ref. page.]


Computational complexity, cryptography and computer security (graphical passwords), automata theory, complexity of problems in combinatorial group theory; publications.

The Graphical Passwords Project in cooperation with D. Hong, N. Memon, S. Man, and S. Wiedenbeck: page.