Computer Science Major | Virginia Tech (2024)

Program Curriculum

Course List
Code Title Credits
Degree Core Requirements
CS1114Introduction to Software Design (C)3
CS2505Introduction to Computer Organization (C)3
CS2506Introduction to Computer Organization (C)3
CS3214Computer Systems3
CS3604Professionalism in Computing3
MATH2114Introduction to Linear Algebra3
MATH2204Introduction to Multivariable Calculus3
orCMDA2005 Integrated Quantitative Sciences
MATH2534Introduction to Discrete Mathematics3
orMATH3034 Introduction to Proofs
Subtotal24
Major Requirements
CS2104Introduction to Problem Solving in Computer Science (C)3
CS3304Comparative Languages3
CS Theory Elective3
CS 4/5XXX Elective 33
CS 4XXX Capstone3
Subtotal15
Additional Course Requirements
CS1944Computer Science First Year Seminar1
CS2114Software Design and Data Structures (C)3
CS4944Seminar1
MATH3134Applied Combinatorics and Graph Theory3
orMATH3124 Modern Algebra
Elective Courses
CS 3/4/5XXX Electives 36
CS Technical Elective 33
Advanced Natural Science Elective4
Communications Elective 3
Professional Writing Elective3
Statistics Elective3
Free Electives7
Subtotal37
Pathways to General Education
Pathways Concept 1 - Discourse
ENGL1105First-Year Writing (1F)3
ENGL1106First-Year Writing (1F)3
Select three hours in Pathway 1a (use Communications Elective, Professional Writing Elective, or Free Elective)
Pathways Concept 2 - Critical Thinking in the Humanities
Select six hours in Pathway 26
Pathways Concept 3 - Reasoning in the Social Sciences
Select six hours in Pathway 36
Pathways Concept 4 - Reasoning in the Natural Sciences
Natural Science Elective4
Natural Science Elective4
Pathways Concept 5 - Quantitative and Computational Thinking
MATH1225Calculus of a Single Variable (5F ; C-)4
MATH1226Calculus of a Single Variable (5F)4
CS3114Data Structures and Algorithms (5A ; C)3
Pathways Concept 6 - Critique and Practice in Design and the Arts
Select three credits in Pathway 6a3
ENGE1215
&ENGE1216
Foundations of Engineering
and Foundations of Engineering (6D)
4
orENGE1414 Foundations of Engineering Practice
Pathways Concept 7 - Critical Analysis of Identity and Equity in the United States
Pathways Concept 7 can be double-counted with another core concept. In this case, additional free elective credits must be taken to maintain a minimum of 123 credits3
Subtotal47
Total Credits123

Electives

Note: Some elective courses may include prerequisites not required by this checksheet. It is the student’s responsibility to be aware of prerequisites and to ensure that all prerequisites are completed prior to enrolling in the chosen course. Some courses may be restricted to majors other than CS in some semesters. Check the Undergraduate Course Catalog and consult with an academic advisor to confirm your eligibility for specific electives. Actual course offerings are subject to availability of sufficient resources, including faculty availability and student demand.

  1. Natural Science Electives: Choose 8 credits

    Course List
    Code Title Credits
    BIOL1105
    &BIOL1115
    Principles of Biology
    and Principles of Biology Laboratory
    4
    CHEM1035
    &CHEM1045
    General Chemistry
    and General Chemistry Laboratory
    4
    PHYS2305Foundations of Physics4
  2. Advanced Natural Science Elective:Choose 4 credits
    Course List
    Code Title Credits
    BIOL1106
    &BIOL1116
    Principles of Biology
    and Principles of Biology Laboratory
    4
    CHEM1036
    &CHEM1046
    General Chemistry
    and General Chemistry Laboratory
    4
    PHYS2306Foundations of Physics4
  3. Communications Elective. Students must take one of the following:
    Course List
    Code Title Credits
    COMM2004Public Speaking3
    COMM2014Speech Communication3

    Note: COMM2004 Public Speaking can be used to satisfy Pathways 1A. Students who do not take COMM2004 Public Speaking as their communications elective will need to satisfy Pathways 1A through a suitable professional writing elective or free elective.

  4. Professional Writing Elective. Students must take one of the following:
    Course List
    Code Title Credits
    ENGL3764Technical Writing3
    ENGL3804Technical Editing and Style3
    ENGL3814Creating User Documentation3
    ENGL3824Visual Rhetoric and Document Design3
    ENGL3834Intercultural Issues in Professional Writing3
    ENGL3844Writing and Digital Media3
    ENGL4824Science Writing3

    Note: ENGL3764 Technical Writing can be used to satisfy Pathways 1A. Students who do not take ENGL3764 Technical Writing as their communications elective will need to satisfy Pathways 1A through a suitable communications elective or free elective.

  5. Statistics Elective. Students must take one of the following:
    Course List
    Code Title Credits
    STAT4705Probability and Statistics for Engineers3
    STAT4105Theoretical Statistics 13
    STAT4714Probability and Statistics for Electrical Engineers 13
    STAT4604Statistical Methods for Engineers3
    STAT3704Statistics for Engineering Applications 22
    CMDA2006Integrated Quantitative Sciences 16

    Note: Students taking must take an additional 1 free elective credit to meet the total number of credits required for the degree. Students considering a possible change of major to Data-Centric Computing should take one of,, or, since that major uses a more restrictive list of statistics electives.

  6. CS 3/4/5XXXX Electives3.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, including both CS4974 and CS4994 Undergraduate Research.Additionally, the following cross-listed courses are allowed for CS 3/4/5XXX elective credit.
    Course List
    Code Title Credits
    BIT4614Cybersecurity Management II3
    CMDA3634Computer Science Foundations for Computational Modeling and Data Analytics3
    CMDA3654Introductory Data Analytics and Visualization3
    CMDA4654Intermediate Data Analytics and Machine Learning3
    ECE4424Machine Learning3
    MATH3414Numerical Methods3
    MATH4414Issues in Scientific Computing3
    PSCI4164Future of Security: Integrative Solutions for Complex Security Systems3
    STAT3654Introductory Data Analytics and Visualization3
    STAT4654Intermediate Data Analytics and Machine Learning3
    STS4014Algorithms & Society3

    Exceptions (not allowed to count towards CS 3/4/5XXX electives)
    Course List
    Code Title Credits
    CS/CMDA 3634Computer Science Foundations for Computational Modeling and Data Analytics3
    CS4774Human-Computer Interaction Design Experience3
    CS5040Intermediate Data Structures and Algorithm Analysis3
    CS5044Object-Oriented Programming with Java3
    CS5045Computation for the Data Sciences3
    CS5046Computation for the Data Sciences3
    CS5644Machine Learning with Big Data3
    CS5664Social Media Analytics3
    CS59041-19
    CS5944Graduate Seminar1
    CS59741-19
    CS59941-19
  7. CS 4/5XXXX Elective3. 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, including both CS4974 and CS4994 Undergraduate ResearchAdditionally, the following cross-listed courses are also allowed for CS 3/4/5XXX elective.
    Course List
    Code Title Credits
    BIT4614Cybersecurity Management II3
    CMDA4654Intermediate Data Analytics and Machine Learning3
    ECE4424Machine Learning3
    MATH4414Issues in Scientific Computing3
    PSCI4164Future of Security: Integrative Solutions for Complex Security Systems3
    STAT4654Intermediate Data Analytics and Machine Learning3
    STS4014Algorithms & Society3

    Exceptions (not allowed to count towards the CS 4/5XXX electives.
    Course List
    Code Title Credits
    CS4774Human-Computer Interaction Design Experience3
    CS5040Intermediate Data Structures and Algorithm Analysis3
    CS5044Object-Oriented Programming with Java3
    CS5045Computation for the Data Sciences3
    CS5046Computation for the Data Sciences3
    CS5644Machine Learning with Big Data3
    CS5664Social Media Analytics3
    CS59041-19
    CS5944Graduate Seminar1
    CS59741-19
    CS59941-19
  8. CS Theory Elective. Students must take one of the following:
    Course List
    Code Title Credits
    CS4104Data and Algorithm Analysis3
    CS4114Introduction to Formal Languages and Automata Theory3
    CS4124Theory of Computation3
    CS4134Quantum Computation and Information Processing3
    CS5104Computability and Formal Languages3
    CS5114Theory of Algorithms3
  9. Capstone Requirement. Students must complete one 4000-level CS capstone course. Students may choose from the courses listed here, or other 4/5000-level CS courses that have received prior approval as fulfilling the capstone requirement.
    Course List
    Code Title Credits
    CS4274Secure Computing Capstone3
    CS4284Systems & Networking Capstone3
    CS4624Multimedia, Hypertext and Information Access3
    CS4634Design Of Information3
    CS4644Creative Computing Studio3
    CS4664Data-Centric Computing Capstone3
    CS4704Software Engineering Capstone3
    CS4784Human-Computer Interaction Capstone3
    CS4884Computational Biology and Bioinformatics Capstone3
    ENGE4735Interdisciplinary Design Capstone3
    ENGE4736Interdisciplinary Design Capstone3
  10. CS Technical Elective3. Computer Science majors must satisfy a 3 credit hour technical elective requirement by taking one of:
    1. Any 3-credit CS 3/4/5000-level course meeting the CS 3/4/5XXX elective requirements under (6) above.
    2. Any approved 3000- or 4000-level course in another discipline that has significant technical content relevant to the science or application of computer science can be used as a technical elective.
      1. Requests to have a non-CS course approved as a technical elective are made by submitting a course syllabus to your CS advisor for review prior to enrolling in the course. This includes non-CS Independent Study (4974) and Undergraduate Research (4994) courses.
      2. Below is a listing of non-CS courses that are approved as technical electives.

        Some courses may be restricted to majors other than CS in some semesters. Check the Undergraduate Course Catalog and consult with an academic advisor to confirm your eligibility for specific electives. Actual course offerings are subject to availability of sufficient resources, including faculty availability and student demand.

    Course List
    Code Title Credits
    AOE4434Introduction to Computational Fluid Dynamics3
    ART3704Topics in Computer Animation3
    BIT4424Business Information Visualization and Analytics3
    BIT4434Computer Simulation in Business3
    BIT4444Web-Based Decision Support Systems3
    BIT4544Advanced Methods in Business Analytics3
    BIT4604Data Governance, Privacy and Ethics3
    BIT4614Cybersecurity Management II3
    BIT4624Cybersecurity Analytics for Business3
    CEM4624Construction Robotics and Automation3
    CEM4634Data Analysis and Visualization for Construction and Facilities Management3
    CMDA3606Mathematical Modeling: Methods and Tools3
    ECE3544Digital Design I4
    ECE3574Applied Software Design3
    ECE4524Artificial Intelligence and Engineering Applications4
    ECE4550Real-Time Systems3
    ECE4560Computer and Network Security Fundamentals3
    ECE4564Network Application Design3
    ECE4580Digital Image Processing3
    ECE4704Principles of Robotics Systems3
    ENGE4735Interdisciplinary Design Capstone3
    ENGE4736Interdisciplinary Design Capstone3
    ENGE4964
    GEOG/GEOS 4084Modeling with Geographic Information Systems3
    GEOG4314Spatial Analysis in Geographic Information Systems3
    GEOG4324Algorithms in Geographic Information Systems4
    MATH4175Cryptography3
    MATH4176Cryptography3
    MATH4445Introduction to Numerical Analysis3
    MATH4454Applied Mathematical Modeling3
    ME4524Introduction to Robotics and Automation3
    MUS3064Digital Sound Manipulation3
    MUS3065Computer Music and Multimedia Design3
    MUS3066Computer Music and Multimedia Design3
    PHYS4755Introduction to Computational Physics3
1

CS Non-Technical Course Requirement. B.S. in CS students must complete 30 credits of non-technical courses. All courses are approved as non-technical courses except those in the departments of Biological Sciences, Chemistry, Geosciences, Physics, Mathematics, and Statistics, and all departments in the College of Engineering, except for engineering courses satisfying Pathways 7. Also excluded are courses listed as CS technical electives.

2

Independent Study/Undergraduate Research. No more than a total of 6 credits of CS4974 and/or CS4994 Undergraduate Research may be used to fulfill CS degree requirements. To take Independent Study (CS2974 or CS4974 ), a minimum overall and in-major GPA of 2.5 is required. To take CS4994 Undergraduate Research, a minimum overall GPA of 2.5 and an in-major GPA of 3.0 is required. CS4974 and CS4994 Undergraduate Research also require completion of CS3114 Data Structures and Algorithms with a grade of C or better.

3

Undergraduates Taking Graduate Courses. Students within 2 semesters of graduating and with a 3.0 or better GPA may enroll in 5000-level courses satisfying undergraduate degree requirements within their department if they have been accepted into the Accelerated Undergraduate/Graduate Program, or by permission of the course instructor and the Department. For students not accepted into the Accelerated Undergraduate/Graduate Program, these courses may not be used on the Plan of Study for a graduate degree.

University Policy 91 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 91 and summarized in the Undergraduate Catalog:http://www.undergradcatalog.registrar.vt.edu/1920/academic-policies.html#22
  • Be registered in at least one 3-credit courserequiredin 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 twice, 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:

  1. Complete 123 credit hours
  2. Earn a “C” (2.0) or better inCS1114 Introduction to Software Design,CS2104 Introduction to Problem Solving in Computer Science,CS2114 Software Design and Data Structures,CS2505 Introduction to Computer Organization,CS2506 Introduction to Computer OrganizationandCS3114 Data Structures and Algorithms.
  3. 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

  1. MATH2405H may be substituted for MATH2114
  2. MATH2405H (5 cr) + MATH2406H (5 cr) may be substituted for MATH2114 (3 cr) + MATH2204 (3 cr) + free elective (4 cr)
  3. CS2064 (C) (3 cr) may be substituted for CS1114 (C) (3 cr)
  4. ECE2514 (C) (3cr) may be substituted for CS1114 (C) (3cr)
  5. ECE3514 (C) may be substituted for CS2114 (C)
  6. ECE2564 (C) may be substituted for CS2505 (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.

Plan of Study Grid
First Year
Fall SemesterCredits
CS1114 Introduction to Software Design (C) 3
ENGE1215 Foundations of Engineering 2
ENGL1105 First-Year Writing 3
MATH1225 Calculus of a Single Variable (C-) 4
Natural Science Elective 4
Credits16
Spring Semester
CS2114 Software Design and Data Structures (C) 3
ENGE1216 Foundations of Engineering 2
ENGL1106 First-Year Writing 3
MATH1226 Calculus of a Single Variable 4
Natural Science Elective 4
Credits16
Second Year
Fall Semester
CS1944 Computer Science First Year Seminar 1
CS2104 Introduction to Problem Solving in Computer Science (C) 3
CS2505 Introduction to Computer Organization (C) 3
MATH2534

or MATH3034

Introduction to Discrete Mathematics

or Introduction to Proofs

3
Pathways 2, 3, 6a, or 7 3
Pathways 2, 3, 6a, or 7 3
Credits16
Spring Semester
CS2506 Introduction to Computer Organization (C) 3
MATH2114 Introduction to Linear Algebra 3
MATH2204

or CMDA2005

Introduction to Multivariable Calculus

or Integrated Quantitative Sciences

3
Communications Elective 3
Advanced Natural Science Elective 4
Credits16
Third Year
Fall Semester
CS3114 Data Structures and Algorithms (C) 3
CS 3/4/5XXXElective 3 3
MATH3134 Applied Combinatorics and Graph Theory 3
Professional Writing Elective 3
Pathways 2, 3, 6a, or 7 3
Credits15
Spring Semester
CS3214 Computer Systems 3
CS3604 Professionalism in Computing 3
Statistics Elective 3
Pathways 2, 3, 6a, or 7 3
Pathways 2, 3, 6a, or 7 3
Credits15
Fourth Year
Fall Semester
CS3304 Comparative Languages 3
CS Theory Elective 3
CS 3/4/5XXXElective 3 3
CS Technical Elective 3 3
Free Elective 3
Credits15
Spring Semester
CS4944 Seminar 1
CS 4XXXCapstone 3
CS 4/5XXXElective 3 3
Pathways 2, 3, 6a, or 7 3
Free Elective 4
Credits14
Total Credits123
Computer Science Major | Virginia Tech (2024)
Top Articles
Latest Posts
Article information

Author: Aron Pacocha

Last Updated:

Views: 5706

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Aron Pacocha

Birthday: 1999-08-12

Address: 3808 Moen Corner, Gorczanyport, FL 67364-2074

Phone: +393457723392

Job: Retail Consultant

Hobby: Jewelry making, Cooking, Gaming, Reading, Juggling, Cabaret, Origami

Introduction: My name is Aron Pacocha, I am a happy, tasty, innocent, proud, talented, courageous, magnificent person who loves writing and wants to share my knowledge and understanding with you.