Table of Contents

Courses

What Should I Take?

First, look at the list of courses being offered on the CS Department web site, http://www.cs.purdue.edu/academic_programs/courses/. If you are a first-year masters students, you will face many choices of classes. The choices for a first-year Ph.D. student are somewhat restricted. Talk to second or third year graduate students. The best place to get information about a course and a professor is from someone who has taken the course, and not neccessarily your advisor or professors in the department. This is probably the most important step in the registration process.

Most people find it best to select courses so that their workload is balanced among various types of work: reading, programming, theory, mathematics (calculus, real analysis, linear algebra), etc. Taking two heavy programming courses together is a lot of work, three can be suicidal.

There is also the number of course hours to consider. Typical and maximum course loads are shown below. Keep in mind that what is said to be “typical” below may be a lighter or heavier load than what is right for you. If you are a masters candidate, how much of a rush you are in to complete your degree will also be a factor. Taking the maximum number of credit hours in your first semester, however, is probably a recipe for disaster.

A graduate student is classified as a full-time student if he or she is registered for 6 credit hours when funded by an assistantship or 9 credit hours when funded by a fellowship. Masters students need (eventually) to complete 10 three-credit courses, or 8 three-credit courses with a thesis, for their degrees. One of CS 502 or CS 565, one of CS 503 or CS 536, and one of CS 580 or CS 584 are required; the others are chosen by the student. You should get an idea of the courses you might like to take now, but don't bother trying to work out a schedule more than a semester in advance–the actual scheduling of courses (regardless of what the course descriptions say) is quite variable. There are also “topics” courses that are offered each semester, some of which you might find interesting. A 590 topics course is directed study for students who wish to undertake individual reading and study on approved topics. A general topics course is worth three credit hours and at most 2 three-credit 590 courses can be used towards satisfying MS degree requirements. It usually takes three to four semesters to complete the work for a Masters degree.

Ph.D. students should schedule carefully to be sure that, by the end of the third semester in the department, they will have passed at least one Qualifying Course Examination in each of these four boxes:

Area Course(s)
Algorithms and Complexity 580, 584
Systems I 502, 565
Systems II 503, 536
Artificial Intelligence 572
Databases 541, 542
Geometric Modeling, Visualization, Graphics 530, 531, 535, 586
Numerical Computing 514, 515, 520
Parallel and Distributed Computing 525
Security 526, 555
Simulation and Modeling 543, 544
Software Engineering 510

Course Advice: plan on taking three courses in each of your first two semesters, chosen from the required list above. Taking three (rather than four) courses a semester will allow you to concentrate on passing the four qualifiers. Also remember to try and balance the types of course work for each semester, as we described earlier.

Qualifier Advice: even MS students should plan on taking qualifying exams. Should you later decide to switch the the Ph.D. program, having the qualifiers completed will make the transition much easier.

Financial Advice: note that late registration or late fee remission can result in a hefty financial penalty (about $200). Make sure to get some sort of schedule in place and your fees paid by the time the first scheduling deadline comes around (typically right at the beginning of the semester). This fine can be assessed even if you don't actually owe money if your schedule is not confirmed, so make sure you finalize your schedule on SSINFO.

More information on the courses can be found at http://www.cs.purdue.edu/graduate_program/curriculum/

Course Descriptions

About The Different Courses…
The following section contains descriptions of CS courses that are offered on the graduate level in our department. It does not include courses offered by other departments (i.e. MATH, EE, STAT, MGMT) that are also available to obtain graduate credit in the M.S. and Ph.D. programs in CS. For transferring credit check with your academic advisor, or with Dr. Gorman.

As there are substantial differences among the courses offered in regard to the amount and type of work for assignments, projects, in-class presentations, term papers, and exams, we are presenting a table that shows the major differences among these courses. The info given is mostly drawn from a survey among grad students in our department in Spring 1993, although some additions have been made for courses which were not included in the 1993 survey. Although some of the courses have changed over the years, this list will give you a rough idea of the type of workload to expect. However, course contents and workload depend considerably on the professor who teaches the course. The same number of programming assignments for two courses does not necessarily indicate a comparable effort in writing the code. Therefore, nothing presented here should be taken literally, only as an outline. Do not be afraid to talk to the professor who will teach the course and ask him more detailed information. Not all courses are offered every semester. Check with the bulletin board across from CS 172, or http://www.cs.purdue.edu/acad-info/. Furthermore, it is not our purpose to show you a way to a degree at Purdue with the least possible effort, but to give you the chance to balance your course load for each semester according to your interests and degree program requirements.

The official prerequisites listed on the course pages are not completely accurate in terms of what you really need. The survey disclosed that unstated prerequisites for nearly every course, except theory courses, are a good understanding of the C programming language, the UNIX Operating System, and the X Window System. It is not absolutely necessary to know these to do well in every course, but knowing them can greatly increase your efficiency. A comment nearly everyone made at some point was: ``The course is hard and requires lots of work…but in the end it's worth it.'' So, you can look forward to a lot of pain during the semester, and a very good feeling afterwards.

Course Topic Load
CS 502 Compiler Design written(1), program.(5), proj.(1), quizzes(1), midterm, final - heavy programming
CS 503 Operating Systems written(1), program.(5), proj.(1), midterm, final - heavy reading, heavy programming
CS 510 Software Metrics - moderate reading
CS 514 Numerical Analysis written + program.(8), midterm, final - math and programming
CS 515 Analysis of Linear Systems - math
CS 520 Computational Methods written + program.(10), proj.(2), midterm, final - math, problem solving, big projects
CS 525 Parallel Computing written, program, midterm, final
CS 526 Information Security written(5), project(3), midterm, final
CS 530 Introduction To Scientific Visualization written, program, midterm, final
CS 535 Computer Graphics program.(4), midterm - very heavy programming
CS 536 Computer Networks written(5), program.(3),midterm, final - reading, heavy programming
CS 541 Database Systems written(5), program.(2), midterm, final - reading, light programming
CS 542 Distributed Database Systems written(3), proj.(1), midterm, final - reading, light programming
CS 543 Introduction to Simulation and Modeling of Computer Systems written(2), program.(6), proj.(1), presentation(1), midterm, final - heavy programming
CS 544 Simulation and Modeling of Computer Systems presentation(1), paper evaluation(2) - heavy reading
CS 555 Cryptography written(6), proj.(1), midterm, final - moderate reading and problem solving, math
CS 565 Programming Languages written + program.(5), proj.(2), midterm, final - heavy reading, theory, projects
CS 580 Algorithm Design written(8), midterm, final - theory and problem solving
CS 584 Theory of Computation written(10), presentation(1), quizzes(2), midterm, final - theory, participation in class
CS 603 Advanced Operating Systems - reading, systems programming
CS 614 Ordinary Differential Equations - math
CS 615 Partial Differential Equations - math and programming
CS 636 Internetworking program.(3), proj.(1), presentation(2), quizzes(2), oral final - heavy programming, participation in class
CS 638 Multimedia Networking and Operating Systems written(7), project(3), presentation(3)

Registering

The course-request forms are on the table in front of Amy Ingram in LWSN 1137, along with some instructions for filling out the top portion. Add the courses you want, get the form signed by your advisor, and take the form back to LWSN 1137. Amy Ingram will either keep of all it and take care of your registration (this happens before semester begins), or keep the yellow copy and instruct you to take the white copy to the registrar (This happens during the semester). Dr. Gorman sends reminders regarding important scheduling dates and process every semester.

The Registrar’s Office is in the lowest level of Hovde Hall, Room 45. Take your white copy and wait in line, doing what the signs tell you to do. Your requests will be typed into the University’s computer system on the spot, but the actual registration is an overnight batch job. Your course schedule and invoice can be picked up the next day at the same place.

Once you have your invoice, you can pay (in cash) at the Bursar’s Office teller windows, or (by check) at the Bursar’s drop box.

The schedule you pick up may not have all the courses you requested. Over-full courses and other problems may not be detected when your request is typed in, but only when the overnight registration job runs. If you are requesting very popular courses, it can be a good idea to include second choices on your original course request. If you didn’t do that, you can submit another request form to add other classes. You will have another overnight wait to get your revised schedule and invoice.

If you decide to add or drop a course after your registration, you must fill out an “ADD/DROP” form (the very same form you used to register), available in room LWSN 1137. Depending on when you do this, you may need your advisor’s signature and/or instructor’s signature. Directions are on the back of the form.

If you are paying for your education with some loan money, there is an additional step or two to the process, at least involving the infamous Window M in Hovde. This is where you sign your loan check(s) and have your account with the University credited. You may now be able to arrange direct deposit and avoid standing in line for checks. Ask questions at the information desk in the lower level of Hovde if things aren’t obvious when it comes time to show the money

Ph.D.

The basic requirements for getting a Ph.D. at Purdue are fairly straightforward. This section is a quick overview of what needs to be done to satisfy those requirements. For more information, we suggest talking to older grad students (we've all been through at least part of this stuff) and professors. In a nutshell, you begin by satisfying the English proficiency requirements if you are not a native speaker of English. You do the requisite number of courses, taking care to do the proper core courses. You pass the quals, find an advisor, dream up a problem, take a prelim, solve the problem, undergo a public defense, wear a black robe with a blue hood, have your photograph taken with assorted luminaries at the Hall of Music, and then ride into the blue yonder. Allow us to elaborate…

Core Courses

The phrase “core courses” used to refer to seven specific courses every Ph.D. candidate was required to take. Starting with the Fall of 1999, you get some latitude in choosing those seven courses. They will be the four you choose for your qualifying course examinations, which already cover four different areas, plus three more eligible courses that you choose. At least one of these must be in another area, so that your seven core courses represent at least five areas. The only official list of eligible courses is the one at http://www.cs.purdue.edu/grad-info/gradinfo/qual.html. You should try to take these courses as early in your grad student career as possible, to prepare for the qualifying exams.

Qualifiers

These are the exams that decide if you are capable of doing a Ph.D., or at least so the department claims. The format has recently been revised, so some older graduate students may not be completely familiar with the new process. Dr. Gorman is a definitive source for information. The Qualifying Exams (usually known as Qual 1s) are tests taken in addition to a core course's final examination (it may be a separate exam, or additional problems on the final examination). You must pass these exams in four courses, in the first three semesters of your graduate work (so at least four of the courses you take in your first three semesters must be qual courses).

The exams are usually graded within two weeks. The Graduate Committee then meets in a smoke-filled room, studies the entrails of a farm herbivore (or uses another equally scientific, inscrutable, and never really disclosed method) and decides who passes. The last step is sometimes delayed, resulting in extra secretion of HCl in the duodenum of the candidates. Usually, a student will pass or fail outright, but sometimes students are asked to take an additional oral or written exam in one of the areas they were weak in. There is no set percentage of students that pass.

The key to passing Qual 1s is studying. Hard. The best way to study is to do lots of problems, and then do some more. When you get tired of this and want to take a break, do some MORE problems. Repeat this the last two months of a course. The best source of problems is old qualifiers, copies of which (back to about 1987) can be obtained from Amy Ingram (CS 102) and in the Math Library on the 3rd floor of Math Building. Some old grad students have pre-worked sets of old qualifiers and other tests (midterms and finals). There are now reading lists available for all of the classes; see Amy Ingram for these.

Following the Qual 1s, you will have two semesters to pass the second stage Qualifying Exam, or Qual 2. The Qual 2 is currently an oral examination, for which you will be asked to read a number of important papers in your chosen area of research and then discuss their finer points with a committee of examining professors. Qual 2s seem to be a widely varying and often unique experience, so you might want to talk to a few post-Qual students and your advisor to get a feel for what to expect in your area. If you pass quals, you've leaped the highest hurdle on the way to that coveted sheepskin.

Advisor and Plan of Study

After passing Quals, get a thesis advisor (if you don't already have one). This will be the person overseeing your research while you work on your dissertation. In other words, a thesis advisor is a combination friend, co-worker, guru, and mother/father figure. He or she will therefore be one of the more important people in your life for the next couple of years, so choose carefully. Desirable traits in an advisor include:

Usually, you talk to several professors in your area before making a decision. It is possible to change advisors after making your decision, but it is not generally recommended because it tends to add a year to the time you spend here. Once you have an advisor, your next job is to form the rest of your advisory committee. These will be the people who read your thesis, point out flaws, and eventually decide whether you have done Ph.D.-caliber work. As such, they are important people in your education. You and your advisor find (at least) two other professors interested in your area to be on this committee, one of which should be a senior faculty member. About the time you are doing this, you should also file a Plan of Study, an official document telling the administration what classes you have taken, what courses you plan to take, your area of interest, and other vital information. See Amy Ingram for the form. Normally, you should find an advisor and file the plan of study by the end of the semester after you pass Quals. The plan must include at least five more courses (in addition to the core seven) that are not independent studies or seminars.

Thesis

Now that you've demonstrated your aptitude at passing hard tests, and thus qualified yourself for research work, you have to thrash about, reading landmark papers from your area, trying to find a thesis topic. This is probably the second most difficult step in the process (the most difficult is, of course, passing Quals). Remember that your goal at this point is to find a topic that you can learn to do research on; that's what the degree process is about. The topic doesn't have to be earth-shattering; in fact, you'll probably get out much more quickly if it isn't. Save the good stuff for when you're on your own trying to get grants and such. Also, consider that by the time you get done with your thesis, you will be eating, sleeping, living and breathing your topic. Try to pick something that you can survive becoming incredibly intimate with for 12 to 24 months; also, by the time you're done, you'll probably be burned out on the topic, so pick something you won't regret not working on for some time after you've graduated.

Once you've figured out exactly what it is that you're going to research, take your Preliminary Examination (usually known as Prelims). The party line on this exam is that it tests the student's competence in a research area and readiness for research on some specific problem. In practice, it is a public thesis proposal, given so that your committee can see what you've been up to, where you're headed, and give constructive criticism. The Graduate Committee will appoint one extra member to your advisory committee for this exam, presumably to keep everyone honest. Usually, this is given about one year after Quals, after you get your first results on your thesis topic. Note, however, that the official rule is that Prelims must be taken by the end of the third semester following the one in which the student passes the qualifying exam and at least two semesters before the examination on the dissertation.

Now, work like crazy, trying to prove whatever it is that you're trying to prove. Build, measure, tear down, read, build some more, and conclude. Write it all down in a nice form; we'll call that your dissertation. Hope no one else is doing exactly the same thing at another university; if they are, and manage to publish their results before you, even by one week, you're probably out of luck, and have to start all over again on a new topic. Get your committee to agree that they like your dissertation. Then you have to make it satisfy the department's rules for Thesis Format, which define what a CS dissertation must look like, dealing with margins, figures, captions, etc. This used to be set by the University, but recently control has been given to each department. You can find the rules in http://www.cs.purdue.edu/acad-info/thesis.format. Fortunately, there are macro packages for LATEX (the most-used typesetting system in the department) that do most of the nitty-gritty stuff for you. There may also be a format file for Word for Windows, if for some incomprehensible reason you want to subject yourself to that. Finally, schedule a final defense. This is a public oral exam before your committee and anyone else that cares to come; it is where you present what you've done for the past few years. It's also the last chance for people to pick your work apart and point out flaws; if there are some major ones, you may have to go back and cover them and schedule another defense (ouch). Hopefully, your committee will have pointed them out before the defense, so you have all the answers right at your fingertips. If you've done all your work, this should be a breeze.