The? program balances theory with practice, and equips the student with advanced knowledge and skills to design, implement, and evaluate computer-based systems to solve problems. The program provides the necessary flexibility to accommodate students with various backgrounds, including computer professionals who want to expand their understanding of computer science, as well as individuals whose undergraduate degrees are not in computer science but who wish to broaden their knowledge in computing. The program also provides the background necessary to continue the study of computer science at the doctoral level.