Bachelor of Science in Computer Science for students in the College of Arts and Sciences

Students must complete the Core, a Track, and the Science & Ethics requirements. All Computer Science general requirements must also be met.

Core

Computer Science (23 credits)

  • CSC120 - Computer Programming I
  • CSC220 - Computer Programming II
  • CSC314 - Computer Organization and Architecture
  • CSC317 - Data Structures and Algorithm Analysis
  • CSC322 - C Programming and UNIX
  • CSC427 - Theory of Computing
  • CSC431 - Introduction to Software Engineering

Mathematics (17 credits)

  • MTH161 - Calculus I (or equivalent - MTH140 and MTH141, or MTH151, or MTH171)
  • MTH162 - Calculus II (or equivalent - MTH172)
  • MTH210 - Introduction to Linear Algebra
  • MTH224 - Introduction to Probability and Statistics
  • MTH309 - Discrete Mathematics

Comprehensive Track

(Available to all students) Comprehensive Track Image

  • CSC419 - Programming Languages or
    CSC546 - Introduction to Machine Learning with Applications
  • CSC421 - Principles of Computer Operating Systems
  • CSC423 - Database Systems
  • CSC424 - Computer Networks
  • At least 5 credits of approved electives

The Comprehensive Track provides coverage of the topics in Computer Science prescribed by the Association of Computing Machinery curriculum and the ABET Computing Accreditation Commission.

Flexible Track

(Available to all students) Flexible Track Image

  • At least 17 credits of approved electives

Data Science Track

(Requires permission of the Director of Undergraduate Studies) Data Science Track Image

  • CSC315 - Introduction to Python for Scientists
  • CSC546 - Introduction to Machine Learning with Applications
  • MTH542 - Statistical Analysis
  • 2 credits from CSC410-CSC411 - Computer Science Project
  • At least 6 credits of approved electives. In addition to the generally approved electives, the following are approved (and appropriate) electives for the Data Science track:
    • CSC210 - Computing for Scientists
    • CSC545 - Introduction to Artificial Intelligence
    • CSC549 - Biomedical Data Science
    • CSC550 - Computational Neuroscience
    • JMM331 - Introduction to Infographics and Data Visualization
    • JMM429 - Interactive Data Visualization

Computational Science Track

(Requires permission of the Director of Undergraduate Studies) Computational Science Track Image

  • CSC210 - Computing for Scientists
  • CSC528 - Introduction to Parallel Computing
  • CSC547 - Computational Geometry
  • CSC548 - Bioinformatics Algorithms
  • 2 credits from CSC410-CSC411 - Computer Science Project
  • MTH320 - Introduction to Numerical Analysis or
    MTH520 - Numerical Analysis
  • At least one course in Biology (the course may also be used for the Science requirement):
    • BIL150 - General Biology
    • BIL151 - General Biology Laboratory

Cryptography and Security Track

(Requires permission of the Director of Undergraduate Studies) Cryptography Track Image

  • CSC421 - Principles of Computer Operating Systems
  • CSC424 - Computer Networks
  • CSC507 - Cryptography and Data Security
  • 3 credits from CSC410-CSC411 - Computer Science Project
  • MTH505 - Theory of Numbers or
    MTH461 - Survey of Modern Algebra or
    MTH561 - Abstract Algebra I
  • At least 2 credits of approved electives

Graphics and Games Track

(Requires permission of the Director of Undergraduate Studies) Graphics and Games Track Image

  • CSC329 - Introduction to Game Programming
  • CSC529 - Introduction to Computer Graphics
  • CSC545 - Introduction to Artificial Intelligence
  • 3 credits from CSC410-CSC411 - Computer Science Project
  • At least 5 credits of approved electives. In addition to the generally approved electives, the following are approved for the Graphics and Games track:
    • CIM416 - Building Virtual Worlds
    • CIM424 - Augmented Reality
    • ECE596 - Maya Animation
    • MMI504 - Audio Analysis and Synthesis
    • MMI505 - Advanced Audio Signal Processing
  • At least one course in Physics (the course may also be used in partial fulfilment of the Science requirement):
    • PHY201 - University Physics I for the Sciences or
    • PHY205/221 - University Physics I

Science & Ethics Requirements

The Computer Science major requires completion of an approved two semester sequence of courses with laboratory 

The Computer Science major requires completion of the Ethics course PHI115 - Social and Ethical Issues in Computing.

Approved Electives

  • CSC115 - Python Programming for Everyone (only if taken before CSC120)
  • Any CSC2XX, CSC3XX, CSC4XX, CSC5XX
    CSC40X - Computer Science Practicum courses must be taken at the same time as their host course.
  • BTE535 - Information Security
  • BTE565 - Mobile to Cloud: Developing Distributed Applications
  • CIM413 - Mobile Application Development
  • ECE414 - Computer Organization and Design
  • ECE481 and ECE482 - Senior Project I & II (may also be used to replace any requirement for CSC410 or CSC411)
  • ECE514 - Computer Architecture
  • ECE548 - Machine Learning
  • ECE553 - Neural Networks
  • ECE570 - Network Client-Server Programming
  • ECE572 - Object-Oriented and Distributed Database
  • ECE574 - Agent Technology
  • ECE576 - Internet and Intranet Security
  • ECE577 - Data Mining
  • MTH320 - Introduction to Numerical Analysis
  • MTH505 - Theory of Numbers
  • MTH520 - Numerical Analysis I
  • MTH521 - Numerical Analysis II
  • MTH524 - Introduction to Probability Theory
  • MTH525 - Introduction to Mathematics Statistics
  • MTH542 - Statistical Analysis

Other courses can be approved as electives on request.