The International 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 international computer science curriculum is designed to prepare students for multiple careers in a rapidly changing, global environment. The program’s courses emphasize fundamental concepts and techniques that will last longer than present technology.International computer science majors complete a core of basic computer science courses that includes the study of algorithms, data structures, database concepts, computer systems, computer architecture, programming languages, operating systems, and software engineering. Advanced courses in theory of computation, computer networks, distributed systems, security, and real time systems add depth to the degree program. A three-term senior thesis provides students the opportunity to research in depth an area of computer science that is of interest to them under the mentorship of a faculty member. Majors also complete important courses in closely related fields, e.g., discrete mathematics and probability and statistics, as well as study a foreign language. The major requires students to study all aspects of the science of computing, including hardware, software, and theory.Five free electives allow students to tailor their undergraduate education to their specific goals and pursue topics of interest to them. Students may choose to do advanced elective work in computer science and software engineering andor in the humanities and social sciences, andor pursue a minor or double major in another discipline.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.The department has active programming teams that compete in the ACM Programming Contest and the Collegiate Cyber Defense Competition. The national computer science honor society, Upsilon Pi Epsilon, has chartered its Indiana Alpha Chapter at Rose-Hulman; it sponsors several seminars throughout the year.