• MENU

Graduate level course offerings: Computer Science & Software Engineering

CSSE 571 Software Requirements and Specification

Students will learn how to capture software requirements and handle difficult situations in gathering data to build systems. Special emphasis is given to working with clients and to learning about the needs of users who interact with a system. The course addresses elicitation, specification, and management of software system requirements. Additionally, the course examines iterative prototyping user interactions for a system.


CSSE 574 Software Design 

Students learn about effective approaches for designing complete software systems using object-oriented techniques and design patterns. Architectural principles and alternatives, detailed design documentation, and relationships between levels of abstraction are examined in the context of an evolving system requiring tradeoff analysis and communication of the alternatives.


CSSE 575 Software Maintenance and Evolution

This course builds upon the key methods and techniques associated with constructing software to ensure the maintainability and evolution of software products. Key elements of software maintenance process, impact analysis, software reengineering/reverse engineering/design recovery, source code analysis are examined. Then topics on how to produce software systems with the measurable maintainability properties are covered from both theoretical and practical perspectives. Advanced topics in model-based engineering for evolvable products are also examined along with emerging technologies that are relevant to the sustainability of software.


CSSE 576 Software Quality Assurance

This course examines the theory and practice of assuring that a product conforms to its specification and intended use. Basic topics include software quality assurance methods, test plans and strategies, unit level and system level testing, software reliability, peer review methods, and configuration control responsibilities in quality assurance. This course stresses quality in the software process, and introduces quality programs such as the Software Engineering Institutes Capability Maturity Models, Total Quality Management, and Six Sigma as well as programs from systems engineering such as Lean Development.

CSSE 579 Software Project Management

Software Project management serves as a central element of successful software engineering and its response to ever-changing software product’s. This course examines project management from the perspective of producing and maintaining a software product. Topics include software risk management, software estimation, software process, scheduling, rework, stakeholder management, software team building, and conflict management. Additionally, program management and portfolio management are addressed with topics like project evaluation and selection, scope management, contingency planning, are examined in term of key issues and techniques to address them.


EMGT 587 Systems Engineering

Introduces system engineering and analysis techniques, including the systems life cycle, system design procedures, risk analysis, analysis methods including reliability and maintainability. Provides applications for mechanical, electrical and a wide variety of other systems. Uses Visio or CORE software to create IDEFO drawings and other documentation for system design.



Software Engineering Elective Courses



CSSE 572 Software Process Improvement

This course explores the key processes and activities necessary to produce software. Software processes exist for various forms ranging from a standard systems engineering oriented linear process to highly iterative discovery processes. The course examines how to select the effective process(es) for the types of projects that confront today's software engineers. To determine process effectiveness and performance, software metrics is also covered from a process perspective in order to understand statistically based process improvement approaches. This includes introduction to foundations of measurement, models of software engineering measurement, software products and process metrics, and metrics management.


CSSE 573 Formal Methods in Specification and Design

This course provides both an introduction to the use of mathematical models of software systems for their specification and validation as well as a deeper examination of emerging formal specification methods and models. With the advancement of model-based software engineering, formal specification and generative topics has taken center stage. This course provides the student with the fundamentals of formal methods and provides insights into practical applications using current tools like Z, B, VDM++, and Alloy. Topics include finite state machine models, axiomatic and algebraic approaches, models of concurrent systems, verification of models, and limitations of these techniques.


CSSE 577 Software Architecture 

This is a course in the architecture and design issues and tradeoffs, of complete commercial systems. Topics include building on components and make/buy decisions, quality attribute optimization, architectural principles and alternative styles, high-level design documentation, and modeling practices in human interface design.


CSSE 578 Software Construction

This advanced course goes beyond programming and examines construction methods and techniques associated with producing software products. In addition to detailed design methods and notations, implementation tools/environments, coding standards and styles, peer review techniques, and the like, the student is exposed to component-based systems, reuse-based software construction, and generative systems approaches to provide an appreciation for how software systems are constructed in contemporary software engineering organizations. 


Specialization Elective Courses



CSSE 513 Intelligent Systems

Theory, design, and engineered use of knowledge-based and case-based AI systems using available commercial tools as illustrations. Modeling and implementing intelligent behavior using such systems. Examples will be drawn upon from agent-based systems, swarms, and autonomous systems to give the student an appreciation for the techniques involved. 


CSSE 532 Computer Networks

This course examines the fundamentals of computer network organization, design, and implementation of computer networks, especially the Internet. Network protocols, protocol layering, flow control, congestion control, error control, packet organization, routing, gateways, connection establishment and maintenance, machine and domain naming, security. Each of the top four layers of the Internet protocol stack: application (FTP, HTTP, SMTP), transport (TCP, UDP), network (IP), link (Ethernet). Advanced topics in computer networks are presented with respect to emerging computing trends and architectures.


CSSE 533 Database Systems

This course provides a brief introduction to key relational database concepts with a review of entity relationship diagrams for data modeling, properties and roles of transactions, and SQL for data definition and data manipulation. The course then provides a substantive examination of contemporary APIs for access to databases through enterprise examples from several application domains. Advanced topics are selected from object-oriented databases, object-relational databases, query processing, transactions, transaction logging, concurrency control, database recovery, parallel and distributed databases, security and integrity, data mining and data warehousing to round out the course for the software engineering professional. 


CSSE 542 Computer Security

This course introduces foundational computer security topics such as access control matrices and standard system models, as well as policies for security, confidentiality, and integrity. Additional topics include malicious logic, vulnerability analysis, and auditing. Computer network attack techniques are discussed and explored in a closed environment to motivate and inform discussion and exploration of computer network defense techniques. Design and implementation issues include key management, cipher techniques, authentication, principles of secure design, representation of identity, access control mechanisms, and formal evaluation and certification techniques are presented in the context of engineering security properties into a software system from the beginning (rather than bolting them on afterwards). Throughout the course, the student will be given an appreciation of ethical, theoretical, and practical issues of information security in light of vulnerabilities that enable impersonation, viruses, worms, and other emerging threats. Key threat models will be examined with respect to the current security practice.


CSSE 590 Advanced Topics in Software Engineering   Pre: Graduate standing or permission of instructor

This advanced topics course is designed to provide a mechanism for introducing emerging or specialized topics into the MSSE curriculum. Instructors will provide specifics for these courses as they pertain to the topic and teaching approach.


CSSE 591 Directed Independent Studies in Software Engineering  

This course provides a mechanism for independent study on advanced software engineering subject relevant to a student’s graduate studies goals, but not included in regularly offered courses. May be repeated for credit if topic or level is different. Pre: Graduate standing and, permission of MSSE program director and instructor.


EMGT 522 Organizational Behavior

Review of fundamental activities (planning, organizing, leading, controlling) related to the management of organizations. The concepts and techniques for maximizing the effectiveness of human resources in the achievement of organizational and project goals are emphasized. Topics include communication, team process, motivation, selection, development, and appraisal. Special focus is given to the management of human resources in a technical environment.


EMGT 523 Marketing Issues in a Technical Environment

A study and overview of the components of marketing principles and how those mesh with management in a technical environment. Topics will include activities associated with product, price, promotion, and distribution and how these impact the technical manager from idea generation through delivery to and service for the customer. 


EMGT 526 Technology Management and Forecasting

Elements of managing the growth and operation of the technological systems. Technology forecasting tools including expert methods, quantitative trend analysis, simulation, and gaming. Consideration of secondary forecasts, especially those of social and economic nature. Techniques for enhancing creativity, managing multi-disciplinary projects and impact assessment techniques are considered. Computer-based forecasting tools are applied. 


EMGT 533 Intercultural Communication

The core of this course is the presentation of the Constructivist theory of communication and its application. Students are exposed to ethnographic interview methods and the concept of culture shock using the BAFA role-play simulation. Discussion of organizational culture includes a review of publications on this topic, the impact of culture on organizations, as well as strategies for change. May be used as a management core class. 


EMGT 535 Globalization, Strategy and Organizational Change

Reviews the strategy literature and the issues surrounding strategy implementation in the context of organizational change. Includes a team project that explores the strategic implications of globalization for specific industries during the next 10 years and the construction of scenarios as a tool for understanding and communication. Individual students will develop and evaluate strategy for a specific organization within the scenarios developed in the team project. 


Required Capstone Project Sequence



CSSE 597/8 Capstone Software Project I and II

Credits as assigned; however, not more than 8 credits can be applied to MS degree requirements 
Pre: Completion of technical component and business core or permission of instructor

The integration of software project, process, and technical considerations in new software product production and evolution. The identification of software engineering challenges faced in producing a commercially viable product. The focus is on a substantial team project involving 4-5 team members interacting with a software consuming/producing organization. This integrated project must include the identification of a new product including key business and technical issues, development of a viable software project plan, a valid requirements specification, a relevant software architecture, a verifiable software product design, and a testable software product to be delivered to the customer. A final report with oral presentations is required.

Admissions, Programs, and Courses

Our graduate program offers a variety of courses and programs taught by passionate and experienced professors to help you achieve your academic and professional goals. Learn more about our admissions process, and the programs and courses we are proud to offer.

2 males and 1 female student sitting together smiling


There are a variety of options for both traditional and non-traditional students at Rose-Hulman. Learn more about how to apply for graduate school.

large group of students sit around table with their laptops


Rose-Hulman offers graduate studies in 10 different programs. Some programs offer evening classes off campus to make it possible for professionals to continue to work fulltime while earning their graduate degree.

2 males look closely at an apparatus


A number of courses have been approved by the Graduate Studies Committee for credit toward graduate degrees. Even programs that do not offer graduate degrees, like chemistry and math, offer classes that can be applied toward required graduate credit.

Research Facilities

There are seven research facilities on our campus all operating with the dual mission of providing education, as well as performing research and development. Projects at the facilities reflect faculty and student interests, as well as industry needs. As part of the graduate program at Rose-Hulman, you will likely participate in thesis research in one of our facilities.  
Exterior view of Myers Hall

John T. Myers Center for Technological Research with Industry

This 40,000-square-foot facility is devoted to student and faculty project work. The center provides space and specialized instrumentation for students and faculty to engage in engineering design projects for external clients. There is ample laboratory space for project-based education.

Group of students talk while sitting at their desks with computers

Rose-Hulman Ventures

Rose-Hulman Ventures is a program that brings together students and technology-based companies. For students, the program provides the best engineering professional practice experience possible. In turn, this provides businesses with prototypes, refinements to the design of existing products and expansion in current engineering capabilities. The facility is on the south campus of Rose-Hulman.

Female student wearing goggles works with apparatus

JRSI Laboratory

In this lab, you will have the opportunity to work side by side with surgeons, faculty and engineers to design, execute and present scientific investigations in an effort to develop engineering solutions to clinical problems. Mechanical testing in the lab is conducted utilizing a state-of-the-art biaxial materials testing machine.

Dr. Azad Siahmakoun smiling

Dr. Azad Siahmakoun

Dr. Azad Siahmakoun serves as the Associate Dean of the Faculty for graduate studies at Rose-Hulman. Dr. Siahmakoun holds a Ph.D. from the University of Arkansas.