|
Software Engineering is a discipline concerned with the practical problems
of developing large-scale software systems. Software engineers are the
architects of the software component of a computer-based system, providing
several levels of representations or blueprints leading to specifications
through which programmers build the subsystems and modules of the system.
Software development methodologies and management techniques combine with
theories from mathematics and computer science in a cost-effective manner
to solve real-world system development problems. This degree provides
students with the theoretical foundations of software engineering,
experience in team projects involving software development and management,
hands-on experience with state-of-the-art CASE tools, an understanding of
advanced software development and management techniques, and exposure to
the most recent developments and emerging technologies in SE.
All students complete any necessary prerequisite courses plus 14
graduate courses, including a project or a thesis in an advanced area
related to Software Engineering, and so develop their own personal area of
expertise as part of completing this degree program. For this reason, they
are not required to take a Core Knowledge Examination. However, to be
admitted into the program, they need to have demonstrated through their
prior coursework that they can consistently perform at a B level or
higher. Students complete the requirements of one of the three
concentrations: Project Management, Software Development, or Software
Systems.
The Project Management
Concentration of the Master of Science in Software
Engineering addresses the management of the quality of software products
and processes and provides coursework in management and measurement
techniques.
The Software Development
Concentration of the Master of Science in Software
Engineering addresses the foundations, methodologies, and tools for
developing high quality large-scale software systems, with an emphasis on
the technical issues of software development.
The Software Systems
Concentration of the Master of Science in Software
Engineering includes a solid foundation in traditional computer science
coursework together with advanced courses in Software Development,
Distributed Systems, and Programming Languages.
The Software Engineering program has two phases:
The Prerequisite Phase ensures that all students acquire the necessary
background prior to enrolling in graduate courses. All or part of the
Prerequisite Phase may be waived if a student has the equivalent academic
background. In the Graduate Phase, students develop as software
engineering professionals by completing required courses that provide a
common body of knowledge for their concentration as well as advanced
courses that complement and add depth to the common body of knowledge. All
students also complete a project or a thesis in an advanced area related
to Software Engineering, and so develop their own personal area of
expertise. Individual needs are addressed through elective courses chosen
in consultation with a faculty advisor.
Prerequisite Phase
|
The following courses are required for all concentrations:
| CSC
215 |
Introduction to Structured Programming using C++ |
| and CSC
310 |
Principles of Computer Science I |
or CSC
225
|
C++ for Programmers
(CSC 225 is equivalent to both CSC 215 and CSC 310.Only
students with experience in programming languages should take this
course.) |
| CSC
315 |
Analysis and Design Techniques |
| CSC
323 |
Data Analysis and Statistical Software I |
| CSC
415 |
Foundations of Computer Science I |
| CSC
416 |
Foundations of Computer Science II |
| MAT
145 |
Calculus for Information Systems
(MAT 145 is equivalent to MAT 150, 151 Calculus I and II) |
Also required for the Project Management
Concentration:
One advanced computer science course chosen in consultation with
a faculty advisor, for example, one of the following.
| CSC
343 |
Introduction to Operating Systems |
| CSC
349 |
Databases and Data Management |
| TDC
361 |
Basic Communications Systems |
| CSC
417 |
Foundations of Computer Science III |
Also required for the Software Development
Concentration:
| CSC
417 |
Foundations of Computer Science III |
Also required for the Software Systems
Concentration:
| CSC
343 |
Introduction to Operating Systems |
| CSC
345 |
Computer Architecture |
| CSC
417 |
Foundations of Computer Science III |
By taking these courses and receiving a grade of a B- or better in
each, the student will have completed the requirements of the Prerequisite
Phase. All or part of the Prerequisite Phase may be waived if a student
has the equivalent academic background. Alternatively, students with
practical experience may complete a Graduate Assessment Examination (GAE)
to show competency in a prerequisite. All students are blocked from
enrolling in Graduate Phase courses prior to completing their
prerequisites. The student must submit a Change of Status request
when the Prerequisite Phase
is completed to inform the Student Services offices that the block
can be removed. The form must be submitted two weeks before the
student intends to register for graduate level classes. The student
will then be considered a fully admitted student, and may pass to
the Graduate Phase of the program.
|
Degree Requirements
Students in this degree program must complete 14 courses (56 hours)
beyond the Prerequisite Phase. Successful completion of the Software
Engineering Program consists of:
Completion of required courses with a grade of B or better. Students
with prior coursework equivalent to any required courses may be allowed by
a Software Engineering counselor to take other related advanced courses as
substitutes.
Completion of advanced courses.
Successful completion of a project or successful defense of a thesis.
Students who complete a project need to consult with an advisor before
registering for SE 696 to discuss possible topics. Students who complete
the thesis must first complete the course CSC 690 Research Seminar to
develop a thesis proposal. They should choose a thesis advisor before the
end of the first quarter following completion of their required courses
and should also form a thesis committee, consisting of three faculty
members, including the thesis advisor. They must write a thesis proposal
and obtain approval of this proposal from their thesis committee before
enrolling in the course CSC 698 Master’s Thesis.
Graduate Phase
|
| Students may register for graduate courses only after meeting all
Prerequisite Phase requirements. The Graduate Phase requirements are: |
Project Management Concentration
Students must complete the following seven required courses:
| CSC
423 |
Data Analysis and Regression |
| SE
430 |
Object-Oriented Modeling |
| SE
431 |
Formal Software Specifications and Development I |
| SE
450 |
Object-Oriented Software Development |
| SE
465 |
Software Engineering Principles |
| SE
468 |
Software Measurement and Project Estimation |
| SE
477 |
Software and System Project Management |
Students must also complete four of the following courses. At least two
of these must be from the software engineering department.
| CSC
426 |
Values and Computer Technology |
| CSC
428 |
Data Analysis for Experimenters |
| CSC
447 |
Concepts of Programming Languages |
| CSC
449 |
Database Systems |
| HCI
440 |
Introduction to Human-Computer Interaction |
| SE
420 |
Object-Oriented Design |
| SE
427 |
Software Quality Management |
| SE
433 |
Software Testing |
| SE
455 |
Software Development Methods |
| SE
466 |
Software Engineering Projects |
| SE
467 |
Software Reliability |
| SE
469 |
Software Safety |
| SE
480 |
Software Architecture |
| SE
529 |
Software Risk Management |
| SE
531 |
Formal Software Specifications and Development II |
| SE
533 |
Software Validation and Verification |
| SE
550 |
Distributed Software Development |
| SE
558 |
Software Methodologies |
| SE
571 |
Software Maintenance |
| SE
590 |
Advanced Topics in Object-Oriented Technology |
| SE
690 |
Research Seminar |
Student must also complete one of the following:
Continuous enrollment in SE 699 Software Engineering Research
Continuation is required after enrollment in SE 696/698 until the
project/thesis is completed. Students who choose to complete CSC 698
Master’s Thesis must first complete CSC 690 Research Seminar (which may
count toward the Advanced Phase or elective requirement)..
Students in the Project Management Concentration must also complete two
elective courses. See elective course restrictions
below.
|
Software Development Concentration
Students must complete the following seven required courses.
| SE
430 |
Object-Oriented Modeling |
| SE
431 |
Formal Software Specifications and Development I |
| SE
455 |
Software Development Methods |
| SE
465 |
Software Engineering Principles |
| SE
491 |
Software Engineering Studio |
| SE
531 |
Formal Software Specifications and Development II |
| SE
690 |
Research Seminar |
Students must also complete four of the following courses. At least two
of these must be software engineering.
| CSC
423 |
Data Analysis and Regression |
| CSC
426 |
Values and Computer Technology |
| CSC
428 |
Data Analysis for Experimenters |
| CSC
447 |
Concepts of Programming Languages |
| CSC
449 |
Database Systems |
| HCI
440 |
Introduction to Human-Computer Interaction |
| IS
571 |
Software Maintenance |
| SE
420 |
Object-Oriented Design |
| SE
427 |
Software Quality Management |
| SE
433 |
Software Testing |
| SE
450 |
Object-Oriented Software Development |
| SE
466 |
Software Engineering Projects |
| SE
467 |
Software Reliability |
| SE
468 |
Software Measurement and Project Estimation |
| SE
469 |
Software Safety |
| SE
477 |
Software and System Project Management |
| SE
480 |
Software Architecture |
| SE
529 |
Software Risk Management |
| SE
533 |
Software Validation and Verification |
| SE
550 |
Distributed Software Development |
| SE
558 |
Software Methodologies |
| SE
571 |
Software Maintenance |
| SE
590 |
Advanced Topics in Object-Oriented Technology |
Student must also complete one of the following:
Continuous enrollment in SE 699 Software Engineering Research
Continuation is required after enrollment in SE 696/698 until the
project/thesis is completed. Students who choose to complete CSC 698
Master’s Thesis must first complete CSC 690 Research Seminar.
Students in the Software Development Concentration must also complete
two elective courses. See elective course restrictions
below.
|
Software Systems Concentration
Students must complete the following four required courses.
| CSC
447 |
Concepts of Programming Languages |
| CSC
491 |
Design and Analysis of Algorithms |
| SE
455 |
Software Development Methods |
| SE
690 |
Research Seminar |
Students must also choose one of the following programming language
courses.
| CSC
448 |
Compiler Design |
| CSC
535 |
Formal Semantics of Programming Languages |
| CSC
547 |
Advanced Topics in Programming Languages |
Students must also choose one the following Distributed Systems
courses.
| DS
420 |
Foundations of Distributed Systems |
| SE
550 |
Distributed Software Development |
Students must also choose three of the following software development
courses.
| SE
430 |
Object-Oriented Modeling |
| SE
431 |
Formal Software Specifications and Development I |
| SE
450 |
Object-Oriented Software Development |
| SE
465 |
Software Engineering Principles |
| SE
491 |
Software Engineering Studio |
Student must also complete one of the following:
Continuous enrollment in SE 699 Software Engineering Research
Continuation is required after enrollment in SE 696/698 until the
project/thesis is completed. Students who choose to complete CSC 698
Master’s Thesis must first complete CSC 690 Research Seminar.
Students in the Software Systems
Concentration must also complete four elective courses. See elective
course restrictions below.
|
|
Elective courses are in the range
of 420-699 and must be from the school of CTI. Credit for courses
taken outside of the school will only be given if approved by a
faculty advisor. Courses suggested for any Prerequisite Phase in any
concentration do not count for elective credit. Any course required
for the student’s concentration but taken as part of the
requirements of another degree earned by the student may be waived,
but cannot be used for elective credit.
|