The Bachelor of Science in Computer Science at the University of Virginia offers students a comprehensive and rigorous education in core principles and cutting-edge advancements in computing technology. This program is designed to equip students with a strong foundation in both theoretical and practical aspects of computer science, preparing them for diverse careers in industry, research, and academia. The curriculum covers fundamental topics such as algorithms, data structures, computer architecture, programming languages, and software engineering, ensuring graduates develop a deep understanding of how computer systems operate and how to develop efficient, reliable software solutions.
In addition to these core areas, students have the opportunity to explore specialized fields including artificial intelligence, machine learning, cybersecurity, databases, human-computer interaction, and computer graphics. The program emphasizes hands-on experience through collaborative projects, lab work, and internships, allowing students to apply their knowledge in real-world settings. Furthermore, the curriculum encourages interdisciplinary learning, enabling students to integrate principles from mathematics, engineering, and the sciences to address complex problems.
The University of Virginia's Computer Science program also promotes research engagement through faculty-led projects, fostering critical thinking and innovation. Students are encouraged to participate in research initiatives, attend seminars, and present their work at conferences, which enhances their academic and professional development. The program curriculum is regularly updated to include emerging trends and technologies, ensuring graduates are well-prepared for the rapidly evolving tech landscape.
Students benefit from a vibrant community of scholars, state-of-the-art facilities, and extensive resources that support their educational journey. The university’s strong industry connections and alumni network facilitate internship and job placement opportunities across leading tech companies and startups. Upon graduation, students are well-equipped to pursue advanced degrees, or to launch successful careers as software developers, systems analysts, data scientists, cybersecurity specialists, or entrepreneurs in the technology sector.
With a focus on fostering innovation, critical problem-solving skills, and ethical considerations in computing, the University of Virginia’s Computer Science program prepares its graduates to be leaders and innovators in the digital age. Whether students aim to design groundbreaking software, analyze complex data, or develop new computing technologies, this program provides the tools, mentorship, and environment necessary to achieve their goals and make meaningful contributions to society.
- at least 24 credits of graded graduate-level coursework, containing
- one graded graduate-level mathematics course (may be satisfied by transfer credit), MATH and APMA courses are acceptable, “Introduction to Machine Learning and Data Mining” (CS 6501) is acceptable and other non-CS graduate courses with a significant mathematical component can also satisfy this requirement with the prior written approval of the graduate program director
- no more than 6 credits from 5000-level courses, none of which are from the CS department
- at least 6 credits of graded graduate-level coursework in excess of that required for the Master’s degree (if possessing or obtaining a Master’s degree)
- The remaining 48 graduate-level credits are typically satisfied via graduate teaching and research hours such as CS 9999.
- Completion of the Qualifying Examination
- Completion of the PhD Proposal
- Completion of the Oral Defense of the written Dissertation
- Finally, complete the “Graduate Student Leave Request” form to leave the program.
- These requirements have significant overlap with the MCS and MS degree requirements;
- many students choose to earn one of those Master’s degrees as part of their PhD studies.
- SEAS does not limit PhD transfer credit, but all transfer credits must be approved by the student’s PhD committee. Students should not assume that transfer courses will be accepted prior to curriculum committee approval.
- Students may take additional courses beyond those required for graduation.
Courses
- CS 5010 - Programming and Systems for Data Science
- CS 5012 - Foundations of Computer Science
- CS 5014 - Computation as a Research Tool
- CS 5487 - Real-Time Systems
- CS 5501 - Selected Topics in Computer Science
- CS 5787 - Security in Information Systems
- CS 6160 - Theory of Computation
- CS 6161 - Design and Analysis of Algorithms
- CS 6190 - Computer Science Perspectives
- CS 6240 - Software Engineering
- CS 6316 - Machine Learning
- CS 6354 - Computer Architecture
- CS 6415 - Performance Analysis of Communication Networks
- CS 6444 - Introduction to Parallel Computing
- CS 6456 - Operating Systems
- CS 6501 - Special Topics in Computer Science
- CS 6610 - Programming Languages
- CS 6620 - Compilers
- CS 6750 - Database Systems
- CS 6840 - Computer Graphics
- CS 6993 - Independent Study
- CS 7457 - Computer Networks
- CS 7501 - Selected Topics in Computer Science
- CS 7620 - Advanced Compilers
- CS 7993 - Independent Study
- CS 7995 - Supervised Project Research
- CS 8501 - Special Topics in Computer Science
- CS 8524 - Topics in Software Engineering
- CS 8535 - Topics in Computer Architecture
- CS 8561 - Topics in Programming Languages
- CS 8575 - Topics in Database Systems
- CS 8897 - Graduate Teaching Instruction
- CS 8999 - Thesis
- CS 9897 - Graduate Teaching Instruction
- CS 9999 - Dissertation
Background in Computer Science
The Department of Computer Science does not require that applicants hold a bachelor's degree in Computer Science. However, applicants are expected to have a strong background in Computer Science.
A suitable background would include courses in the following core areas:
- Data Structures
- Discrete Mathematics
- Assembly Language and Computer Organization
- Programming in a procedural language such as C, C#, C++, or Java.
Applicants are also expected to have taken several (but not necessarily all) courses in specialized areas:
- Operating Systems
- Programming Languages
- Algorithms
- Compilers
- Artificial Intelligence
- Computer Networks
- Automata and Formal Languages
- Software Engineering
A year of college-level Calculus is also required. In general, experience gained working is not considered equivalent to successful completion of the courses listed above.
Grade Point Average
There is no minimum GPA required for admission. However, most applicants who are offered admission to our program have a GPA of at least 3.2 (out of 4.0). The grades in Computer Science, mathematics and related courses are more important than the overall GPA.
GRE Scores
GRE scores are required. The CS subject test GRE is not required (it is no longer even offered).
GRE Scores Taken on or after August 1, 2011 - Average Scores of Successful Applicants
Verbal | 156 on a scale of 130 - 170 |
Quantitative | 160 on a scale of 130 - 170 |
Analytical Writing | 3.5 on a scale of 0 - 6 |
Letters of Reference
If possible, letters of references should be written by faculty at a university previously attended. Letters of reference from Computer Science faculty are preferred, but references from employers are welcome. References should pay particular attention to academic achievements and evidence of independent, creative problem solving.
TOEFL Scores
- If you received a 4-year degree at an English-speaking institution (whether or not the institution is in the U.S.), TOEFL is not required.
- If you received a 4-year degree at a non-English-speaking institution and a Masters degree from an English-speaking institution, TOEFL is required.
A score of at least 90 on the TOEFL iBT is preferred. It is rare that we offer admission to an applicant who scored less than 22 on the Speaking section of TOEFL. Scores can be sent electronically to UVa at institution code 5820. Some students with lower scores may be required to complete the UVA Summer English for Academic Purposes Program prior to admission.
Want to improve your English level for admission?
Prepare for the program requirements with English Online by the British Council.
- ✔️ Flexible study schedule
- ✔️ Experienced teachers
- ✔️ Certificate upon completion
📘 Recommended for students with an IELTS level of 6.0 or below.
Scholarships
The U.Va. School of Engineering and Applied Science offers financial support to graduate students through assistantships and fellowships ordinarily consisting of a stipend and payment of all tuition and fees including health insurance. Most superior students in research degree programs (Master of Science and Ph.D.) can expect to receive aid of some kind for up to five years, though support will vary by department and funding source. Students must be nominated by their department to be considered for a fellowship or assistantship. Students receiving financial aid from the School of Engineering and Applied Science must be registered as full-time graduate students during the period of the award, defined as at least 12 credits of lecture-laboratory courses and/or research during the academic year, must maintain a cumulative grade point average of 3.0 and must also maintain satisfactory progress toward a degree. Graduate research assistants must register for a minimum of 6 credits of research during the summer term. Students receiving financial aid are not permitted to have other employment without approval of the Office of Associate Dean for Graduate Programs. Students are awarded financial assistance to enable them to devote maximum effort to graduate studies. Financial aid for graduate students is available in several forms:
Graduate Research Assistantships
Graduate Research Assistants are assigned to work with a faculty member on a specific research project which should culminate in a project report, thesis, or dissertation. Full-time graduate research assistants may not carry a load of more than 9 credits of lecture-laboratory courses but must register each semester for enough additional credits of teaching/research to maintain full-time student status.
Graduate Teaching Assistantships
Graduate Teaching Assistants are assigned to assist a faculty member teaching a specific lecture/laboratory course. The assigned duties will depend on the course and instructor. Graduate teaching assistants may not carry a load of more than 9 credits of lecture-laboratory courses but must register each semester for enough teaching/research credit to maintain full-time student status.
Fellowships
Fellowships are intended to allow graduate students to devote full time to learning opportunities in the classroom and laboratory. No work duties, in a pay for service sense, are required, but good academic progress, including research for the thesis or dissertation, is essential. Some programs, during fellowship support, will include research and teaching duties as part of the usual academic requirements for the degree. Stipends are competitive with those offered by other universities.
The Bachelor of Science in Computer Science at the University of Virginia is a comprehensive undergraduate program designed to equip students with a solid foundation in the principles and practices of computing. The curriculum encompasses a wide range of topics including programming, algorithms, data structures, computer architecture, software engineering, databases, operating systems, and artificial intelligence. Students have opportunities to engage in hands-on projects, internships, and research activities, fostering practical skills and innovative thinking. The program emphasizes both theoretical understanding and real-world application, preparing graduates for careers in technology, research, or advanced studies. The university provides state-of-the-art laboratories and facilities, enabling students to work with the latest tools and technologies. Faculty members are active researchers and industry professionals, offering mentorship and guidance on cutting-edge advancements in computer science. The program also offers various specialization areas such as cybersecurity, data science, machine learning, and human-computer interaction, allowing students to tailor their education to their interests and career goals. In addition to technical coursework, students develop critical thinking, problem-solving, and communication skills essential for leadership roles in the technology industry. The university supports students through career services, workshops, and networking events, helping them transition from academic to professional environments successfully. Graduates of the program are well-prepared for employment in diverse sectors including software development, information technology, finance, healthcare, and academia. They may also choose to pursue graduate studies or research positions. Overall, the Computer Science program at the University of Virginia offers a rigorous and dynamic educational experience that aligns with industry standards and emerging technological trends, fostering innovation and adaptability among its students.