Bachelor of Science in Computer Science
Program Overview
Program Overview
The Bachelor of Science in Computer Science (BSCS) program at Virginia Tech is designed to provide students with a comprehensive education in computer science, preparing them for careers in the field or for further study at the graduate level.
Program Curriculum
The BSCS program requires 123 credit hours, including:
- Degree Core Requirements:
- CS 1114: Introduction to Software Design (C)
- CS 2505: Introduction to Computer Organization (C)
- CS 2506: Introduction to Computer Organization (C)
- CS 3214: Computer Systems
- CS 3604: Professionalism in Computing
- MATH 2114: Introduction to Linear Algebra
- MATH 2204: Introduction to Multivariable Calculus
- or CMDA 2005: Integrated Quantitative Sciences
- MATH 2534: Introduction to Discrete Mathematics
- or MATH 3034: Introduction to Proofs
- Major Requirements:
- CS 2104: Introduction to Problem Solving in Computer Science (C)
- CS 3304: Comparative Languages
- CS Theory Elective
- CS 4/5XXX Elective 3
- CS 4XXX Capstone
- Career Bridge Experience 4
- ENGE 3900: Bridge Experience
- Additional Course Requirements:
- CS 1944: Computer Science First Year Seminar
- CS 2114: Software Design and Data Structures (C)
- CS 4944: Seminar
- MATH 3134: Applied Combinatorics and Graph Theory
- or MATH 3124: Modern Algebra
- Elective Courses:
- CS 3/4/5XXX Electives 3
- CS Technical Elective 3
- Advanced Natural Science Elective
- Communications Elective
- Professional Writing Elective
- Statistics Elective
- Free Electives
Electives
- Natural Science Electives: Choose 8 credits
- BIOL 1105 & BIOL 1115: Principles of Biology and Principles of Biology Laboratory
- CHEM 1035 & CHEM 1045: General Chemistry and General Chemistry Laboratory
- PHYS 2305: Foundations of Physics
- Advanced Natural Science Elective: Choose 4 credits
- BIOL 1106 & BIOL 1116: Principles of Biology and Principles of Biology Laboratory
- CHEM 1036 & CHEM 1046: General Chemistry and General Chemistry Laboratory
- PHYS 2306: Foundations of Physics
- Communications Elective: Students must take one of the following:
- COMM 2004: Public Speaking
- COMM 2014: Speech Communication
- Professional Writing Elective: Students must take one of the following:
- ENGL 3764: Technical Writing
- ENGL 3804: Technical Editing and Style
- ENGL 3814: Creating User Documentation
- ENGL 3824: Visual Rhetoric and Document Design
- ENGL 3834: Intercultural Issues in Professional Writing
- ENGL 3844: Writing and Digital Media
- ENGL 4824: Science Writing
- Statistics Elective: Students must take one of the following:
- STAT 4705: Probability and Statistics for Engineers
- STAT 4105: Theoretical Statistics 1
- STAT 4714: Probability and Statistics for Electrical Engineers 1
- STAT 4604: Statistical Methods for Engineers
- STAT 3704: Statistics for Engineering Applications 2
- CMDA 2006: Integrated Quantitative Sciences 1
- CS 3/4/5XXXX Electives 3: Other than the exceptions listed below, any 3-credit CS 3/4/5000-level course not otherwise used to fulfill a Computer Science requirement can be used as a CS 3/4/5XXX elective.
- CS 4/5XXXX Elective 3: Other than the exceptions listed below, any 3-credit CS 4/5000-level course not otherwise used to fulfill a Computer Science requirement can be used as a CS 4/5XXX elective.
- CS Theory Elective: Students must take one of the following:
- CS 4104: Data and Algorithm Analysis
- CS 4114: Introduction to Formal Languages and Automata Theory
- CS 4124: Theory of Computation
- CS 4134: Quantum Computation and Information Processing
- CS 5104: Computability and Formal Languages
- CS 5114: Theory of Algorithms
- Capstone Requirement: Students must complete one 4000-level CS capstone course.
- CS Technical Elective 3: Computer Science majors must satisfy a 3 credit hour technical elective requirement by taking one of:
- Any 3-credit CS 3/4/5000-level course meeting the CS 3/4/5XXX elective requirements.
- Any approved 3000- or 4000-level course in another discipline that has significant technical content relevant to the science or application of computer science.
Satisfactory Progress Towards Degree
University Policy 6305 outlines university-wide minimum criteria to determine if students are making satisfactory progress towards the completion of their degrees. The CS Department fully supports this policy. Specific expectations for satisfactory progress for Computer Science majors are as follows:
- Each student must meet the minimum University-wide criteria as described in Policy 6305 and summarized in the Undergraduate Catalog.
- Be registered in at least one 3-credit course required in the major during each on-campus semester of the regular academic year.
- Maintain an in-major GPA of 2.0 or better (calculated using all classes with a CS designator).
- Not take any CS course required in the major more than three times, including attempts ending in course withdrawal.
- Not repeat more than 3 CS courses required in the major, including attempts ending in course withdrawal.
Graduation Requirements
To qualify for a B.S. degree in CS, a student must:
- Complete 123 credit hours
- Earn a “C” (2.0) or better in CS 1114 Introduction to Software Design, CS 2104 Introduction to Problem Solving in Computer Science, CS 2114 Software Design and Data Structures, CS 2505 Introduction to Computer Organization, CS 2506 Introduction to Computer Organization and CS 3114 Data Structures and Algorithms.
- Earn a minimum overall GPA of 2.00 and a minimum in-major GPA of 2.00 (the in-major GPA is calculated using all classes with a CS designator).
Acceptable Substitutions
- MATH 2405H may be substituted for MATH 2114
- MATH 2405H (5 cr) + MATH 2406H (5 cr) may be substituted for MATH 2114 (3 cr) + MATH 2204 (3 cr) + free elective (4 cr)
- CS 2064 (C) (3 cr) may be substituted for CS 1114 (C) (3 cr)
- CS 2144 (C) may be substituted for CS 2104 (C)
- CS 4144 (C) may be substituted for CS 2104 (C)
- ECE 3514 (C) may be substituted for CS 2114 (C)
- ECE 2564 (C) may be substituted for CS 2505 (C)
Foreign Language Requirement
Students must have had 2 years of a foreign language in high school or one year at the college level (6 credit hours) of the same language. College-level credits used to meet this requirement do not count towards the degree.
Roadmap
The plan of study grid for the BSCS program is as follows:
- First Year:
- Fall Semester:
- CS 1114: Introduction to Software Design (C)
- ENGE 1215: Foundations of Engineering
- ENGL 1105: First-Year Writing
- MATH 1225: Calculus of a Single Variable (C-)
- Natural Science Elective
- Spring Semester:
- CS 2114: Software Design and Data Structures (C)
- ENGE 1216: Foundations of Engineering
- ENGL 1106: First-Year Writing
- MATH 1226: Calculus of a Single Variable
- Natural Science Elective
- Fall Semester:
- Second Year:
- Fall Semester:
- CS 1944: Computer Science First Year Seminar
- CS 2104: Introduction to Problem Solving in Computer Science (C)
- CS 2505: Introduction to Computer Organization (C)
- MATH 2534: Introduction to Discrete Mathematics
- or MATH 3034: Introduction to Proofs
- Pathways 2, 3, 6a, or 7
- Spring Semester:
- CS 2506: Introduction to Computer Organization (C)
- MATH 2114: Introduction to Linear Algebra
- MATH 2204: Introduction to Multivariable Calculus
- or CMDA 2005: Integrated Quantitative Sciences
- Communications Elective
- Advanced Natural Science Elective
- Fall Semester:
- Third Year:
- Fall Semester:
- CS 3114: Data Structures and Algorithms (C)
- CS 3/4/5XXX: Elective 3
- MATH 3134: Applied Combinatorics and Graph Theory
- Professional Writing Elective
- Pathways 2, 3, 6a, or 7
- Spring Semester:
- CS 3214: Computer Systems
- CS 3604: Professionalism in Computing
- ENGE 3900: Bridge Experience
- Statistics Elective
- Pathways 2, 3, 6a, or 7
- Fall Semester:
- Fourth Year:
- Fall Semester:
- CS 3304: Comparative Languages
- CS Theory Elective
- CS 3/4/5XXX: Elective 3
- CS Technical Elective 3
- Free Elective
- Spring Semester:
- CS 4944: Seminar
- CS 4XXX: Capstone
- CS 4/5XXX: Elective 3
- Pathways 2, 3, 6a, or 7
- Free Elective
- Fall Semester:
Total Credits: 123
