Virginia Tech® home


Undergraduate Computer Science Courses

1000 Level Courses

2000 Level Courses

3000 Level Courses

4000 Level Courses

Anticipated Undergraduate Course Offerings

(Last updated August 14, 2023)

The table below shows the courses the computer science department plans to offer through Spring 2025. This list should be considered tentative, and is subject to resource constraints and enrollment. See the Virginia Tech Time Table for scheduling details for specific semesters.

Course offering key:

  • "N" are for non-majors; students intending to major or minor in CS should not take these courses
  • "C" satisfy the CS capstone requirement
  • "E" are taught by ECE faculty
  • "M" are taught by Math faculty
  • "S" are taught by Stat faculty

Summer 2023 Anticipated Offerings:

  • Summer I: 1064, 1114, 2104, 2114, 2505, 3114, 3604, 3714, 4104, 4824
  • Summer II: 1064, 1114, 2114, 2506, 3114, 3304, 3704, 3754
CS 1014 Intro to Computational Thinking N N N N
CS 1044 Intro to Programming in C N N   N
CS 1054 Intro to Programming in Java N N N  
CS 1064 Intro to Programming in Python N N N N
CS 1114 Intro to Software Design x x x x
CS 1944 Computer Science 1st Year Seminar x x x x
CS 2064 Intermediate Programming in Python x x x x
CS 2104 Intro to Problem Solving in CS x x x x
CS 2114 Software Design and Data Structures x x x x
CS 2505 Intro to Computer Organization I x x x x
CS 2506 Intro to Computer Organization II x x x x
CS 3114 Data Structures & Algorithms x x x x
CS 3214 Computer Systems x x x x
CS 3304 Comparative Languages x x x x
CS 3314 Prog Lang Theory & Practice x x x x
CS 3414 Numerical Methods x x x x
CS 3604 Professionalism in Computer Science x x x x
CS 3634 Computer Science Foundations for CMDA M M M M
CS 3654 Intro Data Analytics & Visualization x
x x
CS 3704 Intermediate Software Design & Engineering x x x x
CS 3714 Mobile Software Development x x x x
CS 3724 Intro to Human-Computer Interaction x x x x
CS 3744 GUI Programming and Graphics x x x x
CS 3754 Cloud Software Development x x x x
CS 3824 Intro to Computational Biology & Bioinformatics x   x  
CS 4104 Data and Algorithm Analysis x x x x
CS 4114 Formal Languages x x x x
CS 4124 Theory of Computation   x   x
CS 4134 Quantum Computation and Information Processing x   x  
CS 4204 Computer Graphics x   x  
CS 4234 Parallel Computation x   x  
CS 4254 Computer Network Architecture and Programming x   x  
CS 4264 Principles of Computer Security x x x x
CS 4284 Systems & Networking Capstone   C C C
CS 4304 Compiler Design x      
CS 4414 Issues in Scientific Computing M C M C
CS 4504 Computer Organization E x E x
CS 4604 Intro to Data Base Management Systems x x x x
CS 4624 Multimedia/Hypertext C C C C
CS 4634 Design of Information        
CS 4644 Creative Computing Studio   x   x
CS 4654 Intermediate Data Analytics and Machine Learning S S S S
CS 4664 Data-Centric Computng Capstone C C C C
CS 4704 Software Engineering Capstone C C C C
CS 4774 HCI Design Experience x x x x
CS 4784 Human-Computer Interaction Capstone C C C C
CS 4804 Intro to Artificial Intelligence x
x x  
CS 4824 Machine Learning x x x
CS 4884 Computational Biology & Bioinformatics Capstone   x   x
CS 4944 Senior Seminar x x x x

Capstone Courses

Computer science majors must take at least one course from an approved list of capstone courses. The purpose of this requirement is to ensure that students have at least one course that synthesizes and integrates skills and knowledge acquired throughout the CS undergraduate curriculum, and which includes a significant design experience, where teamwork and written and oral communication are a key part of that design experience.

Characteristics of a Capstone Course

Although the various 4000 level courses designated as capstone courses focus on different problem domains and may be organized differently, all capstone courses are distinguished by the following characteristics:

  • Requires synthesis and integration of knowledge and skills acquired across the curriculum to solve a significant open-ended problem.
  • Provides a significant design experience in developing a solution, including the examination of multiple design alternatives, with justification for the final path taken.
  • Uses teamwork.
  • Requires significant written, oral and visual deliverables, including a summative report and presentation. 
  • Includes multiple reflection activities, perhaps repeated periodically, e.g., individual reflective writing assignments, design or code reviews, group or individual peer reviews.
  • Includes an evaluation or assessment activity to gauge the merit the solution.  

Approved CS Capstone Courses

  • CS 4284: Systems & Networking Capstone
  • CS 4274: Secure Computing Capstone
  • CS 4414: Issues in Scientific Computing (when taught by CS faculty)
  • CS 4624: Multimedia, Hypertext & Information Access
  • CS 4634: Design of Information
  • CS 4644: Creative Computing Studio
  • CS 4664: Data-Centric Computing Capstone
  • CS 4704: Software Engineering Capstone
  • CS 4784: Human-Computer Interaction Capstone
  • CS 4884: Computational Biology & Bioinformatics Capstone

In addition, individual CS 4994 Undergraduate Research projects where the supervising faculty member ensures the characteristics of a capstone course listed above are present (including working on a team, examining multiple design alternatives, providing significant written, oral and visual deliverables, evaluating or assessing merit of the solution, etc.) may be counted for capstone credit with prior approval from the Associate Department Head. For such CS 4994 projects, the supervising faculty member should include a request for capstone credit with an explanation of how capstone characteristics are achieved in the project proposal.

Technical Electives

Any Computer Science 3/4/5000-level course that is not otherwise used to fulfill a Computer Science requirement can be used as a technical elective.

Examples of non-CS courses that have been accepted as technical electives are below. Important: The inclusion of a course on this list does not guarantee access to the course for Computer Science majors. Some of these courses may be restricted by major, and instructor's permission would be needed to take the course. Others have prerequisites that must be met to be eligible to take the course.

Course Number Title
ACIS 4514 Database Management Systems (duplicates CS 4604, i.e. cannot receive credit for both)
ACIS 4524 Software Development Project
ACIS/BIT 4554 Networks & Telecommunications in Business
ACIS/BIT 4564 OO Systems Development for Business
ACIS 4684 Information Systems Security and Assurance
AOE 4434 Introduction to Computational Fluid Dynamics
ART 3504 Creative Code
ART 3704 Rotating topics having to do with computer animation, game design, etc
ART 4504 TS: Art Direction, Topics in Multimedia Studio
BIT 4424 Business Information Visualization & Analytics (also offered as BIT 4984 Special Study: Business Info Visual & Analytics)
BIT 4434 Computer Simulation in Business
BIT 4444 Decision Support Systems
BIT 4494 Network Simulation, Modeling & Analysis in Business
BIT 4514 Database Technology for E-Business (duplicates CS 4604)
BIT 4544 Advanced Methods in Business Analytics
BIT 4574 Advanced Networking for Business
BIT 4614 Information Security
CMDA 3605 Mathematical Modeling: Methods and Tools I
CMDA 3606 Mathematical Modeling: Methods and Tools II
CMDA 4604 Intermediate Topics in Math Modeling
CMDA 4864 Computational Modeling & Data Analytics Capstone
COMM 4374 New Communications Technology
ECE 3504 Digital Design I (old number used through Summer 2013)
ECE 3534 Microprocessor System Design
ECE 3544 Digital Design I
ECE 3574 Applied Software Engineering
ECE 4510 Genetic Algorithms
ECE 4524 Artificial Intelligence and Engineering Applications
ECE 4550 Real Time Systems
ECE 4560 Computer and Network Security Fundamentals
ECE 4564 Network Application Design
ECE 4580 Digital Image Processing
ECE 4704 Principles of Robotic Systems
ECE 4984 Special Study (depending on topic)
ECON 4424 Theory of Games and Economic Behavior
ENGE 4984 Special study (depending on topic)
GEOG/GEOL 4084 Modeling with GIS
GEOG 4314 Analysis in GIS
GEOG 4324 Algorithms in GIS
MATH 4175 Cryptography I
MATH 4176 Cryptography II
MATH 4445 Introduction to Numerical Analysis
MATH 4454 Applied Mathematical Modeling
MATH 5454 Graph Theory
ME 4524 Robotics and Automation
ME 4984 SS: Research Topics in Robotics (Fall 2017)
MUS 3064 Digital Sound Manipulation
MUS 3065 Computer Music & Multimedia I
MUS 3066 Computer Music & Multimedia II
PHYS 4755 Intro to Computational Physics
PHYS 4984 Special Study (depending on topic)

Requests to have a non-CS course (not already on the list) approved as a technical elective are made by submitting a syllabus (not course description) by email to your academic advisor.  For consideration, the course must have significant technical content relevant to the science or application of computing.

Note: This includes non-CS Independent Study (4974) and Undergraduate Research (4994) courses. Special Study (4984) courses from outside the Computer Science Department may be approved, but only if the request is submitted for review before the start of the course.

For any new course approved as a technical elective, students will have to submit a course substitution request to ensure the credit is applied appropriately. Please submit this form once you have completed the course.