Grade of C or better in CS-310 (Data Structures) and CS-330 (Formal Methods and Models). Specifically: good background in discrete mathematics (e.g., set theory and mathematical logic), programming (good knowledge of C or Java), data structures and algorithms, and computer architecture and operating systems. Note: prerequisites are strictly enforced!