Software Engineering Minor
Effectively building modern software systems at scale
requires not just programming skills, but also engineering skills. These skills include the ability to interact
effectively with customers to gather the requirements for a system in a
precise
way; to develop a design that resolves competing quality attributes; to
make
tradeoffs among schedule, cost, features, and quality to maximize value
to
stakeholders; to work effectively with other engineers; and to assure
the
quality of the delivered software system.
We hear regularly from industry that these skills are crucial to
them,
and that they are interested in students with a strong software
engineering background.
Overview
The software engineering minor is designed to teach the
fundamental tools, techniques, and processes of software engineering. Through internships and a mentored project
experience,
students gain an understanding of the issues of scale and complexity
that
motivate software engineering tools and techniques.
The core curriculum includes material both on
engineering the software product and on the process, teamwork, and
management
skills that are essential to successful engineering.
Graduates of the program should have the
technical, process, and teamwork skills to be immediately productive in
a
mature engineering organization.
Minor Requirements
Admission
The Software Engineering Minor is open to undergraduate students in any
major in the university. The program is limited to 15
students per incoming class (as of Spring 2008, however, we are not yet
close to that limit). For priority consideration, applications
are due 10 days before the beginning of Spring and Fall course
registration, and decisions will be made 3 days before course
registration begins so students can plan effectively. Upcoming
due dates are October 31, 2008;
April 10, 2009; November 6, 2009; and April 9, 2010. Students
may
petition the Director for admission outside this schedule.
To apply, send email to jonathan.aldrich
at cs.cmu.edu and cc cora13
at cs.cmu.edu. Include in your email:
- Full name
- Andrew ID
- Preferred email address (if different)
- Semester you intend to graduate
- QPA
- All (currently) declared majors and minors, or home college if no
major declared
- Statement of purpose (maximum 1 page) - Describes why you want to
take this minor and how it fits into your career goals
- Proposed schedule of required courses and internship (this is
your plan, NOT a commitment)
Prerequisites
- 15-211: Fundamental Data Structures
and Algorithms
- Either 15-212 or 15-213
Core Course Requirements
- 15-313 Foundations of Software
Engineering
- 15-413 Software Engineering Practicum
Electives
- One
domain-independent course focused on technical
software engineering material, and
- One
engineering-focused course with a significant
software component, and
- One course
that explores computer science
problems related to existing and emerging technologies and their
associated
social, political, legal, business, and organizational contexts
- 05-801 Computer-Supported Cooperative Work
- 08-200
Ethical Dilemmas and Policy Issues in Computing
- 08-300
Constructing Appropriate Technology
- 08-531
Usable Privacy and Security
- 08-532 Law of Computer Technology
- 08-533 Privacy Policy, Law and Technology
- 08-781
Mobile and Pervasive Computing Services
- 08-782
Adaptive Trading Technologies
- 08-801
Dynamic Organizations and Networks
- 08-810
Computational Modeling of Complex Socio-Technical Systems
- 15-390
Entrepreneurship for Computer Science
- 15-391
Technology Consulting in the Community
- 15-421 Web
Commerce, Security and Privacy
- 15-502
Technology for Global Development
- 19-402
Telecommunications, Technology Policy &
Management
- 19-403 Policies of Wireless Systems and the Internet
- 70-311 Organizational Behavior
- 70-414
Technology Based Entrepreneurship for CIT
- 70-421
Entrepreneurship for Computer Scientists
- 70-459
Web Business Engineering
- 70-471
Logistics and Supply Chain Management
- 88-260
Organizations
- 88-341
Organizational Communication
- 88-343 Economics of Technological Change
- 88-393 Technology and Economic Growth
Required Internship and Reflection Course
A
software engineering internship of a minimum
of 8 full-time weeks in an industrial setting is required.
The student must be integrated into a team
and exposed to industry pressures. The
intern
may work in development, management, quality assurance, or other
relevant
positions. The director of the SE minor
program has sole discretion in approving an internship experience based
on
these criteria. Students should confirm
that an internship position is appropriate before accepting it, but
internships
that fulfill the criteria will also be accepted after the fact.
- 17-413 Internship
Reflection (required 6 unit course, number to be determined, to
be offered Fall semester): Each student
will write an issue-focused reflection
and analysis of some personal software engineering experience,
typically (but
not always) based on the engineering internship above.
This report must be passed by one SCS faculty
member and one SE Ph.D. student, for both technical content and
effective
written communication. Initial course
meetings will cover the reflective, writing, and speaking process. In later meetings, each student will present
his or her experience through a 30-45 minute talk, which will be
evaluated for
communication skills and critical reflective content.
This course is limited to enrollment of 16, and students who are
admitted to the minor program are given first priority.
Double
Counting Rule. At most 2 of the
courses
used to fulfill the minor requirements may be counted towards any other
major
or minor program.
For questions contact:
Jonathan Aldrich
Director, Software Engineering Minor Program
Wean 8212
412-268-2728
jonathan.aldrich@cs.cmu.edu