Graduate Info
Internal Ph.D. Minor
There are two types of CS internal minors: an Internal minor (CS only) and an Internal/External minor.
- Internal: Three courses from the same track. At least two courses must be taught by CS faculty. All committee members from CS.
- Internal/External: Three courses from the same track. One must be taught by a CS faculty member. The other two course would be from the same external department, assuming that department offers "split" minors for Ph.D. students. One minor member of the committee would be from the external department; the other would be from CS.
The courses for either of these options would be chosen from one of the tracks of related courses listed below.
Prior approval from a student's major advisor is required to select an internal minor and before beginning minor coursework.
For all External minors, it is the responsibility of the student to ascertain the requirements of the minor department; that department must approve the student's choice of minor and the specific courses taken.
A student cannot count a course as part of both their major and their minor. For example, if a student counts a core course as part of their minor, they would need to take two additional courses from that core area as part of their major.
Minor Examinations
For Internal minors, the CS Qualifying examination will be waived for "minor" courses. The written portion of the Comprehensive Examinations will be handled by individual CS faculty for Internal minors and by other departments for External minors. The oral Comprehensive is a standard format as determined by the Graduate College.
Internal Minor Track
Below are an initial set of tracks. We include all CS 500 and 600 level courses in the various tracks. Students and their faculty advisors can and should select courses to create a set of classes to fit the students research and academic needs.
Computer Architecture/Logic Design
- C SC 576 -- Computer Architecture
- C SC 600s that are relevant
- ECE 407 -- Digital VLSI Systems Design
- ECE 562 -- Computer Architecture and Design
- ECE 568 -- Introduction to Parallel Processing
- ECE 569 -- High Performance Computing: Technology, Architecture, Algorithms
- ECE/CSc 571 -- Advanced Logic Synthesis and Verification Algorithms
- ECE/C SC 574A -- Computer-Aided Logic Design
Operating Systems/Networks
- C SC 525 -- Computer Networks
- C SC 552 -- Advanced Operating Systems
- C SC 600s that are relevant
- ECE 564 -- Broadband Networks and Multimedia Communications
- ECE 577 -- Computer System and Network Evaluation
- ECE 636 -- Information Theory
- ECE 677 -- Distributed Computing Systems
- ECE 678 -- Integrated Telecommunications Networks
Programming Languages/Compilers
- C SC 520 -- Principles of Programming Languages
- C SC 553 -- Principles of Compilers
- C SC 600s that are relevant
Numerical Analysis/Scientific Computing
- C SC 522 -- Parallel and Distributed Computing
- C SC 600s that are relevant
- ECE 569 -- High Performance Computing: Technology, Architecture, Algorithms
- Math/C SC 475A -- Mathematical Principles of Numerical Analysis
- Math/C SC 475B -- Mathematical Principles of Numerical Analysis
- Math/C SC 575A -- Numerical Analysis
- Math/C SC 575B -- Numerical Analysis
- Math/C SC 589 -- Software Tools for Computational Science and Engineering
Graphics/Geographic Information Systems
- C SC 533 -- Computer Graphics
- C SC 537 -- Geometric Algorithms
- C SC 600s that are relevant
- Math/C SC 535A -- The Mathematics of Computer Graphics
- Math 574 -- Introduction to Geostatistics
- RNR 403/503 -- Applications of Geographic Information Systems
- RNR 417/517 -- Geographic Information Systems for Natural Resources
- RNR 420/520 -- Advanced Geographic Information Systems
- RNR 437/537 -- Modeling Natural Systems
Algorithms/Theory/Mathematics
- C SC 537 -- Geometric Algorithms
- C SC 545 -- Algorithms
- C SC 573 -- Theory of Computing
- C SC 600s that are relevant
- Math 530 -- Second Course in Geometry
- Math 534A/534B -- Introduction to Topology
- Math/C SC 502 -- Mathematical Logic
- Math/C SC 543 -- Theory of Graphs and Networks
- Math 546 -- Theory of Numbers
- Math 547 -- Combinatorial Mathematics
- Math 564 -- Theory of Probability
- Math/C SC 578 -- Computational Methods of Algebra
- Math/C SC 579 -- Game Theory and Mathematical Programming
- PHIL/C SC 501A -- Symbolic Logic
- PHIL/C SC 501B -- Symbolic Logic
Databases/Information Systems
- C SC 560 -- Database Systems Implementation
- C SC 600s that are relevant
Internal/External Split Minor Track
Following are four tracks that would be available as an Internal/External Split.
Computational Biology
- C SC 600s that are relevant -- e.g., Algorithms for Computational Biology
Security
- C SC 600s that are relevant -- e.g., Security Through Obscurity
- Math 515A -- Introduction to Abstract Algebra
- Math 515B -- Second Course in Abstract Algebra
- Math 539 -- Algebraic Coding Theory
- Math 546 -- Theory of Numbers
- Math 636 -- Information Theory
Software Engineering
- C SC 600s that are relevant -- e.g., Software Validation
- ECE 573 -- Software Engineering Concepts
- ECE 576 -- Engineering of Computer-Based Systems
- MIS 521 -- Systems Modeling and Simulation
- MIS/C SC 541A -- Introduction to Information Systems Analysis and Design
- MIS 553 -- Software Systems
- MIS 582 -- Web-Based Systems Development
- MIS 696D -- Models for Quantitative Analysis
- Math 571 -- Design of Experiments
- Math/C SC 589 -- Software Tools for Computational Science and Engineering
- Math/C SC 543 -- Theory of Graphs and Networks
- PHIL/C SC 501A -- Symbolic Logic
- PHIL/C SC 501B -- Symbolic Logic
Artificial Intelligence/Cognitive Science
- MIS/C SC 540 -- Artificial Intelligence
- LING/C SC 538 -- Computational Linguistics
- LING 478/578 -- Speech Technology
- LING 588 -- Stochastic Language Processing
- LING 699 -- Seminar in Human Language Technology
- PHIL/C SC 501A -- Symbolic Logic
- PHIL/C SC 501B -- Symbolic Logic
- Math/C SC 502 -- Mathematical Logic
- Math/C SC 579 -- Game Theory and Mathematical Programming