Computer Science, MS
The MS program is intended as a preparation for professional careers in software development, although it will also provide the background for further graduate work leading to the PhD degree. The program stresses the integration of theoretical knowledge with practical applications. The course curriculum includes a two semester software engineering capstone project.
Candidates for the degree must complete a minimum of 30 credits, at least 24 of which must be in courses numbered 600 or above.
Object-Oriented Software Development I and II (CS680 and CS681), including Software Development Laboratory I and II (CS682 and CS683) are required courses and carry a total of 12 credits. Students must take this sequence during the final part of their coursework. We also require that students choose two theoretical electives and four applied electives from among the following courses:
Theoretical Electives: Theory of Computation (CS620), Theory of Formal languages (CS622), Analysis of Algorithms (CS624), Introduction to the Theory of Computation (CS420), Logical Foundations in Computer Science (CS720), Topics in Algorithm Theory and Design (CS724), and Mathematical Logic (Math470).
Applied Electives: User Interface Design (CS615), Database Management Systems (CS630), Architecture of Database Systems (CS634), Database Application Development (CS636), Database-Backed Web Sites and Web Services(CS637), Semi-Structured Data and XML Documents on the Web (CS639), Computer Architecture (CS641), Operating Systems (CS644), Computer Communication Networks (CS646), Multimedia Networking (CS647) Wireless Networks and Mobile Computing (CS648), Compilers (CS651), Image Processing (CS664), Artificial Intelligence (CS670), Neural Networks (CS672), Natural Language Processing (CS674), Computer Vision (CS675), Database System Internals (CS734), Data Mining (CS738), High Performance Computer Architectures (CS741), Implementation of Very High Level Programming Languages (CS750), Parallel Programming (CS752) Color Science for Computer Graphic Applications (CS768), or these following undergraduate courses: Introduction to Software Engineering (CS410), Operating Systems (CS444), Introduction to Internetworking (CS446), Structure of Higher Level Languages (CS450), Real-Time Systems (CS445), and Graphics (CS460).
No more than two upper-level undergraduate courses may be used for graduate credit in the MS program. Upper-level undergraduate courses are undergraduate courses at the 400 level mentioned in one of the previous lists.
CS240 and CS310 are general prerequisites for all graduate courses.
To complete the MS program students must participate in a software development project by taking the software development sequence (CS680 through CS683). In general, this sequence is taken during the last two semesters in the MS program. The project is approved by a committee that consists of two faculty members (professors who are currently teaching the software development course and supervise the software development laboratory) and the Graduate Program Director. Students must submit the documentation for the projects and give a final oral presentation. The final project documentation will contain a signatory page containing the signatures of all members of the committee; a copy of the project will be retained by the department.
In exceptional circumstances, students with significant industrial experience may request a waiver of the software development requirement by applying to a faculty committee established for this purpose. As a part of the waiver application, the student must present a portfolio demonstrating the nature of this experience. Students who receive a waiver will be required to complete an MS thesis.