The links below jump to sections of this page
with information about undergraduate, graduate,
and special topics courses.

Computer Science Course Schedules

Undergraduate Computer Science Courses

Graduate Computer Science Courses

Special Topics Courses

Computer Science Course Schedules

Undergraduate Computer Science Courses

Graduate Computer Science Courses

Special Topics Courses

Winter 2021

Spring 2021

Summer 2021

- CSCI 12: Introduction to Computers and Computation
- CSCI 48: Spreadsheet Programming
- CSCI 80: Problem Solving with Computers
- CSCI 81: Introduction to Web Programming
- CSCI 82: Multimedia Fundamentals and Applications
- CSCI 84: Models of Computation
- CSCI 85: Database Application Programming
- CSCI 86: Science, Computing Tools, and Instrumentation
- CSCI 87: Introduction to Scientific Computing
- CSCI 88: Advanced Productivity Tools for Business
- CSCI 90: Topics in Computing
- CSCI 100: Information and Intelligence
- CSCI 111: Introduction to Algorithmic Problem-Solving
- CSCI 112: Introduction to Algorithmic Problem-Solving in Java
- CSCI 120: Discrete Mathematics for Finance
- CSCI 211: Object-Oriented Programming in C++
- CSCI 212: Object-Oriented Programming in Java
- CSCI 220: Discrete Structures
- CSCI 240: Computer Organization and Assembly Language
- CSCI 313: Data Structures
- CSCI 314: Data Structures for Cross-Disciplinary Minors
- CSCI 316: Principles of Programming Languages
- CSCI 317: Compilers
- CSCI 320: Theory of Computation
- CSCI 323: Design and Analysis of Algorithms
- CSCI 331: Database Systems
- CSCI 332: Object-Oriented Databases
- CSCI 334: Data Mining and Warehousing
- CSCI 335: Information Organization & Retrieval
- CSCI 340: Operating Systems Principles
- CSCI 342: Operating System Programming
- CSCI 343: Computer Architecture
- CSCI 344: Distributed Systems
- CSCI 348: Data Communications
- CSCI 352: Cryptography
- CSCI 355: Internet and Web Technologies
- CSCI 361: Numerical Methods
- CSCI 363: Artificial Intelligence
- CSCI 365: Computational Finance
- CSCI 368: Computer Graphics
- CSCI 370: Software Engineering
- CSCI 381: Special Topics in Computer Science
- CSCI 383: VT Computer Science Synthesis
- CSCI 385: VT Computer Science Capstone
- CSCI 390: Honors Readings in Computer Science
- CSCI 391: Honors Problems in Computer Science
- CSCI 393: Honors Thesis
- CSCI 395: Research Projects
- CSCI 398: Internship

- CSCI 611: Advanced Programming in C++
- CSCI 612: Advanced Programming in Java
- CSCI 613: Data Structures
- CSCI 620: Discrete Structures
- CSCI 640: Computer Organization and Assembly Language
- CSCI 655: Internet and Web Technologies
- CSCI 688: Advanced Productivity Tools for Business
- CSCI 700: Algorithms I
- CSCI 701: Software Design
- CSCI 707: Compiler Construction
- CSCI 711: Database Systems
- CSCI 715: Distributed Computing
- CSCI 718: Computer Graphics
- CSCI 722: Computability and Complexity

- CSCI 731: Software Development Practicum

- CSCI 732: Research Practicum
- CSCI 733: Master's Thesis
- CSCI 734: Hardware Design Practicum
- CSCI 744: Computer Architecture and Networks

- CSCI 745: Switching Theory
- CSCI 746: Computer Systems
- CSCI 748: Computer Networks
- CSCI 761: Numerical Methods
- CSCI 762: Algorithms II
- CSCI 764: Topics in Systems Simulation
- CSCI 765: Computational Finance
- CSCI 766: Probabilistic Models in Computer Systems
- CSCI 780: Special Topics in Computer Science
- CSCI 782: Special Topics in Computer Science
- CSCI 783: Special Topics in Computer Science
- CSCI 784: Special Topics in Computer Science
- CSCI 786: Special Topics in Computer Science
- CSCI 788: Computer Science: Cooperative Education Placement
- CSCI 790, 792, 793, 794, 796: Seminars in Computer Science
- CSCI 799: Research

- Advanced Object-Oriented Programming in C++ (Waxman)
- This course may be used to satisfy the "Software Semicore" requirement for graduate students.

- Algorithms for Big Data (Goswami)
- This course may be used to satisfy the "Mathematical Applications and Algorithms Semicore" requirement for graduate students.

- Approximation Algorithms (Goswami)
- This course may be used to satisfy the "Mathematical Applications and Algorithms Semicore" requirement for graduate students.

- Biomedical Image Analysis (Tsai)
- This course may be used to satisfy the "Software Semicore" requirement for graduate students.

- Biometrics Security and Privacy (Sy)
- Computational Finance (Obrenic)
- Computer Networking and Internet (Obrenic)
- Computer Vision (Phillips)
- Cryptography I (Boklan)
- This course may be used to satisfy the "Mathematical Applications and Algorithms Semicore" requirement for graduate students.

- Cryptography II (Boklan)
- Data Analytics (Pang)
- Data Mining/Warehousing (Sy)
- Genetic Algorithms (Goldberg)
- Graphical Models (Yuan)
- Heterogeneous Distributed Applications (Obrenic)
- This course may be used to satisfy the "Software Semicore" requirement for graduate students.

- History of Science (Boklan)
- Image Processing (Phillips/Tsai)
- Information and Computer Security (Sy)
- Internet Security (Sy)
- Linear Operators (Mane)
- Logic Design Lab (Vickery)
- This course may be used to satisfy the "Hardware Semicore" requirement for graduate students.

- Machine Learning (Tsai/Yuan)
- Machine Learning for NLP (Rozovskaya)
- Machine Learning in Image Analysis (Chen)
- Machine Learning in Quantitative Finance (Yuan)
- Modeling and Simulation (Brown)
- Natural Language Processing (Rozovskaya)
- This course may be used to satisfy the "Software Semicore" requirement for graduate students.

- Object-Oriented Databases (Yukawa)
- Quantum Computing (Whitehead)
- Quantum Computing II (Whitehead)
- Robotics (Sy)
- This course may be used to satisfy the "Hardware Semicore" requirement for graduate students.

- Software Development (Goldberg)
- This course may be used to satisfy the "Software Semicore" requirement for graduate students.

- Spatio-Temporal Data Modeling and Databases (Yukawa)
- Structured Learning (Chen)
- Topics in Crytography (Boklan)
- Wireless Networking (Sy)
- VoIP/WLAN: Technology and Application (Sy)
- This course may be used to satisfy the "Hardware Semicore" requirement for graduate students.