Program Curriculum
Code | Title | Credits |
---|---|---|
Degree Core Requirements | ||
CS1114 | Introduction to Software Design (C) | 3 |
CS2505 | Introduction to Computer Organization (C) | 3 |
CS2506 | Introduction to Computer Organization (C) | 3 |
CS3214 | Computer Systems | 3 |
CS3604 | Professionalism in Computing | 3 |
MATH2114 | Introduction to Linear Algebra | 3 |
MATH2204 | Introduction to Multivariable Calculus | 3 |
orCMDA2005 | Integrated Quantitative Sciences | |
MATH2534 | Introduction to Discrete Mathematics | 3 |
orMATH3034 | Introduction to Proofs | |
Subtotal | 24 | |
Major Requirements | ||
CS2104 | Introduction to Problem Solving in Computer Science (C) | 3 |
CS3304 | Comparative Languages | 3 |
CS Theory Elective | 3 | |
CS 4/5XXX Elective 3 | 3 | |
CS 4XXX Capstone | 3 | |
Subtotal | 15 | |
Additional Course Requirements | ||
CS1944 | Computer Science First Year Seminar | 1 |
CS2114 | Software Design and Data Structures (C) | 3 |
CS4944 | Seminar | 1 |
MATH3134 | Applied Combinatorics and Graph Theory | 3 |
orMATH3124 | Modern Algebra | |
Elective Courses | ||
CS 3/4/5XXX Electives 3 | 6 | |
CS Technical Elective 3 | 3 | |
Advanced Natural Science Elective | 4 | |
Communications Elective | 3 | |
Professional Writing Elective | 3 | |
Statistics Elective | 3 | |
Free Electives | 7 | |
Subtotal | 37 | |
Pathways to General Education | ||
Pathways Concept 1 - Discourse | ||
ENGL1105 | First-Year Writing (1F) | 3 |
ENGL1106 | First-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 2 | 6 | |
Pathways Concept 3 - Reasoning in the Social Sciences | ||
Select six hours in Pathway 3 | 6 | |
Pathways Concept 4 - Reasoning in the Natural Sciences | ||
Natural Science Elective | 4 | |
Natural Science Elective | 4 | |
Pathways Concept 5 - Quantitative and Computational Thinking | ||
MATH1225 | Calculus of a Single Variable (5F ; C-) | 4 |
MATH1226 | Calculus of a Single Variable (5F) | 4 |
CS3114 | Data Structures and Algorithms (5A ; C) | 3 |
Pathways Concept 6 - Critique and Practice in Design and the Arts | ||
Select three credits in Pathway 6a | 3 | |
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 credits | 3 | |
Subtotal | 47 | |
Total Credits | 123 |
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.
-
Natural Science Electives: Choose 8 credits
Course List Code Title Credits BIOL1105
&BIOL1115Principles of Biology
and Principles of Biology Laboratory4 CHEM1035
&CHEM1045General Chemistry
and General Chemistry Laboratory4 PHYS2305 Foundations of Physics 4 - Advanced Natural Science Elective:Choose 4 credits
Course List Code Title Credits BIOL1106
&BIOL1116Principles of Biology
and Principles of Biology Laboratory4 CHEM1036
&CHEM1046General Chemistry
and General Chemistry Laboratory4 PHYS2306 Foundations of Physics 4 - Communications Elective. Students must take one of the following:
Course List Code Title Credits COMM2004 Public Speaking 3 COMM2014 Speech Communication 3 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.
- Professional Writing Elective. Students must take one of the following:
Course List Code Title Credits ENGL3764 Technical Writing 3 ENGL3804 Technical Editing and Style 3 ENGL3814 Creating User Documentation 3 ENGL3824 Visual Rhetoric and Document Design 3 ENGL3834 Intercultural Issues in Professional Writing 3 ENGL3844 Writing and Digital Media 3 ENGL4824 Science Writing 3 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.
- Statistics Elective. Students must take one of the following:
Course List Code Title Credits STAT4705 Probability and Statistics for Engineers 3 STAT4105 Theoretical Statistics 1 3 STAT4714 Probability and Statistics for Electrical Engineers 1 3 STAT4604 Statistical Methods for Engineers 3 STAT3704 Statistics for Engineering Applications 2 2 CMDA2006 Integrated Quantitative Sciences 1 6 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.
- 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 BIT4614 Cybersecurity Management II 3 CMDA3634 Computer Science Foundations for Computational Modeling and Data Analytics 3 CMDA3654 Introductory Data Analytics and Visualization 3 CMDA4654 Intermediate Data Analytics and Machine Learning 3 ECE4424 Machine Learning 3 MATH3414 Numerical Methods 3 MATH4414 Issues in Scientific Computing 3 PSCI4164 Future of Security: Integrative Solutions for Complex Security Systems 3 STAT3654 Introductory Data Analytics and Visualization 3 STAT4654 Intermediate Data Analytics and Machine Learning 3 STS4014 Algorithms & Society 3
Exceptions (not allowed to count towards CS 3/4/5XXX electives)Course List Code Title Credits CS/CMDA 3634 Computer Science Foundations for Computational Modeling and Data Analytics 3 CS4774 Human-Computer Interaction Design Experience 3 CS5040 Intermediate Data Structures and Algorithm Analysis 3 CS5044 Object-Oriented Programming with Java 3 CS5045 Computation for the Data Sciences 3 CS5046 Computation for the Data Sciences 3 CS5644 Machine Learning with Big Data 3 CS5664 Social Media Analytics 3 CS5904 1-19 CS5944 Graduate Seminar 1 CS5974 1-19 CS5994 1-19 - 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 BIT4614 Cybersecurity Management II 3 CMDA4654 Intermediate Data Analytics and Machine Learning 3 ECE4424 Machine Learning 3 MATH4414 Issues in Scientific Computing 3 PSCI4164 Future of Security: Integrative Solutions for Complex Security Systems 3 STAT4654 Intermediate Data Analytics and Machine Learning 3 STS4014 Algorithms & Society 3
Exceptions (not allowed to count towards the CS 4/5XXX electives.Course List Code Title Credits CS4774 Human-Computer Interaction Design Experience 3 CS5040 Intermediate Data Structures and Algorithm Analysis 3 CS5044 Object-Oriented Programming with Java 3 CS5045 Computation for the Data Sciences 3 CS5046 Computation for the Data Sciences 3 CS5644 Machine Learning with Big Data 3 CS5664 Social Media Analytics 3 CS5904 1-19 CS5944 Graduate Seminar 1 CS5974 1-19 CS5994 1-19 - CS Theory Elective. Students must take one of the following:
Course List Code Title Credits CS4104 Data and Algorithm Analysis 3 CS4114 Introduction to Formal Languages and Automata Theory 3 CS4124 Theory of Computation 3 CS4134 Quantum Computation and Information Processing 3 CS5104 Computability and Formal Languages 3 CS5114 Theory of Algorithms 3 - 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 CS4274 Secure Computing Capstone 3 CS4284 Systems & Networking Capstone 3 CS4624 Multimedia, Hypertext and Information Access 3 CS4634 Design Of Information 3 CS4644 Creative Computing Studio 3 CS4664 Data-Centric Computing Capstone 3 CS4704 Software Engineering Capstone 3 CS4784 Human-Computer Interaction Capstone 3 CS4884 Computational Biology and Bioinformatics Capstone 3 ENGE4735 Interdisciplinary Design Capstone 3 ENGE4736 Interdisciplinary Design Capstone 3 - CS Technical Elective3. 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 under (6) above.
- 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.
- 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.
- 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 AOE4434 Introduction to Computational Fluid Dynamics 3 ART3704 Topics in Computer Animation 3 BIT4424 Business Information Visualization and Analytics 3 BIT4434 Computer Simulation in Business 3 BIT4444 Web-Based Decision Support Systems 3 BIT4544 Advanced Methods in Business Analytics 3 BIT4604 Data Governance, Privacy and Ethics 3 BIT4614 Cybersecurity Management II 3 BIT4624 Cybersecurity Analytics for Business 3 CEM4624 Construction Robotics and Automation 3 CEM4634 Data Analysis and Visualization for Construction and Facilities Management 3 CMDA3606 Mathematical Modeling: Methods and Tools 3 ECE3544 Digital Design I 4 ECE3574 Applied Software Design 3 ECE4524 Artificial Intelligence and Engineering Applications 4 ECE4550 Real-Time Systems 3 ECE4560 Computer and Network Security Fundamentals 3 ECE4564 Network Application Design 3 ECE4580 Digital Image Processing 3 ECE4704 Principles of Robotics Systems 3 ENGE4735 Interdisciplinary Design Capstone 3 ENGE4736 Interdisciplinary Design Capstone 3 ENGE4964 GEOG/GEOS 4084 Modeling with Geographic Information Systems 3 GEOG4314 Spatial Analysis in Geographic Information Systems 3 GEOG4324 Algorithms in Geographic Information Systems 4 MATH4175 Cryptography 3 MATH4176 Cryptography 3 MATH4445 Introduction to Numerical Analysis 3 MATH4454 Applied Mathematical Modeling 3 ME4524 Introduction to Robotics and Automation 3 MUS3064 Digital Sound Manipulation 3 MUS3065 Computer Music and Multimedia Design 3 MUS3066 Computer Music and Multimedia Design 3 PHYS4755 Introduction to Computational Physics 3
- 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:
- Complete 123 credit hours
- 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.
- 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
- MATH2405H may be substituted for MATH2114
- MATH2405H (5 cr) + MATH2406H (5 cr) may be substituted for MATH2114 (3 cr) + MATH2204 (3 cr) + free elective (4 cr)
- CS2064 (C) (3 cr) may be substituted for CS1114 (C) (3 cr)
- ECE2514 (C) (3cr) may be substituted for CS1114 (C) (3cr)
- ECE3514 (C) may be substituted for CS2114 (C)
- 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.
First Year | ||
---|---|---|
Fall Semester | Credits | |
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 | |
Credits | 16 | |
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 | |
Credits | 16 | |
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 | |
Credits | 16 | |
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 | |
Credits | 16 | |
Third Year | ||
Fall Semester | ||
CS3114 | Data Structures and Algorithms (C) | 3 |
CS 3/4/5XXX | Elective 3 | 3 |
MATH3134 | Applied Combinatorics and Graph Theory | 3 |
Professional Writing Elective | 3 | |
Pathways 2, 3, 6a, or 7 | 3 | |
Credits | 15 | |
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 | |
Credits | 15 | |
Fourth Year | ||
Fall Semester | ||
CS3304 | Comparative Languages | 3 |
CS Theory Elective | 3 | |
CS 3/4/5XXX | Elective 3 | 3 |
CS Technical Elective 3 | 3 | |
Free Elective | 3 | |
Credits | 15 | |
Spring Semester | ||
CS4944 | Seminar | 1 |
CS 4XXX | Capstone | 3 |
CS 4/5XXX | Elective 3 | 3 |
Pathways 2, 3, 6a, or 7 | 3 | |
Free Elective | 4 | |
Credits | 14 | |
Total Credits | 123 |