ISRI
Logo  

PhD Program in Software Engineering

Institute for Software Research, International

 

The ISRI offers a PhD Program in Software Engineering within the School of Computer Science.

[Expectations for Graduates] [Prerequisites] [Applications] [Program Plan] [A Typical Plan of Study]
[Courses] [Practical Experience within the Program] [Research and Thesis]

Introduction

Software-based systems have established themselves as essential parts of business and everyday living in the emerging global economy. As software becomes ubiquitous, the relation between end users and software development undergoes fundamental changes.  No longer is software produced from scratch by a team of experts and delivered to clients. Increasingly,

Carnegie Mellon has established the Institute for Software Research International (ISRI) as a center of excellence for long-term interdisciplinary fundamental research, apprenticeship-based education and training, and international collaborations to address the challenge of designing, developing, integrating, validating, and maintaining practical, large-scale, high-quality software-intensive systems. The creation of the ISRI is a natural extension of Carnegie Mellon's long-standing commitment to research in software systems.

ISRI research activities include experimental prototyping, empirical modeling, codification of experience, formal analysis, creating design/development strategies for modern software, and developing public policy positions.  The educational activities are tightly integrated with the research and demonstration projects.

ISRI's PhD program infuses the research agenda with deep appreciation of the practical issues of developing product-quality software-intensive systems.

Expectations for Graduates

Graduates will be prepared for faculty positions in software engineering, for research positions in industrial laboratories, and for leadership positions in development in both computer industry and application shops.

In addition to talent and research skills that will allow them to advance the field, graduates will have a clue about practical issues of software design and development from requirements acquisition through maintenance. They will be prepared to enter research or advanced development positions in application areas, distributed networks, embedded/critical systems, and other specialties as well as conventional software system development. They will know enough about managing projects and about the software industry that they will not be naive about business questions.

[back to top]

Prerequisites

Evidence of proficiency in computer science at an undergraduate level with emphasis on development of software or hardware systems.

Evidence of intellectual ability to succeed in a rigorous, high-quality doctoral program, demonstrated through transcripts and GREs.

Prior industrial software development experience, especially software design and programming experience as a member of a system team, is a strong asset. Students without sufficient quantity or quality of experience will spend more time during the program gaining practical experience. At a minimum, we expect that every student entering the program will have experience equivalent to two summer internships as a member of an industrial software development team.

Extensive, high-quality software development experience may substitute for any of the normal requirements. It will be individually evaluated in each case.

[back to top]

Applications

Please make applications through the usual SCS admissions process. The application deadline, mailing address, and fee are the same as for other SCS PhD programs. In addition to the materials required for all programs,

  1. Include a cover message asking to be considered in the Software Engineering PhD program. Also make a notation on the application form indicating that you are applying for this program.
  2. Elaborate your professional resume with a description of how your industrial or commercial experience prepares you for this PhD program. For example, outline the parts of the software life cycle with which you have experience or exposure.
  3. The GRE general test is required, and the computer science subject test is strongly recommended but not required.

    [back to top]

Program Plan

Courses
1-2 courses Star course in design and engineering (Software Engineering, Research Methods in Software Engineering)
1-2 courses Star courses in systems (Computer Systems, Software Systems, or Application Systems)
  Note: Three courses in the above two areas are required, with at least one course in each area
1 course Star course in analysis (Statistics, Performance Analysis, Algorithms, Theory of Programming Languages)
1 course A course about economics, business, or policy issues, preferably in the software industry
1 elective 12 university units of electives
  Note: A "star" course is a course that has been determined to satisfy certain standards of breadth and evaluation
Practicum The practicum involves participation in a software engineering practical experience, and reflection and analysis of that experience. The results are presented through an oral presentation and a written report. We are in the process of revising the practicum description and requirements; please check for updates in the near future.
Experience We strongly prefer industrial software development experience prior to entering the program. A minimum of two summers is required. Students who enter with little development experience will increase their experience during the program.
Skills
Speaking and writing
Application area knowledge in some specific application or technical specialty area
(The programming skill requirement of other programs is subsumed by the experience requirement)
Teaching TA in two courses. Normally, one will be a classroom course (20 hours/week for 1 semester) and the other will be as a mentor/advisor for a masters project (7-8 hours/week for 1 calendar year)
Community Engagement Participate in weekly ISRI meeting on current research activity; contribute actively to the tasks required to make ISRI a rich and rewarding environment
Research Throughout the program, participate actively in an ISRI research project
Thesis Conduct an original investigation leading to significant new results

Estimated time requirement: 4 CY, accounted for as 1 AY for courses, 0.5 AY for teaching, 1 CY for background work and proposal, 2 CY for thesis, including contributions to sponsoring project. Expect up to 1 additional CY for students lacking sufficient prior experience.

A note on highly experienced students: We especially value the special perspective that very senior software developers can bring to a research program. These very senior developers typically have 10 years or more of system development experience, at least 5 years in a position of senior responsibility for design and outcomes. It is rare to attract such a person as a PhD student. Instead of designing a program that anticipates all such situations, we recognize that each will be a special case requiring special arrangements.

[back to top]

A Typical Plan of Study

Evaluations of student progress in SCS at Carnegie Mellon compare student achievement to the criterion, "Is this student making reasonable progress to completing an excellent PhD?". Consequently, the requirements may be satisfied in whatever order best serves the student and the institution.

A typical plan of study includes the following requirements:

 

Fall Spring Summer
Year 1

2 Courses
1/2 Time Research
Research Meeting

2 Courses
1/2 Time Research
Research Meeting

Away for Internship
Year 2

1 Course
TA one course
1/4 Time Research
Research Meeting

2 Courses
1/2 Time Research
Research Meeting

Internship or Full-Time Research
Research Meeting

Year 3

Mentor 1 Course
5/8 Time Research
Research Meeting


Studio
5/6 Time Research
Thesis Proposal
Research Meeting

 

1 Course
5/6 Time Research
Research Meeting

Rest

Full Time Thesis Research
Research Meeting

Full Time Thesis Research
Research Meeting

Full Time Thesis Research
Research Meeting

Common variations include TAing a course in the Spring of year 1 or 2 instead of the Fall of year 2, TAing a second course instead of mentoring a studio for a year, and moving the course from the TAing semester to the third year.

[back to top]

Courses

The courses listed below are examples of courses available. Students interested in courses not listed here should contact their advisor for guidance and suggestions.

MSE Core Courses: We have adapted some of the existing Master of Software Engineering (MSE) core courses to serve both MSE and PhD students. MSE courses available for PhD credit are cross-listed as 17-7xx (e.g., 17-751, Models of Software Systems), and may require an additional project to satisfy the PhD requirement.

Design and Engineering

Systems

Analysis

Business and Policy

Electives

Practical Experience within the Program

An integral part of the ISRI research program is ongoing interaction with industrial-strength software development in a real (not just realistic) setting for hands-on education.

Two kinds of practical experience are required: 12-unit practicum and experience in lieu of prior industrial experience.

Examples of a 12-unit practicum include:

Experience in lieu of prior industrial experience:

In addition to the Practicum, students who have had minimal prior industrial experience will be expected to deepen their understanding and perspective of industrial software development during the Ph.D. program. Alternatives include part-time work with local industry, extended internships in development groups (summer plus semester), and special arrangements with industrial partners in ISRI research projects.

[back to top]

Research and Thesis

Research in the program will address topics of interest to ISRI. Our focus is on systems that exploit the growing infrastructure for high performance, nearly ubiquitous computing and communication, especially systems that the public depends on for services provided through the electronic marketplace. The research approach for each project will be selected to match the needs of the project. Approaches appropriate to PhD theses include (but are not limited to):

For more information about the Software Engineering PhD Program, contact: isri-phd@cs.cmu.edu.


This page is part of the Institute for Software Research, International site in the School of Computer Science at Carnegie Mellon University. Please send inquiries about the Institute for Software Research, International to the ISRI office. This page was last modified on September 17, 2003.