Mathematics and Computer Science

# The Hendrix Computer Science Program

## Curriculum

The Hendrix computer science curriculum provides a way of studying the relation of computing from the point of view of many disciplines. Among many other things, students learn about:

- mathematical properties of computation.
- how computing can be applied to the natural and social sciences and the humanities.
- how computers are engineered to perform their work correctly and efficiently.

Early in the curriculum, students become proficient with programming computers; this is a gateway to understanding well enough how computers work to be ready to understand the central concepts of computer science, including algorithms and software analysis, as well as to be prepared to analyze the extent and limits of computing's effects on the world.

The curriculum for a Hendrix computer science major can be divided broadly into four phases. If you start the major from your first semester at Hendrix, then these four phases will correspond to the four years at college; some students, though, begin their studies in their second year and manage to compress it into three years.

**Phase I:**Become familiar with programming and its mathematical foundations through the first two computer science courses (CSCI 150 and CSCI 151). Also, complete the calculus course (MATH 130) as preparation for the mathematical concepts that arise in CSCI 151 and later courses.**Phase II:**Learn the fundamentals of three large categories of computer science: software development (CSCI 250), hardware systems (CSCI 230), and algorithms (CSCI 280). Also, complete the discrete mathematics course (MATH 240) to master mathematical concepts important to algorithms and the theory of computation.**Phase III:**Study specific subjects in detail, by choosing from among the several specialized electives that Hendrix offers each year for advanced students of computer science. Of the five upper-division electives, at least one must be chosen from a category of hardware-oriented courses, while another must be chosen from a category of mathematically-oriented choices. Examples of common electives include:Functional programming Theory of computation Artificial intelligence Scientific computing Database systems Operating systems Game development Programming languages **Phase IV:**Continue studying the electives from Phase III while completing an independent senior capstone project.

Computer science classes at Hendrix tend to be fairly small (ten to twenty students is typical). Most classes include an unusually large project spanning several weeks or even the entire semester; this project allows students to gain a deeper understanding of concepts related to class topics, as well as gaining a deeper appreciation for industrial-scale software design.

## Resources

The Hendrix computer science program is supported by three full-time faculty - Dr. Gabriel Ferrer, Dr. Mark Goadrich, and Dr. Brent Yorgey.

The Department of Mathematics & Computer Science maintains two computer laboratories, a Windows laboratory (17 computers) and a Linux laboratory (11 computers). Most classes following the introductory course use the Linux laboratory; computer scientists are the primary users of these computers. The Linux network is maintained separately from the overall network, supported primarily by computer science students hired to administer the network.

All computer science classes are taught in classrooms equipped with computers and projectors that can be used as a visual aid for demonstrations.

In our introductory courses, students learn the Python and Java programming languages. Python, Java, and Haskell are each employed in multiple upper-level courses, with other languages making occasional appearances.

## Students

While at Hendrix, many students opt to participate in some activities relating to computer science: Department-sponsored activities include intercollegiate programming contests, travel to conferences to present undergraduate research projects, and a series of speakers drawn from outside campus.

After graduation, some of our graduates pursue post-baccalaureate degrees in computer science or related disciplines, and most others enter industry directly after graduation. Employers in the region value Hendrix graduates because they are consistently well-prepared by their computer science background, and because Hendrix's liberal arts education provides graduates with the communication skills needed for success in the computing workplace.