Software
engineering is the creation of software using a process similar to
other engineering disciplines. It allows for software to be reliable
and developed within time and cost estimates. The software
engineering curriculum prepares students for a career in reliable,
economical software development.
Programming is only one phase (construction) of software
engineering. There are many other aspects of the software
engineering process, such as requirements definition, architectural
design, and quality assurance, which need to be applied in order to
develop reliable software on time and within budget constraints. The
software engineering curriculum provides students a solid background
in both the theory and practice of all phases in the software
engineering process, beginning with their first course of study in
the Department of Computer Science and Software Engineering, and
continuing to the end of the senior year.
Since software is a non-physical product developed and executed on
computers, the software engineering curriculum has computer science
as its primary engineering science. The computer science courses
taken by software engineering majors include the study of
algorithms, data structures, database concepts, computer
architecture, programming languages and operating systems. Software
engineering majors also complete important courses in other closely
related fields, such as discrete mathematics, digital logic design,
and engineering statistics.
Coverage of software engineering topics begins in a three-term
introduction to software development during the freshman and
sophomore years. This study continues with coverage of core software
engineering areas in the junior year, including software
requirements, software architecture, software design, software
project management, software construction, software maintenance,
software evolution, software quality assurance, and formal methods
in software specification and design. All of these courses include
individual and team projects relevant to that particular area of
software engineering. These projects generally include both written
and oral presentations, building upon a technical communication
course which introduces the student to the skills necessary for this
important aspect of being a software professional. Throughout the
senior year, a capstone team project develops and delivers software
for a “real-world” client, which is put on display locally at a
public exposition.
Throughout society, software exists for a wide variety of
application domain areas. Each student is required to take at least
three courses in a particular application domain, so that RHIT
software engineering graduates can more effectively apply the
software engineering principles they learn to that domain area.
Students can choose from a variety of domain areas, including
engineering, scientific and commercial applications.
Courses in various computer science topics such as computer
graphics, artificial intelligence, computer networks, computer
vision, web-based information systems, and cryptography are among
those available as advanced electives. In addition, free elective
courses students to tailor their undergraduate education to their
specific goals.
The department has its own local area network. This network is
connected to the campus-wide network and the Internet. Laboratory
machines are mostly Sun Ultra workstations. Software engineering
majors have unlimited access to the department’s laboratories.
Software engineering students are frequently employed by the
computing center as user consultants and by the department as system
managers and course assistants.
The student chapter of the Association for Computing Machinery
provides seminars and other technical activities throughout the
year. The national honor society in the computing and engineering
disciplines, Upsilon Pi Epsilon and Tau Beta Pi, both have chapters
at Rose-Hulman. Software engineering majors are also eligible to
join the Order of the Engineer, which focuses on the ethical and
professional responsibilities of an engineer, during the spring of
their last year of study.
Software Engineering Program Educational
Objectives and OutcomesBy the time students graduate
with a software engineering degree from Rose-Hulman, they will
be able to:
-
Develop complex systems (including
analysis, design, construction, maintenance, quality assurance and
project management) using the appropriate theory, principles,
tools and processes.
-
Use appropriate computer science and
mathematics principles in the development of software systems.
-
Solve problems in a team environment
through effective use of written and oral communication skills.
-
Have knowledge of current issues
presently involved in effectively performing duties as a software
practitioner in an ethical and professional manner for the benefit
of society.
-
Practice the lifelong learning
needed in order to keep current as new issues emerge.
-
Develop software in at least one
application domain.
By the time students graduate with a software engineering degree
from Rose-Hulman, they will
have demonstrated:
- The
ability to apply software engineering theory, principles, tools
and processes, as well as the theory and principles of computer
science and mathematics, to the development and maintenance of
complex software systems.
- The
ability to design and experiment with software prototypes.
-
The ability to select and use
software metrics.
-
The ability to participate
productively on software project teams involving students from
both software engineering and other majors.
- Effective
communication skills through oral and written reports and software
documentation evaluated by both peers and faculty.
- The
ability to elicit, analyze and specify software requirements
through a productive working relationship with project
stakeholders.
-
The ability to evaluate the business
and impact of potential solutions to software engineering problems
in a global society, using their knowledge of contemporary issues.
- The
ability to apply appropriate codes of ethics and professional
conduct to the solution of software engineering problems.
- The
knowledge required to understand the need for and the ability to
perform in lifelong learning.
- The
basic knowledge required in a software engineering application
domain track.
The Computer Science and Software Engineering faculty strives to
maintain an open atmosphere that encourages mutual respect and
support as well as learning and sharing of knowledge.
SOFTWARE ENGINEERING
|
Freshman Year |
|
Fall Term |
Credit |
CSSE
MA
PH
RH
CLSK |
120
111
111
131
100 |
Fundamentals of
Software Development I...
Calculus I ..............................
Physics I................................
Rhetoric & Composition ....
College and Life Skills ........ |
4
5
4
4
1 |
| |
|
|

18 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
MA
PH
HSS |
220
112
112 |
Fundamentals of
Software
Development II ...............
Calculus II..............................
Physics II...............................
Elective................................... |
4
5
4
4
|
| |
|
|

17 |
|
|
|
|
|
|
Spring Term |
Credit |
ECE
MA
HSS
Science |
130
113 |
Introduction to Logic
Design................................
Calculus III............................
Elective..................................
Elective.................................. |
4
5
4
4 |
| |
|
|

17 |
|
|
Sophomore Year |
|
Fall Term |
Credit |
CHEM
CSSE
MA
MA
|
201
232
221
275
|
Engineering Chemistry
I......
Computer Architecture I ...
Differential Equations and
Matrix Algebra I..............
Discrete & Combinatorial
Algebra I.......................... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
CSSE
MA
|
230
333
375
|
Fundamentals of
Software
Development III ..............
Database Systems ..............
Discrete & Combinatorial
Algebra II .........................
Domain track course........... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
MA
HSS |
304
|
Programming Lang.
Con.....
Elective.................................
Elective................................. Domain track
course.......... |
4
4
4
4 |
| |
|
|

16 |
| |
|
|
|
|
|
|
|
Junior Year |
|
Fall Term |
Credit |
CSSE
CSSE
MA
RH |
371
373
381
330 |
Software Requirements
&
Specification ....................
Formal Methods in Spec....
Introduction to Probability
with Statistical
Applications ....................
Technical
Communications ............. |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
CSSE
CSSE
|
372
374
332 |
Software Project
Manage...
Software Arch. and Des.....
Operating Systems..............
Domain track course........... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
CSSE
HSS
|
376
377 |
Sofware Quality Assur.......
Software Arch. and Des. II
Elective..................................
Domain track course
or free elective............ |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
| |
|
|
|
| |
|
|
|
|
|
Senior Year |
|
Fall Term |
Credit |
CSSE
CSSE
HSS |
375
497
|
Software Construction and
Evolution..........................
Senior Project I ...................
Elective...................................
Domain track course
or free elective.................. |
4
4
4
4
|
| |
|
|

16 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
CSSE
HSS
Free |
498
|
Senior Project
II.....................
Elective...................................
Elective...................................
Elective .................................. |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
HSS
Free |
499
|
Senior Project III
Elective ..................................
Elective .................................. |
4
4
4 |
| |
|
|

12 |
| |
|
|
|
| |
|
Total credits required: 192 |
|
| |
|
|
Summary of graduation requirements for the software
engineering major
To complete the
major in software engineering a student must complete the
following:
1. All required
courses listed by number in the schedule of courses above:
CSSE120, CSSE220, CSSE230, CSSE232, CSSE304, CSSE332, CSSE333,
CSSE371, CSSE372, CSSE373, CSSE374, CSSE375, CSSE376, CSSE377, CSSE497,
CSSE498, CSSE499; MA111, MA112, MA113, MA221, MA275, MA375,
MA381; ECE 130; PH111, PH112, CHEM201; RH 131, RH330; CLSK100.
2. One
additional CSSE elective course
except CSSE 325, CSSE 473, CSSE 474, and CSSE 479. In addition,
use of CSSE 49x to satisfy the CSSE elective requires approval
of the Director of Software Engineering or the CSSE department
head.
3. All of the
courses in one of the following application domain tracks:
- Biochemistry (4-5
courses, 16-20 credit hours)
-
CHEM 202 Engineering Chemistry II (4)
-
CHEM 230 Intro. to Organic Chem.
& Biochemistry (4) or
CHEM 251-252 Organic Chemistry I-II (4 each)
-
CHEM 330 Biochemistry (4 hours)
-
CHEM 363 Quantum Chem. & Molecular Spectroscopy (4)
- Biomedical (3 courses,
4 credit hours)
- BE 310 Analysis of
Physiological Systems I (4)
- BE 320 Analysis of
Physiological Systems II (4)
- BE 360 Biomaterials (4)
- Commercial Applications (3 courses, 12 credit hours)
- Electrical Engineering (4 courses, 16 credit hours)
- ES 203 Electrical Systems (4)
- MA 222 Differential Equations II (4)
- ECE 200 Circuits and Systems (4)
- ECE 300 Signals and Systems (4)
- Ethics and Law of
Business (3 courses, 12 credit hours)
- RH 101 Introduction to
Philosophy (4)
- SL 290 Business Law
(4)
- VA 303 Business and
Engineering Ethics (4)
- Engineering Management
(3 courses, 12 credit hours)
- SL 151 Principles of
Economics (4)
- VA 454 Financial
Economics (4)
- VA 498 Technology
Management and Forecasting (4)
- Fundamentals of Engineering (6 courses, 22 credit
hours)
- MA 222 Differential Equations II (4)
- ES 201 Conservation and Accounting (4)
- ES 202 Fluid and Thermal Systems (3)
- ES 203 Electrical Systems (4)
- ES 204 Mechanical Systems (3)
- ES 205 Analysis and Design of Engineering Systems (4)
- Geography (3 courses, 12 credit hours)
- SL 191 - Cultural Geography (4)
- VA 291 - Geography of Europe (4)
- GL 391 - Geography of Africa and Southwest Asia (4)
- International Business and Economics (4 courses, 16
credit hours)
-
SL 151 Principles of Economics (4
hours)
-
SL 355 Intermediate
Macroeconomics (4 hours)
-
GL 357 European Economics (4
hours)
-
GL 459 International Finance (4
hours)
- Physical Modeling (4
courses, 16 credit hours)
- MA 222 Differential
Equations and Matrix Algebra II (4)
- MA 323 Geometric
Modeling (4)
- MA 371 Linear Algebra
(4)
- MA 433 Numerical
Analysis (4)
- Scientific Computing (4 courses, 16 credit hours)
- MA 222 Differential Equations and
Matrix Algebra II (4)
- MA 373 Applied Linear Algebra for Engineers (4)
- MA 433 Numerical Analysis (4)
- MA 439 Mathematical Methods of Image Processing (4)
- World Political Studies (3 courses, 12 credit hours,
plus one additional requirement)
-
GL 366 – The European Union (4)
-
GL 262 – International Relations
(4)
-
SL 363 – European Politics and
Government (4)
-
and some type of international
experience related to the domain track.
(requires CSSE Department Head approval)
The application
domain track should be selected in consultation with the
student’s academic advisor, and filed with that advisor by the
beginning of the junior year.
4. One
additional course offered by the Department of Mathematics.
The student’s academic advisor must approve the course used to
satisfy this requirement. Where appropriate, a course in
the student’s application domain track can be used to satisfy
this requirement.
5. Four credits
of science electives, which can be any CHEM, PH, or AB courses
not already required for the software engineering major.
6. Twenty-eight
credits of additional courses offered by the Department of
Humanities and Social Sciences; the distribution of these
courses must meet the requirements of that department.
Where appropriate, one or more courses in the student’s
application domain track can be used to satisfy part of this
requirement.
7. Sufficient
free elective courses to meet the minimum credit hour
requirement of 192 hours for a software engineering major.
These courses must have the approval of the student’s academic
advisor. Free electives may be selected from any
Rose-Hulman course except Military Science and Aerospace
Studies.
Area Minor in Software Engineering
Advisor: Dr. Bagert
Required Courses
CSSE 120, Fundamentals of Software Development I
CSSE 220, Fundamentals of Software Development II
CSSE 230, Fundamentals of Software Development III
CSSE 371, Software Requirements and Specification
CSSE 372, Software Project Management
Two additional courses in software engineering chosen from CSSE
373-377. |
| |
|