Course of Study Recommendations

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.