Virginia Tech™home

Undergraduate Programs

About the undergraduate program

Students from around the world come to study computer science at Virginia Tech because of the extensive course offerings and cutting-edge research opportunities. From student organizations such as the Association for Women in Computing, CS-Squared and the Association for Computing Machinery to research projects using the latest technology, there are always opportunities and challenges to help today's students become the technology leaders and innovators of tomorrow.

The Bachelor of Science degree in Computer Science is accredited by the Computing Accreditation Commission of ABET,

Program objectives and student outcomes

Part of the accreditation process is a clear statement of program objectives and desired outcomes for graduates. 

Our graduates go on to succeed in many career and life paths. However, as the Department of Computer Science we focus on enabling graduates to excel in specific ways, identified in our Program Educational Objectives (PEOs). These PEOs describe what graduates of the Virginia Tech Computer Science program are expected to attain within a few years after graduation.

Within a few years of graduation, alumni will have:

  • Demonstrated technical expertise by applying computer science knowledge and practice to solve challenging problems, whether in employment, graduate study, or individual pursuits;
  • Advanced their skills in communication, teamwork, and professional and ethical behavior;
  • Demonstrated leadership in their technical or professional pursuits;
  • Engaged in post-graduate learning through graduate studies, professional improvement opportunities, or self-study;
  • Served society through professional or personal contribution.

These objectives are supported by a curriculum that seeks to have its graduates achieve the following student outcomes upon graduation. Graduates of the program will have an ability to:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing- based solution to meet a given set of computing requirements in the context of the program's discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Students enrolled and graduated

The table below shows recent trends in the number of computer science majors at Virginia Tech, and in the number of B.S. degrees awarded. Note that incoming students typically declare the CS major after their first year of study at Virginia Tech.

  11-12 12-13 13-14 14-15 15-16 16-17 17-18 18-19
CS Majors Enrolled 418 420 539 597 665 759 836 917
BS Degrees Awarded 117 128 157 178 213 200 247 303

Bachelor of Science in Computer Science

The Department of Computer Science awards a Bachelor of Science Degree in Computer Science to over 300 graduates each year. The Computer Science Major provides a comprehensive foundation preparing students for a wide variety of computing careers. The list of courses required for the major and a suggested timetable are provided in the degree checksheet:

In addition, for 2021 the Department of Computer Science is in the process of introducing two new majors for the Bachelor of Science Degree in Computer Science. Once approved, students will have the choice between majoring in Computer Science, Secure Computing, or Data-Centric Computing (choose one--since these are all majors for the BS in Computer Science degree, double-majoring between them is not appropriate).

Students who choose the Secure Computing major instead of Computer Science have a more specialized path for those who are especially interested in secure computing and cybersecurity topics. The list of courses required for the major and a suggested timetable are provided in the draft checksheets:

Students who choose the Data-Centric Computing Major instead of Computer Science have a more specialized path for those who are especially interested in data science, analytics, and computational problems involving large volumes of data. The list of courses required for the major and a suggested timetable are provided in the draft checksheets:

5-Year Accelerated BS/MS Program

To enable the completion of both a bachelor's and a master's degree in five years, Virginia Tech allows students with at least a 3.5 GPA to apply for admission to the Graduate School on the completion of seventy-five hours of undergraduate study.

Computer Science students in this program may take up to four graduate courses during their senior year in place of required CS 4000-level courses. These courses will "double-count" toward an MS degree in Computer Science as well.  (A CS MS degree requires either seven or eleven courses, depending on whether a thesis is done or not.)   Note that these courses must be taken for a grade, i.e., 5974 and 5994 are not allowed.

No more than two 3-credit graduate-level courses can be taken in one semester while an undergraduate, and no more than a total of 12 graduate credits will count toward the undergraduate degree. A grade of B or higher must be earned in each course that is double-counted. Award of the B.S. degree occurs on completion of the requirements as spelled out in the appropriate CS major checksheet, including the 12 credits of graduate work and the other departmental and university curriculum requirements. The remaining graduate courses for the M.S. degree should be taken after conferral of the B.S. degree.  Important note: double-counted courses must be taken during the final 12 months of the undergraduate degree; BS/MS students are expected to complete their BS degrees within two semesters after being accepted into this program.

Computer Science majors interested in applying for the BS/MS program should follow the application process below.

  • During the semester before your senior year (i.e., typically during the spring semester of your junior year), apply for admission to the CS MS program through the Graduate School admission system.
  • When you apply for the MS program, indicate that you want to begin studies in the semester after you expect to complete your BS degree.  For example, if you expect to finish your BS degree in May 2017, you would apply for admission to the MS program beginning in Fall 2017, even though you would be filling out the application in Spring 2016.
  • The MS admission process requires three letters of recommendation.  At least two should be from academic references.  When you fill out the on-line application you will be asked to provide contact information for these three references, and then they will be contacted electronically to supply the letters.  So it is important to speak with them before hand and get their permission to serve as reference letter writers.  
  • You do not have to take the GRE exam to be admitted to the BS/MS program.
  • Once you have submitted your MS application, notify the CS department that you have applied to the BS/MS program by emailing Dr. Edwards.
  • BS/MS applications are reviewed shortly after grades are issued for the semester in which you apply.   You will be notified by email of the result.
  • Students who are admitted will need to fill out an “Accelerated Undergraduate/Graduate Degree and Course Designation” form, available from the graduate school.  This is an advising form on which you will indicate the four graduate courses that you plan to take which will count for both your BS and MS degrees.

For more information about the program, read the BS/MS Program FAQ.

Minor in Computer Science

The Department of Computer Science also provides a Minor in Computer Science for students who are pursuing other majors but wish to add a supplemental focus on computer science. The minor consists of 21 credits spread over 7 courses:

Minor in Human-Computer Interaction

For 2021, the Department of Computer Science is in the process of introducing a new Minor in Human-Computer Interaction. This minor is intended for both current CS majors and for students who are pursuing other majors but wish to add a supplemental focus on HCI. The minor consists of 21 credits spread over 7 courses:

Minor in Cybersecurity

Virginia Tech's College of Engineering offers an undergraduate Minor in Cybersecurity that includes courses from the Department of Computer Science and the Bradley Department of Electrical and Computer Engineering. Cybersecurity broadly covers the fields of information security, network security, and computer system security. As bad actors seek to steal information, protecting that information, the systems that process and store it, and the networks that carry it becomes increasingly important.

This minor seeks to provide a core technical basis for careers in secure system design and operation. Students graduating with a degree in computer science or computer engineering with a minor in cybersecurity could expect careers in software engineering, embedded systems engineering, or information systems management, with an emphasis on designing, developing, operating, or analyzing security features or subsystems.

Minors for CS majors

The following minors are popular choices for CS majors:

Interested in another minor? See the complete list of minors offered at VT.

Optional Tracks of Study

Computer science is an incredibly diverse and dynamic field and there are many career paths that computer science graduates pursue.  Even as students, computer science majors may choose from a wide range of junior and senior-level electives.  In order to advise students as they navigate all these choices, the Computer Science Department offers advisory tracks.  Each track identifies a set of elective courses organized around a particular theme or sub-topic in computer science.  Completing a track is not a requirement for graduation, but it allows a student to focus their undergraduate studies in an area of particular interest or prepares them for a particular career or graduate school option. Our current tracks provide broad coverage of computer science topics and reflect the particular strengths and interests of Virginia Tech's computer science faculty.