Artificial Intelligence for Non-Majors at Multiple Levels

Over the past several years, many computer science departments have seen a decline in enrollments. This paper describes two courses – at the introductory and advanced levels – that hope to attract students to computer science through topics in Artificial Intelligence. Over the past several years, many computer science departments have seen a decline in enrollments. As the program committee for this symposium has noted, AI topics have the potential to draw students back to computer science. This paper describes two ways in which we at Williams College are providing opportunities for students – in particular nonmajors – to study AI topics. These are: • An introductory course on AI and robotics for nonmajors; • An elective course on machine learning that is taught in a tutorial format. While these courses are taught at very different levels, they share the following: • Both have the potential to draw non-majors into more than one computer science course. • Both can draw students into computer science courses fairly early in their college careers. • Both have ties to the Cognitive Science program, which provides an extra means of advertising the courses to students who might not consider computer science. The introductory course for non-majors has no prerequisites and can therefore be taken by students beginning in their first semester. As will be discussed below, students in the course often go on to other computer science courses. The advanced course has prerequisites, so non-majors interested in it must also enroll in other computer science courses. The prerequisites are fairly minimal, however, so the non-majors aiming to take the machine learning course need not begin planning for it immediately. This makes it realistic to believe that they will have time to benefit from faculty and peer advising that would point them to the course. Both of these courses are electives for a concentration in Cognitive Science, and since this puts computer science “on the radar” for concentrators, this encourages enrollment in computer science courses more generally. These points will be revisited in sections that discuss the individual courses. Links to course materials for both courses are provided below. As the introductory course for non-majors is described in detail elsewhere (Danyluk 2004), this paper provides more details on the machine learning tutorial course. In the section on the introductory course, the details given primarily highlight differences from the previously published version of the course. Introductory AI for Non-majors The traditional introduction to our discipline is a programming course. In recent years, however, more and more computer science faculty have become dissatisfied with introductory courses that teach programming but do not actually introduce students to the important ideas of computer science. At Williams, for example, we have begun to experiment with a CS1 course that simultaneously teaches students Java programming as well as important concepts such as abstraction and representation through lectures and exercises on computer networks. (Murtagh 2007). Many others have begun to experiment with introductory courses that are introductions not just to programming, but to computer science. Faculty at Middlebury College, for example, have devised a course that brings together their programming introduction and a breadth-first introduction to the field. (Briggs 2007) Even when it is desirable to provide an introductory programming course (say, in the case where CS1 is a service course for other departments), it is still possible to devise other rigorous, interesting courses for majors and nonmajors. (Koffman et al. 2007) Here I describe briefly one such course that uses AI and robotics as core themes. The goals that inspired the design of the course were as follows: • It should introduce students to fundamental questions and issues of computer science; • It should make all students feel comfortable in the course, regardless of their background in science; • It should give students enough practice with programming and problem solving that they can determine whether they have the aptitude to go on in computer science; • It should motivate some students to consider becoming Computer Science majors. Many of the ideas for this course were taken from a similar course offered at Swarthmore (Meeden ; Kumar & Meeden 1998).