| |
Programs - Software Engineering
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 allow 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
Graduates from the software engineering program will be prepared for many types of careers in software development. In the early phases of their careers, we expect Rose-Hulman software
engineering graduates to 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.
Software Engineering Program Outcomes
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 communications 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 explain the impact of globalization on computing and
software engineering
- The ability to interact professionally with colleagues or clients
located abroad and the ability to overcome challenges that arise from
geographic distance, cultural differences, and multiple languages in the
context of computing and software engineering
- The ability to apply appropriate codes of ethics and professional
conduct to the solution of software engineering problems
- The ability to identify resources for determining legal and ethical
practices in other countries as they apply to computing and software
engineering
- 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 |
Introduction to Software Development...
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 |
Object-Oriented Software Development...............
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
|
105
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
|
Data Structures and Algorithm Analysis.........
Database Systems ..............
Discrete & Combinatorial
Algebra II .........................
Domain track course........... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
CSSE
MA
RH |
304
376
330 |
Programming Lang. Con.....
Software Quality Assurance
Elective.................................
Technical and Professional
Communication |
4
4
4
4 |
| |
|
|

16 |
| |
|
|
|
|
|
Junior Year |
|
Fall Term |
Credit |
CSSE
CSSE
MA
|
371
372
381
|
Software Requirements &
Specification ....................
Software Project Management
Introduction to Probability
with Statistical
Applications ....................
Domain track course........... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
CSSE
HSS |
332
374
|
Operating Systems..............
Software Arch. and Des.....
Elective...
Domain track course........... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
CSSE
HSS
|
373
375 |
Formal Methods in Specification and Design
Software Construction and Evolution
Elective..................................
Domain track course
or free elective............ |
4
4
4
4
|
| |
|
|

16 |
|
|
|
|
| |
|
|
|
| |
|
|
|
|
|
Senior Year |
|
Fall Term |
Credit |
CSSE
CSSE
HSS |
377
497
|
Software Architecture and Design II
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:
-
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, CHEM105;
RH 131, RH330; CLSK100.
-
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.
-
All of the courses in one of the following application domain tracks:
Biochemistry (4-5 courses, 16-20 credit hours)
- CHEM 107 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, 12 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)
- SV 151 Principles of Economics (4)
- SV 350 Managerial Accounting (4)
- SV 351 Managerial Economics (4) or
- IA 350 Microeconomics (4) or
- IA 453 The Entrepreneur (4)
Economic Computing (4 courses, 16 credit hours)
- SV 151 Principles of Economics
- IA 350 Intermediate Microeconomics
- IA 351 Intermediate Macroeconomics
- Plus any additional economics course
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)
- IA 101 Introduction to Philosophy (4)
- EMGTxxx Business Law (4)
- SV 303 Business and Engineering Ethics (4)
Engineering Management (3 courses, 12 credit hours)
- SV 151 Principles of Economics (4)
- SV 356 Corporate Finance (4)
- EMGT 526 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)
Game Development Domain Track (6 courses, 24 credit hours)
- CSSE 351 – Computer Graphics (4)
- CSSE 451 – Advanced Computer Graphics (4)
- CSSE 490 or CSSE491 (Special Topics/Directed Studies) – Computer Game Design (4)
- MA 323 – Geometric Modeling (4)
- IA 334 – Creative Writing (4)
- SV 231 – Introduction to Short Fiction (4)
Genetics (4 courses, 16 credit hours)
- AB 110 Biology – Cell Structure and Function
- AB 210 Mendelian and Molecular Genetics
- AB 411 Genetic Engineering
- AB 431 Genomics and Proteomics
Geography (3 courses, 12 credit hours)
- SV 191 - Cultural Geography (4)
- GS 491 - Geography of Europe (4)
- GS 492 - Geography of Africa and Southwest Asia (4)
International and Diversity Issues (4 courses, 16 credit hours)
- IA 311 Issues in German Culture
- GS 384 Japanese Society
- EMGT 533 Intercultural Communication
- SV 373 Gender Issues
- and some type of international experience related to the domain track (requires CSSE department head approval)
International Business and Economics (4 courses, 16 credit hours)
- SV 151 Principles of Economics (4 hours)
- IA 351 Intermediate Macroeconomics (4 hours)
- GS 350, International Trade and Globalization
- GS 351 International Finance (4 hours)
Mechanical Robotics Domain Track (5 courses, 19 credit hours)
- ME430 Mechatronics
- ES201 Cons & Acct Princ
- ES204 Mechanical Systems
- ME303 Kinematics
- ME435 Robotics Engineering
Music Comprehension (4 courses, 14 credit hours)
- SV 244 Music History: Medieval, Renaissance, Baroque
- IA 246 Music Theory I
- MUS 113 Music Skills I (Indiana State University course)
- MUS 150 Introduction to Musical Traditions I (Indiana State University course)
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)
Robotics Domain Track (5 courses, 20 credit hours)
- ME430 Mechatronics
- ES203 Electrical Systems
- ECE207 Electrical Engineering
- ECE320 Linear Control Systems and ECE497 Mobile Robotics
Or
CSSE413 Artificial Intelligence and ME435 Robotics Engineering
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)
Statistical Applications (3 courses, 12 credit hours)
- MA 223 Engineering Statistics I
or
MA 382 Introduction to Statistics with Probability
- MA 383 Engineering Statistics II
- MA 386 Statistical Programming
World Political Studies (3 courses, 12 credit hours, plus one additional requirement)
- GS 366 The European Union (4)
- GS 163 International Relations (4)
- GS 363 European Politics and Government (4)
- and some type of international experience related to the domain track. (requires CSSE Department Head approval)
World Security and Economics Domain Track (6 courses, 24 credit hours)
- GS 163 International Relations
- GS 361 Politics of the Global Economy
- SV 151 Principles of Economics
- CSSE 432 Computer Networks
- CSSE 442 Computer Security
- MA 479 Cryptography
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.
Exceptions to application domain track requirements require department head approval.
-
Four additional credits of courses offered by the Department of Mathematics excluding MA351 – MA356. 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.
-
Four credits of science electives, which can be any CHEM, PH, or AB courses not already required for the software engineering
major.
-
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.
-
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.
Area Minor in Software Engineering
Advisor: Dr. Shawn Bohner
Required Courses
CSSE 120, Introduction to Software Development CSSE 220, Object-Oriented Software Development CSSE 230, Data Structures and Algorithm Analysis CSSE 371, Software
Requirements and Specification CSSE 372, Software Project Management
Two additional courses in software engineering chosen from CSSE 373-377. |