Registration

Course Information
The information provided below does not supercede the approved degree check sheets, roadmaps, catalog descriptions and/or learning outcomes for any course. This information is offered to better help Computer Science students understand their degree requirements, how courses are offered, what they will learn, what to expect, and other information that will greatly assist them in making informed decisions about their educational journey.
Please confer with your assigned academic advisors as needed and required to extrapolate the information in personal academic planning.
Course Offerings
The Computer Science Department offers undergraduate courses in four terms throughout the year: Fall, Spring, Winter and Summer. Offerings are subject to change and advanced notice will be provided when possible.
1000 Level
- CS 1064: Introduction to Programming in Python
- CS 1114: Introduction to Software Design
- CS 1944: Computer Science First Year Seminar
3000 Level
- CS 3114: Data Structures and Algorithms
- CS 3304: Comparative Languages
- CS 3604: Professionalism in Computing
- CS 3654: Introduction to Data Analytics & Visualization
- CS 3704: Intermediate Software Design
- CS 3714: Mobile Software Design
- CS 3744: Introduction to GUI Programming & Graphics
- CS 3754: Cloud Computing
2000 Level
- CS 2064: Intermediate Programming in Python
- CS 2104: Introduction to Problem Solving in Computer Science
- CS 2114: Software Design and Data Structures
- CS 2505: Computer Organization I
- CS 2506: Computer Organization II
4000 Level
- CS 4104: Data and Algorithm Analysis
- CS 4604: Introduction to Database Management Systems
- CS 4704: Software Engineering Capstone
1000 Level
- CS 1014: Introduction to Computational Thinking
- CS 1054: Introduction to Programming In Java (only offered in Fall term)
- CS 1064: Introduction to Programming in Python
- CS 1114: Introduction to Software Design
- CS 1944: Computer Science First Year Seminar
3000 Level
- CS 3114: Data Structures and Algorithms
- CS 3214: Computer Systems
- CS 3304: Comparative Languages
- CS 3314: Programming Language Theory and Practice (only offered in Fall term)
- CS 3414: Numerical Methods
- CS 3604: Professionalism in Computing
- CS 3634: Computer Science Foundations for CMDA
- CS 3654: Introduction to Data Analytics & Visualization
- CS 3704: Intermediate Software Design
- CS 3714: Mobile Software Design
- CS 3724: Introduction to Human Computer Interaction
- CS 3744: Introduction to GUI Programming & Graphics
- CS 3754: Cloud Software Development
- CS 3824: Introduction to Computational Biology and Bioinformatics
- CS 3984: Special Studies in Computer Science
2000 Level
- CS 2064: Intermediate Programming in Python
- CS 2104: Introduction to Problem Solving in Computer Science
- CS 2114: Software Design and Data Structures
- CS 2144: Competitive Problem Solving
- CS 2164: Foundations of Security Environments
- CS 2304: Topics in Programming Systems
- CS 2505: Computer Organization I
- CS 2506: Computer Organization II
4000 Level
- CS 4101: Algorithm and Society
- CS 4104: Data and Algorithm Analysis
- CS 4114: Formal Languages
- CS 4134: Quantum Computing
- CS 4144: Competitive Problem Solving
- CS 4204: Computer Graphics
- CS 4234: Parallel Computation
- CS 4254: Network Architecture Programming
- CS 4264: Principles of Computer Security
- CS 4274: Secure Computing Capstone
- CS 4304: Compiler
- CS 4414: Issues in Scientific Computing
- CS 4604: Introduction to Database Management Systems
- CS 4624: Multimedia/Hypertext Capstone
- CS 4654: Intermediate Data Analytics and Machine Learning
- CS 4664: Data Centric Computing Capstone
- CS 4704: Software Engineering Capstone
- CS 4804: Artificial Intelligence
- CS 4824: Machine Learning
- CS 4894: Special Topics in Computer Science
- CS 4944: Senior Seminar
All courses offered in winter terms are fully online with synchronous and asynchronous sections.
- CS 1064: Introduction to Programming in Python
- CS 1944: Computer Science First Year Seminar
- CS 3604: Professionalism in Computing
Courses In-Depth
Depending upon the major or minor, students will take 1-4 courses of CS electives. These courses can be at the 3000, 4000, or 5000 course level. You can find more specific course requirements on your check sheet/roadmap for your major. There are a LOT of CS elective courses from which students can choose, and students can double count these electives to complete prerequisites towards other courses (like the capstone requirement) and/or a student in participating in one of CS' accelerated master's degree programs.
Courses taken for specific degree requirements cannot also be used as an elective (for example, CS 3654 may be an elective for students in the CS major, but is a degree requirement for students in the Data Centric Computing major). CS Courses at the 3000 and 4000 level are offered consistently throughout the academic school year. Courses at the 5000 course level are offered much more sporadically. Students will want to confirm their elective options with their CS advisor. Listed below are a broad list of Computer Science electives at the 3000 and 4000 course levels that are consistently offered.
3000 level
- CS3414: Numerical Methods
- CS3634: Computer Science Foundations for CMDA
- CS3654: Introductory Data Analytics and Visualization
- CS3704: Intermediate Software Design and Engineering
- CS3714: Mobile Software Development
- CS3724: Introduction to Human-Computer Interaction
- CS3744: Introduction to GUI Programming and Graphics
- CS3754: Cloud Software Development
- CS3824: Introduction to Computational Biology and Bioinformatics
4000 level
- CS4204: Computer Graphics
- CS4214: Simulation and Modeling
- CS4234: Parallel Computation
- CS4254: Computer Network Architecture and Programming
- CS4264: Principles of Computer Security
- CS4304: Compiler Design and Implementation
- CS4414: Issues in Scientific Computing
- CS4504: Computer Organization
- CS4570: Wireless Networks and Mobile Systems
- CS4604: Introduction to Data Base Management Systems
- CS4644: Creative Computing Studio
- CS4654: Intermediate Data Analytics and Machine Learning
- CS4804: Introduction to Artificial Intelligence
- CS4824: Machine Learning
- CS 4984: Special Studies in Computer Science (vary by semester and topic)
- CS4974: Independent Study
- CS4994: Undergraduate Research
Computer Science courses are taken by students across Virginia Tech to fulfill core degree requirements, as electives, and to complete minors. Not all courses, however, can be taken by all students and those would be considered major or minor restricted courses. Major and minor restricted courses are courses that can only be taken by students when they have officially declared the program to which the program is restricted. There is no waiving of the major or minor requirement to enroll. Students will still have to meet all prerequisites in addition to being officially declared in the program to enroll in the course.
The following courses are restricted to students in the Computer Science, Data Centric Computing and Secure Computing majors:
- CS 1944: First Year Seminar in Computer Science
- CS 2104: Introduction to Problem Solving in Computer Science
- CS 2164:
- CS 2506: Introduction to Computer Organization II
- CS 3304: Comparative Languages
- CS 3314: Programming Languages Theory and Practice
- CS 3604: Professionalism in Computer Science
- CS 4944: Senior Seminar in Computer Science
- All courses with the Capstone designation
The following courses are restricted to students in the Computer Science, Data Centric Computing and Secure Computing majors and the minors in Computer Science and Human Computer Interaction:
- CS 2505: Introduction to Computer Organization I
- CS 3114: Data Structures anf Algorithms
- CS 3214: Computer Systems
- All 3000 level electives
- All 4000 level electives
The following courses cannot be taken by students in the Computer Science, Data Centric Computing and Secure Computing majors:
- CS 1014: Intro to Computational Thinking
- CS 1054: Introduction to Programming in Java
- CS 1064: Introduction to Programming in Python
- CS 2064: Intermediate Programming in Python
- CS 3634: Computer Science Foundations for Computational Modeling & Data Analytics
Operational course descriptions provide students with more information about what they will learn in the class, how the class is organized, what programming languages are emphasized (if any). As courses evolve, the operational course descriptions are subject to change.
This is a work in-progress and will continue to be updated regularly.
Undergraduate Academic Catalog
The Undergraduate Course Catalog is the official record of all approved degrees, majors, minors, courses, and course descriptions for the Bachelor of Science Degree in Computer Science. It is also includes a wealth of other information about university policies, and procedures.
Students that began at Virginia Tech before Fall 2024 should utilize their checksheet for the most accurate degree requirement information. A new catalog is created and approved for each academic year.
Undergraduate Catalog- Computer Science Section