Curriculum
The courses required to satisfy the requirements for the MSCSS degree fall into five categories:
- Undergraduate prerequisite courses (required if you are lacking the equivalent of an undergraduate degree in computer science)
- Core courses (required of all students)
- Elective courses (required of all students)
- Capstone course (required of thesis and project option students)
- Independent study
Undergraduate prerequisite courses
If you are entering the MSCSS program without a strong computer science background, you will be required to take undergraduate computer science courses to prepare you for graduate studies in the field. You should have experience in the following area before taking graduate-level courses in the MSCSS program:
- Object-oriented programming (one year)
- Discrete mathematics
- Data structures
- Analysis of algorithms
- Computer organization and architecture
- Project management and software engineering
In some cases, work experience may substitute for formal course work in a given area. At the time of admission, you will be told if you will be required to take any prerequisite courses.
Core courses
All graduate students are required to take three core courses (15 credits total):
- TCSS 543 Advanced Algorithms or TCSS 540 Theory of Computing
- TCSS 558 Applied Distributed Computing
- TCSS 598 Research Seminar (typically taken over three quarters)
Core course are typically taken after any required prerequisites have been completed.
Elective courses
The number of elective courses you are required to take depends on the program of study you have chosen. In the course-only option, 30 credits of elective courses are required. For the capstone option, 15 credits of electives are required. Most electives will be taken as 500-level courses, however, if you are enrolled in the course-only option, you may take 10 credits of approved 400-level courses. If you are enrolled in the project or thesis option, you may take 5 credits of 400-level classes. Be sure to get approval before registering for any 400-level class. Students may also apply 600-level independent study courses toward elective credit with approval from the Graduate Committee.
Independent study (TCSS 600)
After taking the core courses, you may decide that you have a strong interest in an area of computer science that is not covered in any course being offered. In this case, you may propose that you be permitted to substitute an independent study course for an elective course. To do this you must find a faculty member who will supervise the independent study and submit a proposed plan of study to the Graduate Committee for approval. An independent study course cannot be taken as preparation for either TCSS 700 or 702.
Thesis and capstone project courses (TCSS 700/TCSS 702)
Students enrolled in the thesis option are required to take 10 credits of TCSS 700 and students in the project option are required to take 10 credits of TCSS 702. These courses are taken in place of 10 credits of elective courses. If you choose to switch from the thesis or project option to the course only option, neither 700 nor 702 units may be substituted for the elective credits in the course-only option.