Liberal Arts Computing Curricula

SIGCSE 2020 Pre-Symposium Event by the SIGCSE Committee on Computing Education in Liberal Arts Colleges

Whitman College

Contributed by Janet Davis, davisj@whitman.edu

Institutional and departmental context

Whitman’s computer science major is brand new. I joined Whitman as the founding computer scientist in 2015, and we will graduate our third class in May 2020.

While some Whitman faculty have long sought representation of computing in the curriculum, the proximate cause of the major’s creation was a Trustee fundraising effort. This has had some lasting political consequences, and we’ve felt the need to justify computer science as an element of the liberal arts. While this pressure might have led to an interdisciplinarity program, instead our major emphasizes the disciplinary contributions of computer science.

A unique aspect of Whitman’s curriculum is that every senior must undergo an oral examination in the major. Each major is free to develop its own examination format, which may also include a written component. While many majors require a senior seminar, thesis, or capstone, this is not an institutional requirement.

Curricular overview

Major program(s)

Our major consists of the following 8 required courses, plus one elective. The three-layer pre-requisite structure is shown here. Courses and other requirements are documented in detail in the catalog.

Required intermediate-level courses:

Required upper-level courses:

Regularly offered electives: Human-Computer Interaction, Software Performance Optimization, Artificial Intelligence, Natural Language Processing, Operations Research, Mathematical Modeling.

Senior exam:

Non-major program(s)

CS 167, Introduction to Computational Problem Solving, is designed for students without prior experience regardless of their intention towards the major. Python was adopted just before my arrival at Whitman; it remains appealing as a practical tool across a range of disciplines. We use Havill’s Discovering Computer Science because it draws problems from the humanities, sciences, and social sciences.

The minor in Computer Science requires 15 credits (5 courses) at the 200-level or above.
Due to the pre-requisite structure, students must take Data Structures. Some minors are composed entirely of core courses, while others are mostly electives.

Our colleagues in Mathematics and Statistics recently enlisted us to propose a new minor in Data Science. This minor requires CS 167, Statistics with Applications, Linear Algebra, and three further electives from Mathematics and Computer Science. We do not yet offer a course titled Data Science.

Co-curricular program(s)

We have a regular CS Lunch series organized by the faculty, as well as occasional talks by visiting scholars. Most lunches fall into one of three catagories: group advising, career development (often with guests from our Student Engagement Center), and current events with social or ethical implications.

We have already had a student projects club and a student ACM chapter come and go.

Key contributions

I am proud of our flat pre-requisite structure, offering three “portmanteau” courses at the intermediate level with only intro as a prerequisite.

While I expected broad non-major interest in CS 270 or “CS2”, I did not expect such broad interest in CS 210 and 220 - even though we chose course materials with an eye towards the liberal arts. We currently offer four sections of CS 167 annually, two sections of CS 270, and one each of CS 210 and 220. In the future, we hope to offer two sections of each 200-level core course.

Our flat pre-requisite structure also makes the major achievable for late deciders, and makes it possible for majors to pursue off-campus study not necessarily including CS courses.

Limitations/challenges

Our curriculum is highly contingent on the tastes and expertise of our founding faculty. For example, our curriculum doesn’t require or offer a course on Programming Languages, because none of the founding faculty have expertise in this area and because I argued for eliminating the Programming Languages requirement at my prior institution. One of our founding faculty has announced plans to leave and must be replaced. We also hope to receive our first expansion position soon.

I welcome advice on adapting our curriculum to fit our changing faculty, while also offering more interdiciplinary courses, addressing feedback from students and alumni, and/or working towards greater adherence to Computer Science Curricula 2013.