Whether you're arriving with a prior graduate degree or coming from outside computer science, this page covers what you need to know at the start of your PhD: how prior coursework is evaluated for transfer credit, what leveling may be required, and the program policies every student and GRA should understand.
Students who enter the program with prior graduate coursework may be eligible to transfer credit toward the degree or waive degree requirements. The program evaluates each student individually at admission to assess which courses can be applied.
Transfer evaluation is managed by the program director after admission. The official DegreeWorks auditing system does not correctly show transfer waivers, so the program director will send you information on your applied transfer credits individually.
Students entering without a BS or MS in Computer Science or a closely related field will meet with the program director and their adviser to discuss which leveling courses they need in order to be successful. Undergraduate leveling courses may be taken for credit or audited. The only reason to take them for credit is if there are not enough graduate-level courses you are ready for to satisfy your full-time hours requirement.
The heart of any Computer Science undergraduate program is Data Structures & Algorithms, which combines programming with algorithmic analysis and proof techniques to equip students to analyze, evaluate, and design computational processes. Students entering without a CS background will most likely need to take or audit CSCI 3333.
Students from a STEM background who have already taken higher-level math (calculus, linear algebra, differential equations) typically have the mathematical maturity to start CSCI 3333 directly. Others may need to take or audit CSCI 3310 first to build the discrete math foundation.
Programming skills are a prerequisite for nearly every course in the program.
Since CSCI 3333 is taught in C++, students who need to take or audit that class need to learn C++ before or alongside it. There are plenty of resources to do this on your own, or you can audit CSCI 2380.
Online resources:
Traditional textbook:
Undergraduate course to take or audit:
Most research work in ML and AI uses the Python programming language. Learning python on your own is good preparation and also good practice with a higher-level programming language.
The required ML/AI courses (CSCI 6344, CSCI 6366, or CSCI 6379) do not assume prior ML experience. Those courses provide the basic skills and knowledge in this area for other, more advanced courses. They do however have recommenations for basic programming and mathematics background.
Graduate research and coursework in computer science is heavily founded on mathematics and formalism. Students must be prepared in subjects such as calculus, linear algebra, and probability & statistics. Students from a STEM background have likely already taken these courses as an undergraduate. If you have not, self-directed online resources and undergraduate MATH courses are available as needed.
A strong background in probability & statistics is increasingly valuable for modern CS research. Students should consider graduate MATH courses appropriate to their research area as interdisciplinary electives.
All PhD students are required to train and contribute to the teaching mission of the department. There are two ways to fulfill this requirement:
Teaching or TAing is not paid as a separate position. It is part of the program requirements. Students who are also Lecturers with the University fulfill the requirement through their normal teaching duties.
The university's Graduate College academic probation and suspension policies ↗ apply to PhD students.
Your GRA is a job. Like any job, you are expected to show up, do the work, and meet the expectations your employer sets. Your adviser has the right to dismiss you from their research group if you are not meeting those expectations.
The program asks advisers to conduct regular evaluations of their students and to provide a warning and a reasonable probationary period before dismissal, except in cases of serious misconduct. If you are struggling, communicate with your adviser early — problems are much easier to address before they escalate.
If you lose your adviser, you cannot continue in the PhD program without finding another adviser willing to take you on. The program will give you a limited time to find a replacement. If you cannot, your options are: