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, 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.

Computer Science Program Educational Objectives

Graduates from the computer science program will be prepared for many types of careers in the computing industry and be prepared for graduate study in computer science and in closely related disciplines. In the early phases of their careers, we expect Rose-Hulman computer science graduates to be:

  1. Graduate students and researchers.
  2. Leaders in government and law as government employees, policy makers, governmental advisors, and legal professionals.
  3. Entrepreneurial leaders.
  4. Business and technological leaders within existing organizations.
  5. Actively involved in social and professional service locally, nationally, and globally.
  6. Recognized by their peers and superiors for their communication, teamwork, and leadership skills.
  7. Software professionals in a variety of organizations, including ones doing traditional software development, technological innovation, and cross-disciplinary work.

Computer Science Student Outcomes

By the time students graduate with a computer science degree from Rose-Hulman, they will be able to:

  1. Effectively apply 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 that 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. Evaluate and discuss the legal, social, and ethical aspects of significant events that arise in the computing industry
  9. Identify resources for determining legal and ethical practices in other countries as they apply to computing and software engineering
  10. Collaborate effectively in small teams
  11. Interact professionally with colleagues or clients located abroad and overcome challenges that arise from geographic distance, cultural differences, and multiple languages in the context of computing and software engineering
  12. Explain the impact of globalization on computing and software engineering
  13. Recognize the need for, and engage in, lifelong learning
  14. Identify scalable solutions to problems and analyze the scalability of existing solutions under a variety of constraints.

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.

The computer science program is accredited by the Computing Accreditation Commission of ABET, www.abet.org

Computer Science Plan Of Study

Freshman Year    
Fall Term   Credit
CSSE 120 Introduction to
Software Development
4
PH 111 Physics I 4
MA 111 Calculus I 5
CLSK 100 College & Life Skills 1
RH 131 Rhetoric and Composition 4
  Total 18
Winter Term   Credit
CSSE 220 Object-Oriented
Software Development
4
PH 112 Physics II 4
MA 112 Calculus II 5
HSS Elective 4
  Total 17
Spring Term   Credit
CSSE 132 Introduction to
Computer Systems
4
MA 113 Calculus III 5
HSS Elective 4
Science Elective 4
  Total 17
Sophomore Year    
Fall Term   Credit
CHEM 111 General Chemistry I 4
CSSE 232 Computer Architecture I 4
MA 212 Matrix Algebra and Systems
of Differential Equations
4
MA 275 Discrete & Combinatorial
Algebra I
4
  Total 16
Winter Term   Credit
CSSE 230 Data Structures and
Algorithm Analysis
4
CSSE 333 Database Systems 4
MA 375 Discrete & Combinatorial
Algebra II
4
HSS Elective 4
  Total 16
Spring Term   Credit
CSSE 304 Programming Lang. Con. 4
ECE 332 Computer Architecture II 4
MA 381 Introduction to Probability
with Applications
to Statistics
4
RH 330 Technical and Professional
Communication
4
  Total 16
Junior Year    
Fall Term   Credit
CSSE 371 Software Requirements
Engineering
4
CSSE/MA 473 Design and Analysis
of Algorithms
4
CSSE Elective 4
HSS Elective 4
  Total 16
Winter Term   Credit
CSSE 332 Operating Systems 4
CSSE 374 Software Design 4
CSSE/MA 474 Theory of Computation 4
HSS Elective 4
  Total 16
Spring Term   Credit
CSSE Elective 4
  Technical Elective 4
Free Elective 4
Free Elective 4
  Total 16
Senior Year    
Fall Term   Credit
CSSE 487

CSSE 497

CSSE 494
Senior Research Project I
or
Senior Project I
or
Senior Thesis I
4
CSSE Elective 4
HSS Elective 4
Free Elective 4
  Total 16
Winter Term   Credit
CSSE 488

CSSE 498

CSSE 495
Senior Research Project II
or
Senior Project II
or
Senior Thesis II
4
CSSE Elective 4
HSS Elective 4
  Technical Elective 4
  Total 14
Spring Term   Credit
CSSE 489

CSSE 499

CSSE 496
Senior Research Project III
or
Senior Project III
or
Senior Thesis III
4
Free Elective 4
Free Elective 4
  Total 12
  Total credits required: 192

CSSE electives cannot include any of CSSE 372, 373, 375, 376, and 477.
Science elective is any CHEM, PH, GEOL, or AB courses totaling at least 4 credits.

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, CSSE132, CSSE220, CSSE230, CSSE232, CSSE304, CSSE332, CSSE333, CSSE371, CSSE374, CSSE473 or MA473 and CSSE474 or MA474, and either CSSE487-9 or CSSE494-6 or CSSE497-9; MA111, MA112, MA113, MA212, MA275, MA375, MA381; ECE332; PH111, PH112; CHEM111; RH131, RH330; CLSK100.
  2. Sixteen credits of additional computer science courses numbered between 200 and 492. No more than four credits may be at the 200 level, and none of the credits may be from CSSE372, 373, 375, 376, and 477. The student’s academic advisor must approve the courses 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. Four credits of science electives, which can be any CHEM, PH, AB, or GEOL courses not already required for the computer science major.
  4. Eight additional credits of technical electives, consisting of any courses in biology, chemistry, engineering (except software engineering and engineering management), geology, mathematics, or physics.
  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.
  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 Introduction to Software Development
CSSE220 Object-Oriented Software Development
CSSE230 Data Structures and Algorithm Analysis
16 additional credits of computer science courses numbered above 200.
None of these may be CSSE 371-376, CSSE 477 or CSSE 493. Use of CSSE 490, CSSE 491 or CSSE 492 toward these 16 credits requires department head approval.