M.S.S.E. Requirements

The MSSE degree requirements vary depending on the tracks. Every student takes the required six core courses (18 credits). The remaining courses are from the track courses (CS track, ECE track, and IST track). Please fill out an MSSE Plan of Study and return it to the Graduate Coordinator by the 7th week of your first term.


Core courses cover topics that are essential for the practicing software engineer. All MSSE students take the following six required core courses:

  • (CS 575) Software Design
  • (CS 576) Dependable Software Systems
  • (INFO 627) Requirements of Engineering and Management
  • (INFO 638) Software Project Management (Fall, Winter, Spring, Summer)
  • (ECE-C 500) Fundamentals of Computer Hardware (on campus students) OR (INFO 631) Information Technology Integration (online students)
  • (ECE-C 600) Fundamentals of Computer Networks (on campus students) OR (CS 544) Computer Networks (online students)

(Note: MSSE students do not need to take any pre-requisites before taking the required INFO or ECEC courses. ECEC courses are only offered on campus, so online students must take the alternative courses. Please e-mail the Graduate Coordinator to register for INFO courses, as they are restricted for students outside of the iSchool).

Computer Science Track

The Computer Science track of the MSSE degree welcomes students who are interested in a variety of technical topics pertaining to the development of software systems such as databases, networks, operating systems, graphics and animation systems, compilers, expert systems, and systems for scientific computing. Students will use languages and apply techniques to specify, design, implement, test, and maintain software systems.

Students in the computer science track take nine courses in addition to the six core courses listed above (for a total of 15 courses). Of the nine additional courses, four courses must be from one of the five concentration areas, plus five electives (three must be graduate level CS courses and two may be fulfilled by any graduate level CS or INFO courses, except for INFO 605 and INFO 530).

Students in their final three quarters of study who have a 3.5 GPA or better have the option to take a nine-credit project instead of three elective courses. To register for a project, the student must select a project advisor, a member of the CS faculty, who is willing to supervise them. The project is a large-scale software development effort in which students specify, design, implement, and test a significant software system.


Computing Systems Concentration

  • (CS 500) Database Theory
  • (CS 540) High Performance Computing
  • (CS 543) Operating Systems
  • (CS 544) Computer Networks
  • (CS 643) Advanced Operating Systems
  • (CS 645) Network Security
  • (CS 647) Distributed Software Systems
  • (CS 675) Reverse Software Engineering
  • (CS 676) Parallel Programming
  • (CS 741) Computer Networks II
  • (CS 680) Special Topics in Computing Systems

Programming Languages Concentration

  • (CS 525) Theory of Computation
  • (CS 550) Programming Languages
  • (CS 551) Compiler Construction I
  • (CS 552) Compiler Construction II
  • (CS 650) Program Generation and Optimization
  • (CS 675) Reverse Software Engineering
  • (CS 676) Parallel Programming
  • (CS 680) Special Topics in Programming Languages

User Interface Software Concentration

  • (CS 530) Developing User Interfaces
  • (CS 536) Computer Graphics
  • (CS 630) Cognitive Systems
  • (CS 636) Advanced Computer Graphics
  • (CS 637) Interactive Computer Graphics
  • (CS 680) Special Topics in User Interface Software

Artificial Intelligence Concentration

  • (CS 510) Artificial Intelligence
  • (CS 511) Robot Lab
  • (CS 583) Intro to Computer Vision
  • (CS 610) Advanced Artificial Intelligence
  • (CS 612) Knowledge-Based Agents
  • (CS 613) Machine Learning
  • (CS 634) Advanced Computer Vision
  • (CS 680) Special Topics in Artificial Intelligence

Theory & Scientific Computation Concentration

  • (CS 520) Computer Science Foundations
  • (CS 521) Data Structures & Algorithms
  • (CS 522) Data Structures & Algorithms II
  • (CS 540) High Performance Computing
  • (CS 567) Applied Symbolic Computation
  • (CS 668) Computer Algebra I
  • (CS 669) Computer Algebra II
  • (CS 676) Parallel Programming
  • (CS 680) Special Topics in Theory & Scientific Computation