All entering students must prove academic competence in the following areas before being allowed to pursue the core courses. These areas are:
- Operating Systems
- Fundamental Algorithms
- Object-Oriented Programming
- Databases
- Discrete Mathematics
- Computer Organization
- Theoretical Computation
- Programming Languages
- Probability
Competence is defined as having successfully completed at least an undergraduate course in any area. Students who are admitted with deficiencies will be required to take certain graduate or undergraduate courses to compensate. Once sufficient academic background in these areas has been demonstrated to the Executive Officer, a student may begin to register for the required core courses.
Entering matriculants are required to take and pass a series of six core courses offered over two semesters. These courses are:
- CSc 70010 Analysis of Algorithms
- CSc 75010 Theoretical Computer Science
- CSc 71010 Programming Languages and Their Implementation
- CSc 72010 Parallel and Distributed Computing and Advanced Operating Systems
- CSc 74010 Logical Foundations of Artificial Intelligence
- CSc 80000 Readings in Computer Science
After completion of this sequence, a student is required to sit for the Program’s First Examination. This examination is offered only once per year, usually in early June. Following Graduate School rules, a student may sit for this exam only twice. Students who fail on their first attempt at this exam are required to audit all courses in the aforementioned sequence during the following academic year and re-take the First Exam at the end of the second sequence. Students who fail their second attempt at the exam are dismissed from the Program.