Welcome to the Hendrix College Computer Science program! We are part of the Department of Mathematics and Computer Science.

At Hendrix, between ten to fifteen students graduate with a degree in Computer Science each year. Our classes tend to be fairly small (ten to twenty students is typical), which allows us to use engaged learning techniques as we help our students understand computer science, for example data analysis notebooks in our introductory course, and physical manipulatives and POGIL team exercises in upper-level courses.

In our introductory courses, students learn the Python and Java programming languages. Upper-level courses employ Python, Java, Haskell, C#, and Rust. Through their coursework, all of our majors become comfortable using Github and common software engineering frameworks such as Flutter, ROS, ASP.NET, or Unity.

Most classes also include a 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. The major culminates in the senior capstone experience, in which over the course of a semester each student creates an individual free-form project that showcases their achievements in computing.

Our department faculty develop and maintain numerous software projects, all of which welcome student contributions. Here is a selection of our current projects:

- Disco Tray Studios develops software for non-profit community partners.
- RECYCLEd CardStock, a general card game playing engine.
- Swarm, a 2D programming and resource gathering game.
- Disco, a programming language intended to teach basic functional programming principles in the context of a discrete mathematics course.
- Pluggable Interrupt OS, a Rust library to create safe and secure operating system kernels.
- Midi-Fundsp, a Rust library to create live performance music synthesizers.

Our department is very active in competitive programming. Our programming team participates in numerous events, and we also host an annual competition.

We also have students regularly particpate and succeed in the COMAP International Contest on Mathematical Modeling.

The Hendrix computer science curriculum balances theory and practice to help students achieve a well-rounded understanding of computing. Upon graduating, our students:

- Are well-equipped to write software that meets the goals of clients;
- Know how to manage the interaction between hardware and software;
- Have created software that models complex phenomena;
- Know how to apply mathematical ideas to solve computing problems;
- Have applied computing to solve problems in the natural and social sciences, as well as the humanities.

11 courses distributed as follows:

- CSCI 150 Foundations of Computer Science (w/Lab)
- CSCI 151 Data Structures (w/Lab)
- MATH 240 Discrete Mathematics
- CSCI 382 Algorithms
- One of the following courses studying hardware & software interaction:
- CSCI 320 Operating Systems & Concurrency
- CSCI 322 Computing Systems Organization

- One of the following courses studying complex abstractions:
- CSCI 335 Artificial Intelligence
- CSCI 360 Programming Languages

- One of the following courses designing and implementing software as part of a team:
- CSCI 340 Database and Web Systems
- CSCI 352 Mobile Software Development
- CSCI 370 Interactive Game Development

- One of the following courses on mathematical foundations of computing
- CSCI 285 Scientific Computing
- CSCI 365 Functional Programming
- CSCI 380 Theory of Computation
- MATH 270 Linear Algebra
- MATH 335 Geometry

- Two additional courses chosen from:
- Any CSCI course numbered 200 or above (not used for other requirement above)
- Math 130 Calculus I

- CSCI 410 Senior Seminar

6 courses distributed as follows:

- CSCI 150 Foundations of Computer Science (w/Lab)
- CSCI 151 Data Structures (w/Lab)
- 1 CSCI course numbered 300 or above
- 3 additional courses chosen from:
- Any additional CSCI course (not used for other requirements above)
- Math 130 Calculus I
- Math 240 Discrete Mathematics

The syllabi for the most recent version of each of our courses can be found below. You might also read the course descriptions in the Hendrix Catalog.