|
2005-2006
Undergraduate Bulletin
Contact
Timothy Prickel
Registrar
(812) 877- 8438
|
| Programs - Computer
Science and Software Engineering |
|
| |
|
COMPUTER SCIENCE
The Computer
Science curriculum prepares students for careers in all areas of the
computer industry as well as for graduate studies in computer
science and computer related fields. Students have also found a
computer science major to be excellent preparation for careers in
law, medicine, business administration, industrial engineering,
biomedical engineering, and other technical and non-technical
fields.
Computer science is a rapidly changing discipline. The lifetime of
a particular computer system or software package can be very short.
The computer science curriculum is designed to prepare students for
multiple careers in a rapidly changing environment. The department’s
courses emphasize fundamental concepts and techniques that will last
longer than present technology.
Computer science majors complete a core of basic computer science
courses that includes the study of algorithms, data structures,
database concepts, computer architecture, programming languages,
operating systems, and software engineering. Majors also complete
important courses in closely related fields, e.g., discrete
mathematics, digital logic design, and probability and statistics.
The major requires students to study all aspects of the science of
computing, including hardware, software, and theory.
Courses in database systems, compilers, computer graphics, fractals
and chaotic dynamical systems, artificial intelligence, theory of
computation, analysis of algorithms, computer networks, computer
vision, web-based information systems, and cryptography are
available as advanced electives. A three-term senior project
provides valuable practical experience in the specification, design,
implementation, and documentation of large software systems.
Qualified students can undertake independent study in advanced
topics in computer science, participate in a research project with a
faculty member, or complete a senior thesis.
Programming assignments and large projects are part of most
computer science courses. These assignments familiarize students
with the wide variety of tasks performed by software professionals.
Programming assignments include system specification, system
feasibility studies, system design, system maintenance studies, and
user interface design in addition to system implementation (i.e.,
coding), testing (verification and validation), and documentation.
Projects include both individual and team activities and require
appropriate written and oral presentations.
Computer science majors have diverse interests and career goals.
Five free elective courses allow students to tailor their
undergraduate education to their specific goals. Students planning
to undertake graduate study in computer science usually take
additional advanced courses in computer science (particularly Theory
of Computation and Design and Analysis of Algorithms), electrical
engineering, and mathematics.
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. Computer science majors
have unlimited access to the department’s laboratories. Computer
science majors 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
and sponsors the school’s programming teams which compete in local,
regional, and national contests. The national computer science honor
society, Upsilon Pi Epsilon, has chartered its Indiana Alpha Chapter
at Rose-Hulman.
PROGRAM OBJECTIVES AND GOALS
Graduates from the computer science program will be prepared for
many types of careers in the computing industry and prepared for
graduate study in computer science and in closely related
disciplines. Graduates will demonstrate the abilities to:
| |
1. |
Apply effectively a variety of
programming languages, programming paradigms, operating systems,
networks, and software development tools. |
| |
2. |
Anticipate complexities and
problems involved in the development of large software systems. |
| |
3. |
Analyze requirements, design software that satisfies those
requirements, and implement the software. |
| |
4. |
Analyze problems using ideas of problem complexity, models of
computation, and decidability. |
| |
5. |
Design algorithms using a variety of paradigms. |
| |
6. |
Analyze algorithms in terms of correctness as well as time and
space efficiency. |
| |
7. |
Communicate effectively, both verbally and in writing. |
| |
8. |
Discuss major legal, social, and ethical issues that arise in
the computing industry. |
| |
9. |
Collaborate effectively in small teams. |
The faculty strives to maintain an open atmosphere
that encourages mutual respect and support as well as learning and
sharing of knowledge.
There are many alternatives to the schedule below. Students with
special interests or opportunities (e.g., advanced placement) should
determine what schedule is best for their own plan of study by
examining schedules at the department’s web site:
www.cs.rose-hulman.edu.
|
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 |
CHEM
MA
PH
HSS |
201
112
112 |
Engineering
Chemistry I......
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 |
CSSE
CSSE
MA
MA
|
220
232
221
275
|
Fundamentals of
Software
Development II ...............
Computer Architecture I ...
Differential Equations and
Matrix Algebra I..............
Discrete & Combinatorial
Algebra I.......................... |
4
4
4
4 |
| |
|
|

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

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
ECE
ECE/MA
HSS |
304
332
|
Programming Lang.
Con.....
Computer Architecture II...
Elective.................................
Elective................................. |
4
4
4
4 |
| |
|
|

16 |
| |
|
|
|
|
|
|
|
Junior Year |
|
Fall Term |
Credit |
CSSE
CSSE
MA
HSS |
371
381 |
Software Requirements
&
Specification .....................
Elective...................................
Introduction to Probability
with Statistical
Applications......................
Elective................................... |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Winter Term |
Credit |
CSSE
CSSE
ECE/MA
RH |
332
372
330 |
Operating
Systems...............
Software Project Manage....
Elective...................................
Technical Communications |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
CSSE
ECE/MA
Free |
|
Elective..................................
Elective..................................
Elective..................................
Elective.................................. |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
| |
|
|
|
| |
|
|
|
CSSE electives must
include CSSE 473 and/or 474, and cannot include any of CSSE
373 through 377.
Science elective is any CHEM, PH, or AB courses totaling at
least 4 credits. |
|
|
Senior Year |
|
Fall Term |
Credit |
CSSE
CSSE
CSSE
HSS
Free |
497
494
|
Senior Project I
or
Senior Thesis I......................
Elective...................................
Elective...................................
Elective................................... |
4
4
4
4 |
| |
|
|

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

16 |
|
|
|
|
|
|
Spring Term |
Credit |
CSSE
CSSE
Free
Free |
499
496
|
Senior Project III
or
Senior Thesis III ...................
Elective ..................................
Elective .................................. |
4
4
4 |
| |
|
|

12 |
| |
|
|
|
| |
|
Total credits required: 192 |
| |
|
|
ECE/MA electives must
be approved by the CSSE department head.
HSS electives must be distributed as required by HSS. |
|
|
|
|
Summary of graduation requirements for
the computer science major
To complete the major in computer science 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,
either CSSE473 or CSSE474, and either CSSE494-6 or CSSE497-9;
MA111, MA112, MA113, MA275, MA221, MA375, MA381; ECE130, ECE332;
PH111, PH112; CHEM201; RH131, RH330; CLSK100. |
| 2. |
Four additional computer science
courses numbered between 300 and 492. None of these may be
CSSE373-377. The student’s academic adviser must approve the
courses used to satisfy this requirement. (Use of computer
science courses numbered 490 through 492 to fulfill this
requirement must be approved by the department head.) |
| 3. |
Twelve credits of technical
elective courses selected from the courses offered by the
Department of Mathematics or the Department of Electrical and
Computer Engineering. Courses used as technical electives must
have been approved for such use by the computer science
department head. A student pursuing a second major, minor, or
certificate program in an area not offered by the Department of
Mathematics or the Department of Electrical and Computer
Engineering may substitute one or more technical electives
counted towards the second major, minor, or certificate program
for MA/ECE electives. These substitutions require approval of
the computer science and software engineering department head. |
| 4. |
Four credits of science electives,
which can be any CHEM, PH, or AB courses not already required
for the computer science major. |
| 5. |
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 the Department of Humanities and Social
Sciences. |
| 6. |
Twenty credits of free elective
courses. These courses must have the approval of the student’s
academic adviser. Free electives may be selected from any
Rose-Hulman course except Military Science and Aerospace
Studies. |
| 7. |
A total of 192 credits. |
Area Minor in
Computer Science
Advisor: Dr. Laxer
Students majoring in Software Engineering may not receive a
Computer Science minor.
Required courses
CSSE120 Fundamentals of Software Development I
CSSE220 Fundamentals of Software Development II
CSSE230 Fundamentals of Software Development III
Four additional courses in computer science numbered above
200. None of these may be CSSE 371-377.
|
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
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.
PROGRAM OBJECTIVES AND GOALS
Software engineering majors receive the knowledge and skills required to
excel as a software professional in a wide variety of fields. Graduates
will have been:
| |
1. |
educated in the theory, principles, tools and
processes involved in the engineering of complex software systems
(including analysis, design, construction, maintenance, quality
assurance and project management) and given opportunities to put
that knowledge into practice. |
| |
2. |
endowed with a sound background in computer science
and mathematics. |
| |
3. |
shown how to solve problems in a team environment
through effective use of written and oral communication skills. |
| |
4. |
introduced to the global issues presently involved
in effectively performing duties as a software practitioner in an
ethical and professional manner for the benefit of society, and to
the reasons why lifelong learning is needed in order to keep current
as new issues emerge. |
| |
5. |
equipped to develop software in at least one
application domain. |
In addition, software engineering graduates will have demonstrated:
| |
1. |
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. |
| |
2. |
the ability to design and experiment with software
prototypes. |
| |
3. |
the ability to design and run experiments with
software metrics. |
| |
4. |
the ability to participate productively on software
project teams involving students from both software engineering and
other majors. |
| |
5. |
effective communication skills through oral and
written reports and software documentation evaluated by both peers
and faculty. |
| |
6. |
the ability to elicit, analyze and specify software
requirements through a productive working relationship with project
stakeholders. |
| |
7. |
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. |
| |
8. |
the ability to apply appropriate codes of ethics and
professional conduct to the solution of software engineering
problems. |
| |
9. |
the knowledge required to understand the need for
and the ability to perform in lifelong learning. |
| |
10. |
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.
|
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 |
CHEM
MA
PH
HSS |
201
112
112 |
Engineering Chemistry
I......
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 |
CSSE
CSSE
MA
MA
|
220
232
221
275
|
Fundamentals of Software
Development II ...............
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 |
Software Quality Assur.......
Software Arch. and Des. II..
Elective..................................
Domain track course
or free elective............ |
4
4
4
4 |
| |
|
|

16 |
|
|
|
|
|
Science elective is any
CHEM, PH, or AB courses totaling at least 4 credits. |
| |
|
|
|
|
|
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 |
| |
|
|
|
HSS electives must be
distributed as required by HSS. |
|
|
|
|
|
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 course numbered
between 300 and 492. The student’s academic advisor must approve the
course used to satisfy this requirement if the course number is
between 300 and 489, while the CSSE department head must approve it
if the course is numbered between 490 and 492. |
| 3. |
All of the courses in one of the
following application domain tracks:
- Commercial Applications (3 courses, 12 credit hours)
- SL 151 Principles of Economics
- SL 350 Managerial Accounting
- SL 351 Managerial Economics
- 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)
- Electrical Engineering (4 courses, 16 credit hours)
- ES 203 Electrical Systems
- MA 222 Differential Equations II
- ECE 200 Circuits and Systems
- ECE 300 Signals and Systems
- Ethics and Law of Business
(3 courses, 12 credit hours)
- RH 101 Introduction to
Philosophy
- SL 290 Business Law
- VA 303 Business and
Engineering Ethics
- Engineering Management (3
courses, 12 credit hours)
- SL 151 Principles of
Economics
- VA 454 Financial Economics
- VA 498 Technology Management
and Forecasting
- Fundamentals of Engineering (6 courses, 22 credit hours)
- MA 222 Differential Equations II
- ES 201 Conservation and Accounting
- ES 202 Fluid and Thermal Systems
- ES 203 Electrical Systems
- ES 204 Mechanical Systems
- ES 205 Analysis and Design of Engineering Systems
- Geography (3 courses, 12 credit hours)
- SL 191 - Cultural Geography
- VA 291 - Geography of Europe
- GL 391 - Geography of Africa and Southwest Asia
- Physical Modeling (4
courses, 16 credit hours)
- MA 222 Differential
Equations and Matrix Algebra II
- MA 323 Geometric Modeling
- MA 371 Linear Algebra
- MA 433 Numerical Analysis
- Scientific Computing (4 courses, 16 credit hours)
- MA 222 Differential Equations and
Matrix Algebra II
- MA 373 Applied Linear Algebra for Engineers
- MA 433 Numerical Analysis
- MA 439 Mathematics of Image Processing
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.
|
|