Core Courses

All students in the MSCSSE degree program must take courses to fulfill the breadth of knowledge requirements in three core areas: Design, Programming, and Foundations. The MSCSSE curriculum offers multiple courses under each core area where students can tailor their path through the program to meet their educational objectives. Students in the MSCSSE program are required to take one 5 credit course from each of the following groups.


The Programming (Development) group teaches students essential concepts and skills in building software solutions based on contemporary tools and platforms. Through extensive hands-on assignments, these courses also cover best practices in practical implementation. Currently offered courses that students can take to meet the Programing group include:

CSS 543: Advanced Programming Methodologies
CSS 533: Distributed Programming
CSS 534: Parallel Programming in Grid & Cloud



The Design group teaches students essential concepts in software engineering and process including skills in analysis, problem decomposition, and solution modeling through developing applications using design languages. Design courses also teach students to use effective oral and written communication skills, team member skills, and working in a team environment in designing software systems. Currently offered courses that students can take to meet the Design group include:

CSS 555: Evaluating Software Design
CSS 553: Software Architecture



The purpose of the foundations group is to emphasize the methods of scientific inquiry and emphasize theoretical and conceptual knowledge as it relates to practical/how-to-knowledge. The foundations group also covers ethical issues that arise in computing and software systems. Courses in this group provide students with the opportunities to solve problems that emphasize the ability to synthesize and apply theories and techniques in a professional setting. Specifically, students will be solving problems that address the relationship between mathematical and/or scientific foundations and actual practice. Currently the course offered to meet this core requirement is:

CSS 565: Research Methods in Software Development
CSS 566: Software Management


System Group:

Courses within the systems group provide students with the necessary exposure to technologies and methods they will be interacting with as a software developer. Depending on a student's background, 1 or 2 classes may be required as part of their degree pathway. Systems Group courses are taken upon matriculation into the MSCSSE degree, and upon the advice Chair or Associate Chair of the CSS Division. Students can fulfill the background knowledge in this area by completing the Graduate Certificate in Software Design and Development. Contact the CSS Graduate Advising office for further information.