The Master of Arts in computer science includes courses in four areas of study: software, theoretical foundations, hardware, and mathematical applications and algorithms. The software area is the primary focus of the program and includes courses in fundamental algorithms, software design, database systems, distributed software systems, operating systems, compiler design, graphics, information organization and retrieval, and artificial intelligence. The Theoretical Foundations courses include the mathematical treatment of such topics as formal language theory, automata theory, and computability theory.