Program Curriculum
Code | Title | Credits |
---|---|---|
Degree Core Requirements | ||
CS1114 | Introduction to Software Design (C) | 3 |
MATH2204 | Introduction to Multivariable Calculus | 3 |
orCMDA2005 | Integrated Quantitative Sciences | |
MATH2534 | Introduction to Discrete Mathematics | 3 |
MATH2114 | Introduction to Linear Algebra | 3 |
CS2505 | Introduction to Computer Organization (C) | 3 |
CS2506 | Introduction to Computer Organization (C) | 3 |
CS3214 | Computer Systems | 3 |
CS3604 | Professionalism in Computing | 3 |
Subtotal | 24 | |
Major Requirements | ||
BIT/CS/PSCI 2164 | Foundations of Contemporary Security Environments | 3 |
Secure Computing Elective | 3 | |
CS4264 | Principles of Computer Security | 3 |
Secure Computing Elective | 3 | |
CS 4XXX | Secure Computing Capstone | 3 |
Secure Computing Elective | 3 | |
Subtotal | 18 | |
Additional Course Requirements | ||
CS2114 | Software Design and Data Structures (C) | 3 |
CS1944 | Computer Science First Year Seminar | 1 |
MATH3134 | Applied Combinatorics and Graph Theory | 3 |
CS3314 | Programming Language Theory and Practice | 3 |
CS4944 | Seminar | 1 |
Subtotal | 11 | |
Elective Courses | ||
Natural Science Elective | 4 | |
Professional Writing Elective | 3 | |
Statistics Elective | 3 | |
CS Technical Elective | 3 | |
CS 3/4/5XXX Elective | 3 | |
Subtotal | 16 | |
Free Electives | ||
Select two Free Elective courses | 4 | |
Subtotal | 4 | |
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 | 3 | |
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 | ||
CHEM1035 &CHEM1045 | General Chemistry and General Chemistry Laboratory | 4 |
PHYS2305 | Foundations of Physics | 4 |
Pathways Concept 5 - Quantitative and Computational Thinking | ||
MATH1225 | Calculus of a Single Variable (5F) | 4 |
MATH1226 | Calculus of a Single Variable (5F) | 4 |
CS3114 | Data Structures and Algorithms (5A) | 3 |
Pathways Concept 6 - Critique and Practice in Design and the Arts | ||
Select three hours in Pathway 6a | 3 | |
ENGE1215 &ENGE1216 | Foundations of Engineering and Foundations of Engineering | 4 |
Pathways Concept 7 - Critical Analysis of Identity and Equity in the United States | ||
Pathways Concept 7 should 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 | 50 | |
Total Credits | 123 |
General Information About the Checklist
Course offerings are subject to change and the availability of sufficient resources. Students should confirm course offerings in advance with their department.
Pathways to General Education (Pathways)
Consult the pathways courses table: https://www.pathways.prov.vt.edu/about/table.html. Pathways courses need to be completed prior to graduation.
Additional Requirements and Notes
- 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.
- Independent Study/Undergraduate Research. No more than a total of 6 credits of CS4974 Independent Study and/or CS4994 Undergraduate Research may be used to fulfill CS degree requirements. To take Independent Study (CS2974 Independent Study or CS4974 Independent Study), a minimum overall and in-major GPA of 2.5 is required. To take Undergraduate Research (CS4994 Undergraduate Research), a minimum overall GPA of 2.5 and an in-major GPA of 3.0 is required. CS4974 Independent Study and CS4994 Undergraduate Research also require completion of CS3114 Data Structures and Algorithms with a grade of C or better.
- Minor Restriction: students pursing a Major in Secure Computing may not minor in Cybersecurity.
- See checksheet page 3 for definitions of each elective category and a list of approved courses for each.
Change of Major Requirements
Please see http://www.enge.vt.edu/em
Foreign Language Requirements
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.
Satisfactory Progress Towards 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 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 twice, including attempts ending in course withdrawal.
- Not repeat more than 3 CS courses required in the major, including attempts ending in course withdrawal.
Statement of Prerequisites
Pre-requisites for each course are listed after the course title. The (letter grade) notation, such as (C), indicates the minimum grade students must earn in the pre-requisite course. There are no hidden pre-requisites in the program of study. Prerequisites may change from what is indicated. Be sure to consult the University Catalog or check with your advisor for the most current pre-requisites.
Secure Computing 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 Elective. A minimum of 12 hours of natural science is required. Of those hours, 8 hours must be in a sequence. In addition to the required CHEM1035 General Chemistry/CHEM1045 General Chemistry Laboratory and PHYS2305 Foundations of Physics, this requirement may be satisfied by taking
- CHEM1036 General Chemistry/CHEM1046 General Chemistry Laboratory
- PHYS2306 Foundations of Physics, or
- an eight hour sequence in Biology: BIOL1105 Principles of Biology-BIOL1106 Principles of Biology & BIOL1115 Principles of Biology Laboratory-BIOL1106 Principles of Biology.
- Communications Elective. Students must take one of the following:
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.Course List Code Title Credits COMM2004 Public Speaking 3 COMM2014 Communication Principles of Teamwork 3 - 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 3 STAT4714 Probability and Statistics for Electrical Engineers 3 STAT4604 Statistical Methods for Engineers 3 STAT3704 Statistics for Engineering Applications 2 CMDA2006 Integrated Quantitative Sciences 6
Note that students taking STAT3704 Statistics for Engineering Applications must take an additional 1 free elective credit to meet the total number of credits required for the degree. - CS 3/4/5XXXX Elective. Any 3-credit CS 3/4/5000-level course not otherwise used to fulfill a Secure Computing requirement can be used as a CS 3/4/5XXX elective, including both CS4974 Independent Study and CS4994 Undergraduate Research, except for the following:
Course List Code Title Credits 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 Project and Report 1-19 CS5944 Graduate Seminar 1 CS5974 Independent Study 1-19 CS5994 Research and Thesis 1-19 - Secure Computing Elective. Students must take three of the following:
Course List Code Title Credits BIT4604 Data Governance, Privacy and Ethics 3 BIT4614 Information Security 3 BIT4624 Cybersecurity Analytics for Business 3 CS3274 Software Reverse Engineering 3 CS3754 Cloud Software Development 3 CS4254 Computer Network Architecture and Programming 3 ECE4560 Computer and Network Security Fundamentals 3 FIN4014 Cyberlaw and Policy 3 MATH4175 Cryptography 3 MATH4176 Cryptography 3 CS5264 Advanced Linux Kernel Programming 3 CS5580 Cryptographic Engineering 3 CS5584 Network Security 3 CS5590 System and Software Security 3 CS5594 Blockchain Technologies 3 - Secure Computing Capstone Requirement. Students must complete one 4000-level CS capstone course in the secure computing area. Students may choose the course listed here, or other 4/5000-level CS courses that have received prior approval as fulfilling the secure computing capstone requirement.
Course List Code Title Credits CS4284 Systems & Networking Capstone 3 CS4274 Secure Computing Capstone 3 - CS Technical Elective. Secure Computing 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 (5) above.
- Any Secure Computing Elective listed under (6) above that is not otherwise used to fulfill a Secure Computing requirement.
- 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.
Computer Science Technical Elective Courses
Code | Title | Credits |
---|---|---|
ACIS/BIT 4554 | 3 | |
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 |
BIT4514 | 3 | |
BIT4544 | Advanced Methods in Business Analytics | 3 |
BIT4604 | Data Governance, Privacy and Ethics | 3 |
BIT4614 | Information Security | 3 |
BIT4624 | Cybersecurity Analytics for Business | 3 |
CMDA3606 | Mathematical Modeling: Methods and Tools | 3 |
COMM4374 | 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 |
GEOG/GEOS 4084 | Modeling with Geographic Information Systems | 3 |
GEOG4314 | Spatial Analysis in Geographic Information Systems | 3 |
GEOG4324 | Algotrithms 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 |
Graduation Requirements
To qualify for a B.S. degree in CS, a student must:
- Earn a “C” (2.0) or better in CS1114 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 Organization and CS3114 Data Structures and Algorithms.
- Complete at least 123 semester credit hours with 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).
Roadmap
First Year | ||
---|---|---|
Fall Semester | Credits | |
CHEM1035 | General Chemistry | 3 |
CHEM1045 | General Chemistry Laboratory | 1 |
ENGL1105 | First-Year Writing | 3 |
MATH1225 | Calculus of a Single Variable (C-) | 4 |
ENGE1215 | Foundations of Engineering (C-) | 2 |
Pathways | 3 | |
Credits | 16 | |
Spring Semester | ||
PHYS2305 | Foundations of Physics | 4 |
ENGL1106 | First-Year Writing | 3 |
MATH1226 | Calculus of a Single Variable | 4 |
ENGE1216 | Foundations of Engineering (C-) | 2 |
CS1114 or CS2064 | Introduction to Software Design (C) or Intermediate Programming in Python | 3 |
Credits | 16 | |
Second Year | ||
Fall Semester | ||
MATH2204 or CMDA2005 | Introduction to Multivariable Calculus or Integrated Quantitative Sciences | 3 |
MATH2534 | Introduction to Discrete Mathematics | 3 |
CS2114 | Software Design and Data Structures (C) | 3 |
CS1944 | Computer Science First Year Seminar | 1 |
BIT/CS/PSCI 2164 | Foundations of Contemporary Security Environments | 3 |
Natural Science Elective | 4 | |
Credits | 17 | |
Spring Semester | ||
Communications Elective | 3 | |
MATH2214 | Introduction to Differential Equations | 3 |
CS2505 | Introduction to Computer Organization (C) | 3 |
Pathways | 3 | |
Pathways | 3 | |
Credits | 15 | |
Third Year | ||
Fall Semester | ||
MATH3134 | Applied Combinatorics and Graph Theory | 3 |
CS2506 | Introduction to Computer Organization (C) | 3 |
CS3114 | Data Structures and Algorithms (C) | 3 |
Professional Writing Elective | 3 | |
Pathways | 3 | |
Credits | 15 | |
Spring Semester | ||
Statistics Elective | 3 | |
CS3214 | Computer Systems | 3 |
CS3604 | Professionalism in Computing | 3 |
Secure Computing Elective | 3 | |
Pathways | 3 | |
Credits | 15 | |
Fourth Year | ||
Fall Semester | ||
CS4264 | Principles of Computer Security | 3 |
Secure Computing Elective | 3 | |
CS3314 | Programming Language Theory and Practice | 3 |
CS Technical Elective | 3 | |
Free Elective | 3 | |
Credits | 15 | |
Spring Semester | ||
CS4944 | Seminar | 1 |
CS 4XXX | Secure Computing Capstone | 3 |
Secure Computing Elective | 3 | |
CS 3/4/5XXX Elective | 3 | |
Pathways | 3 | |
Free Elective | 1 | |
Credits | 14 | |
Total Credits | 123 |