Recommended Program of Study for Machine Learning at Oregon
State University
Each PhD student at Oregon State University must assemble a Program of
study and have it approved by their committee. You should read the Graduate
Advising Guide for Computer Science to see all of the rules for
the PhD program in Computer Science. For machine learning graduate
students, I recommend the following courses:
- Core CS Courses
- CS 515 Algorithms and Data Structures
- CS 516 Theory of Computation
- Three Areas of Concentration. You are required to have 3 areas
of concentration, each containing 3 courses. For my students,
however, I recommend four areas of concentration: AI, Theoretical
CS, Statistics, and then a fourth area that depends on the main
focus of your thesis. If your thesis topic involves pattern
recognition and computer vision, then obviously the Computer
Vision area is important. If your topic involves intelligent user
interfaces, then the software engineering and HCI area is
critical. If you are working with formal knowledge
representations, the programming languages area is recommended.
- Artificial Intelligence
- CS530: Artificial Intelligence I
- CS531: Artificial Intelligence II
- CS533: Intelligent Agents
- CS534: Advanced Machine Learning
- (optional) CS535: Cybernetics
- (optional) CS539: Selected Topics in AI
- Theoretical Computer Science
- CS521: Computability
- CS523: Analysis of Algorithms
- CS524: NP Complete and Harder Problems
- Statistics. If your work focuses on supervised learning,
then I recommend ST561-3 and ST581/583. If you are working on
sequential and spatioal data, then ST565 is important. If you are
working on reinforcement learning, then ST541/543 are recommended.
- ST561: Theory of Statistics
- ST562: Theory of Statistics
- ST563: Theory of Statistics
- ST565: Time Series and Spatial Statistics
- ST581: Linear Programming
- ST583: Non-Linear Optimization
- ST541: Probability, Computing and Simulation
- ST543: Applied Stochastic Processes
- Computer Vision and Graphics
- CS550: Introduction to Computer Graphics
- CS555: Signal and Image Processing
- CS556: Computer Vision
- (optional) CS559: Selected Topics in Vision and Graphics
- Software Engineering/HCI/Programming Languages
- CS561: Software Engineering
- CS581: Programming Languages
- CS582: Object-Oriented Analysis and Programming
- CS583: Functional Programming
- CS584: Human Factors in Programming Languages
- CS519: Information Retrieval and Recommender Systems
- CS589: Human-Computer Interaction
- A core course in each area of CS. I recommend that you take the
introductory graduate course in each of the remaining parts of
computer science. This is especially important for students who plan
a career in teaching.
- CS511: Operating Systems/Distributed Systems
- CS540: Database Management Systems
- CS550: Introduction to Computer Graphics
- CS561: Software Engineering
- CS572: Computer Architecture
- CS581: Programming Languages
I recommend that graduate students take 2 courses per quarter and fill
out their 12-hour schedule with thesis research credits. Prior to
passing the Preliminary Exam, you should register for CS501. After
passing the Preliminary Exam, you should register for CS603.
The rationale for taking only two classes per quarter is to allow you
to begin doing research immediately. My goal is for each
Ph.D. student to publish one paper per year during their graduate
studies. To be competitive for a faculty position at a research
university, you should average two papers per year. Ideally, you
would graduate with 4 journal papers (under review or published) and
at least 4 conference papers published.