Computer Science - New Fall 2026

Computer Science Reimagined - learn more!

The Computer Science curriculum prepares students for careers in all areas of the software industry as well as for graduate studies in computer science, software engineering and other 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 to adapt to 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, web development, programming languages, analysis of algorithms, 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 advanced database systems, compilers, computer graphics, machine learning, deep learning,  art and science of debugging, cyber security, cybercrime & digital forensics, data privacy & protection, network security, natural language processing,  human computer interaction, algorithmic game theory,  software construction & evolution, project management, game development, computer networks, computer vision, web-based information systems, and cryptography are available as advanced electives.  

Computer science majors choose from two tracks — Researcher – Theory, Applications, & Research, and Developer – Software Development, Industry, & Practice. The Developer track is aimed at students interested in computer science applications in industry. The Developer track provides coverage of core software engineering including software requirements, software architecture, software design, and software quality assurance, A three-term senior project provides valuable practical experience in the specification, design, implementation, and documentation of large software systems.  

The Researcher track is aimed at students interested in graduate school or research-heavy careers. The Researcher track introduces students to the research method and provides opportunities for students to practice and engage in the scientific research process. Students take courses in great papers in CS, linear algebra, and theory of computation. Students in the Researcher track focus on questions in the forefront of modern computing while understanding the underlying theory behind computing. The Researcher track culminates in a senior research capstone, that provides valuable experience in formulating research questions and engaging in the process of scientific discovery under the guidance of a faculty supervisor. 

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 and four computer science electives allow students to tailor their undergraduate education to their specific goals. Students can specialize in any sub-domain of computer science (like Artificial Intelligence, Cybersecurity, or Data Science) while preparing for a career as a Software Engineer or a Computer Scientist by choosing the developer or researcher track. 

Student and faculty groups sponsor seminars and other technical activities throughout the year. The school’s programming and cyber security teams 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 field of computing 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. Computing professionals in a variety of organizations, including ones doing traditional software development, technological innovation, and cross-disciplinary work
  2. Business and technological leaders within existing organizations 
  3. Recognized by their peers and superiors for their communication, teamwork, and leadership skills 
  4. Actively involved in social and professional service locally, nationally, and globally 
  5. Graduate students and researchers 
  6. Leaders in government and law as government employees, policy makers, governmental advisors, and legal professionals

Computer Science Student Outcomes: 

Graduates of the program will have an ability to: 

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. 
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. 
  3. Communicate effectively in a variety of professional contexts. 
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. 
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. 
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions. 

The faculty strives to maintain an open atmosphere that encourages mutual respect and support as well as learning and sharing of knowledge. 

The computer science program is accredited by the Computing Accreditation Commission of ABET, https://www.abet.org, under the commission’s General Criteria and Program Criteria for Computer Science and Similarly Named Computing Programs. 

Summary of Graduation Requirements: 

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, CSSE280, CSSE304, CSSE332, CSSE333, CSSE473 or MA473; MA111, MA112, MA113, MA221, MA276, MA374, MA381; ECE233; PH111, PH112; HUMH190, ENGLH290; RHIT100.  
  2. Students must also complete the following courses listed in either the developer or researcher track. Developer Track:  CSSE371, CSSE374, CSSE376, CSSE477, and CSSE497-9. Researcher Track: CSSE193, CSSE392, CSSE393, CSSE394, CSSE395, CSSE474 or MA474, MA371, and either CSSE487-9 or CSSE494-6. 
  3. Sixteen credits of additional 300-level or above CSSE courses (excluding CSSE490-493, CSSE487-9, and CSSE494-6) or ECE332. CSSE490-493 courses can be used as electives with approval from the CSSE department head and the student's advisor. Credits used to satisfy any requirements for a minor or secondary major pursued by a student cannot also be used to satisfy CS elective requirements for the student’s primary or secondary major in Computer Science. Credits used by a student pursuing a secondary major in CS that are intended to satisfy the CS elective requirement can only be used to satisfy technical or free elective requirements within the student’s primary major or not used towards any requirements within the primary major.  
  4. Four credits of lab-based science electives, which can be any CHEM, PH, BIO courses with an associated lab not already required for the computer science major.  
  5. Four additional credits of technical electives, consisting of any courses in biology, chemistry, engineering (except software engineering and engineering management), geology, mathematics, biomathematics, or physics. 
  6. Twenty-eight credits of additional courses offered by the Department of Humanities, Social Sciences, and the Arts. The distribution of these courses must meet the requirements of the Department of Humanities, Social Sciences, and the Arts. 
  7. Twenty credits of free elective courses Free electives may be selected from any Rose-Hulman course. 
  8. A total of 192 credits.