5.3. Upper Division Track Options

The rules below are for students who were admitted to the University of Minnesota in Fall 2013 or later. Students who were admitted to the University of Minnesota prior to Fall 2013 should consult the undergraduate guide's Appendix to view their program requirements.

All tracks require a minimum of 23 credits as follows: 

Students should note that some of the listed track courses may have additional prerequisites or may be available only with special instructor approval. If students are unable to take such courses for these reasons, they should take other courses in the list that do not have those constraints. Substitutions can be approved by the Computer Science Advisors when course access or time conflicts occur.

Track Summary:

*In addition to these tracks, a custom track can be developed in close consultation with the Computer Science Advisor.

  • Architecture & Hardware Systems

    • CSCI 4203 - Computer Architecture (4) Required Course for Track
    • CSCI 5204 - Advanced Computer Architecture (3) Required Course for Track
    • CSCI 4211 - Introduction to Computer Networks (3)
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • EE 4341 - Embedded System Design (4)

  • Artificial Intelligence/Robotics

    • CSCI 4511W - Introduction to Artificial Intelligence (4) Required Course for Track
    • CSCI 5512 - Artificial Intelligence II (3) Required Course for Track
    • CSCI 5521 - Introduction to Machine Learning (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5525 - Machine Learning (3)
    • CSCI 5551 - Introduction to Intelligent Robotic Systems (3)
    • CSCI 5552 - Sensing and Estimation in Robotics (3)
    • CSCI 5561 - Computer Vision (3)

  • Big Data

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track OR
    • CSCI 5105 - Introduction to Distributed Systems (3) Required Course for Track
    • CSCI 5521 - Introduction to Machine Learning (3) Required Course for Track OR
    • CSCI 5523 - Introduction to Data Mining (3) Required Course for Track
    • CSCI 4511W - Introduction to Artificial Intelligence (4)
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5512 - Artificial Intelligence II (3)
    • CSCI 5609 - Visualization (3)
    • INET 4061 - Introduction to Data Warehousing (3)
    • INET 4710 - Big Data Architecture (3)
    • MATH 5651 - Basic Theory of Probability and Statistics (4) OR STAT 5101 - Theory of Statistics I (4)

  • Bioinformatics & Computational Biology

    • CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3) Required Course for Track
    • CSCI 5481 - Computational Techniques for Genomics (3) Required Course for Track
    • CSCI 4707 - Practice of Database Systems (3)
    • CSCI 5421 - Advanced Algorithms and Data Structures (3)
    • CSCI 5521 - Introduction to Machine Learning (3)
    • CSCI 5523 - Introduction to Data Mining (3)

  • Computational Science

    • CSCI 5302 - Analysis of Numerical Algorithms (3) Required Course for Track
    • CSCI 5304 - Computational Aspects of Matrix Theory (3) Required Course for Track
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5609 - Visualization (3)
    • AST 4101 - Computational Methods in the Physical Sciences (4)
    • MATH 5075 - Mathematics of Options, Futures, and Derivative Securities I (4)
    • MATH 5467 - Introduction to the Mathematics of Image and Data Analysis (4)
    • MATH 5587 - Elementary Partial Differential Equations I (4)
    • MATH 5588 - Elementary Partial Differential Equations II (4)
    • MATH 5711 - Linear Programming (4)

  • Databases

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5708 - Architecture and Implementation of DBMS (3) Required Course for Track
    • CSCI 4131 - Internet Programming (3)
    • CSCI 4211 - Introduction to Computer Networks (3)
    • CSCI 4511W - Introduction to Artificial Intelligence (4)
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5421 - Advanced Algorithms and Data Structures (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • INET 4061 - Introduction to Data Warehousing (3)

  • Geographical Information Systems

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5708 - Architecture and Implementation of DBMS (3) Required Course for Track
    • CSCI 4611 - Programming Interactive Computer Graphics and Games (3) OR 5607 - Intro to Computer Graphics Programming (3)
    • CSCI 5715 - From GPS and Virtual Globes to Spatial Computing (3)
    • FNRM 5131 - GIS for Natural Resources (4)
    • FNRM 5262 - Remote Sensing of Natural Resources (3)
    • FNRM 5412 - Digital Remote Sensing (3)

  • Graphics & Visualization

    • CSCI 4611 - Programming Interactive Computer Graphics and Games (3) Required Course for Track OR
    • CSCI 5607 - Fundamentals of Computer Graphics I (3) Required Course for Track
    • CSCI 5608 - Computer Graphics II (3) Required Course for Track OR
    • CSCI 5609 - Visualization (3) Required Course for Track OR
    • CSCI 5611 - Animation and Planning in Games (3) Required Course for Track OR
    • CSCI 5619 - Virtual Reality and 3D Interaction (3) Required Course for Track
    • CSCI 5115 - User Interface Design, Implementation, and Evaluation (3)
    • CSCI 5125 - Collaborative and Social Computing (3)
    • CSCI 5302 - Analysis of Numerical Algorithms (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5561 - Computer Vision (3)

  • Human Computer Interaction

    • CSCI 5115 - User Interface Design (3) Required Course for Track
    • CSCI 5125 - Collaborative and Social Computing (3) Required Course for Track
    • CSCI 5123 - Recommender Systems (3)
    • CSCI 5127W - Human-Centered Design and Prototyping of Ubiquitous Computing Systems (3)
    • CSCI 5117 - Developing the Interactive Web (3)
    • CSCI 5609 - Visualization (3)
    • KIN 5001 - Foundations of Human Factors/Ergonomics (3)

  • Networks

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5221 - Foundations of Advanced Networking (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5105 - Introduction to Distributed Systems (3)
    • CSCI 5231 - Wireless and Sensor Networks (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5471 - Modern Cryptography (3)
    • MATH 5251 - Error-Correcting Codes (4)
    • INET 4011 - Network Administration (4)
    • INET 4021 - Network Programming (4)
    • INET 4041 - Emerging Network Technologies and Applications (3)
    • EE 5505 - Wireless Communication (3)

  • Security

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5271 - Introduction to Computer Security (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5471 - Modern Cryptography (3)
    • CSCI 5801 - Software Engineering I (3)
    • MATH 5248 - Cryptology and Number Theory (4)
    • INET 4011 - Network Administration (4)

  • Software & Data Systems Development

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5801 - Software Engineering I (3) Required Course for Track
    • CSCI 4131- Internet Programming (3)
    • CSCI 5103- Operating Systems (3)
    • CSCI 5106- Programming Languages (3)
    • CSCI 5115- User Interface Design (3)
    • CSCI 5161- Introduction to Compilers (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5708 - Architecture and Implementation of Database Management Systems (3)
    • CSCI 5802- Software Engineering II (3)
    • INET 4061 - Introduction to Data Warehousing (3)

  • Software Engineering & Programming Languages

    • CSCI 5106 - Programming Languages (3) Required Course for Track
    • CSCI 5801 - Software Engineering I (3) Required Course for Track
    • CSCI 4011 - Formal Languages and Automata Theory (4)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5802 - Software Engineering II (3)
    • MATH 5165 - Mathematical Logic I (4)

  • Systems

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3) Required Course for Track
    • CSCI 4131 - Internet Programming (3)
    • CSCI 5105 - Introduction to Distributed Systems (3)
    • CSCI 5143 - Real-Time and Embedded Systems (3)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5221 - Foundations of Advanced Networking (3)
    • CSCI 5231 - Wireless and Sensor Networks (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5551 - Introduction to Intelligent Robotic Systems (3)

  • Theory

    • CSCI 4011 - Formal Languages and Automata Theory (4) Required Course for Track
    • CSCI 5421 - Advanced Algorithms and Data Structures (3) Required Course for Track
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5471 - Modern Cryptography (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5525 - Machine Learning (3)
    • MATH 5165 - Mathematical Logic I (4)
    • MATH 5166 - Mathematical Logic II (4)
    • MATH 5707 - Graph Theory (4)
    • MATH 5711 - Linear Programming (4)