Second Major in Computer Science, with Tracks

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
  • 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

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
    MTH528 - Combinatorics or
    MTH561 - Abstract Algebra I or
    MTH461 - Survey of Modern Algebra
  • 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:
    • 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 for the Science requirement):
    • PHY101 - College Physics I or
    • PHY201 - University Physics I for Life Sciences or
    • PHY205 - 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

  • Any CSC2XX, CSC3XX, CSC4XX, CSC5XX
    (maximally 6 credits from CSC40X - Computer Science Practicum, and
    maximally 6 credits from CSC481 - Undergraduate Teaching Assistant in Computer Science)
  • BTE535 - Information Security
  • ECE414 - Computer Organization and Design
  • ECE514 - Computer Architecture
  • ECE537 - Principles of Artificial Intelligence
  • ECE548 - Machine Learning
  • ECE553 - Neural Networks
  • ECE572 - Object-Oriented and Distributed Database Management Systems
  • ECE574 - Agent Technology
  • 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
  • MTH528 - Combinatorics
  • MTH542 - Statistical Analysis