Peter A. Dinda
You should choose your graduate coursework with an eye to making yourself a well-rounded computer scientist. In particular, you should be familiar with the core areas of computer science. The following lists some of the courses of interest in these core areas. This is not to say that you should take all or even any of these courses. However, when you graduate, you should be sufficiently familiar with the material in each of them so as not to embarrass yourself.
Algorithms and Theory
CS 310 Mathematical foundations of computer science
CS 336 Design and analysis of algorithms
Artificial Intelligence
CS 348 Introduction to AI
CS 344 Design of Computer Problem Solvers
Programming Languages
CS 322 Compiler Construction
? Semantics of programming languages
Hardware Systems
ECE 203 Computer engineering
ECE 361 Computer architecture
Software Systems
CS 343 Operating systems
CS 395 Introduction to networks
CS 339 Database systems
CS 395 Building internet services
CS 395 Advanced operating systems
CS 395 Introduction to parallel and distributed computing
CS 395 Computing on computational grids
In addition to this “breadth”, you should also graduate being a competent developer. You should become familiar with at least one high level language (C, C++, Java, …) and at least one scripting language (Perl, Python, Rexx, …). Furthermore, you should become familiar with systems programming on Unix.
If you decide to do research with me, you will use techniques taught in the following courses. This does not mean you will have to take these courses, but it will give you an idea of the kinds of things you’ll learn and do.
ECE 222 Signals and systems
ECE 302 Probabilistic systems and random signals
ECE 359 Digital signal processing
ECE 360 Feedback systems
ECE 363 Digital filtering
ECE 415 Systems identification
ECE 422/423 Random processes in communications and control
ECE 458 Information theory
ECE 486 Queuing theory
STATISTICS 454 Time Series Analysis
I am planning to design and teach the following two courses. These will comprise an introduction to the kind of research I do.
Performance data analysis
Signal analysis and prediction in systems and networks
It is vitally important that you attend (and give!) as many seminars as possible during your sojourn with us.