The WARLACS AI Assignments

(Writing and Research in Liberal Arts Computer Science)

Summary The WARLACS AI assignments both give students practice applying a variety of AI ideas and scaffold the development of their writing and research skills, culminating in a final project that models the basic research process at a small scale.
Topics The AI topics covered by the assignments are heuristic search, adversarial search, and reinforcement learning. Other related topics include communicating AI ideas to a variety of audiences, engaging with the AI literature, designing experiments, and the peer review process.
Audience These assignments are intended for an undergraduate introduction to AI course.
Difficulty These projects have open-ended problems requiring creativity and experimentation, which presents a challenge to most students at this level (some more than others). Each of these assignments is intended to take between 5 and 10 hours per week (some projects span multiple weeks). When possible, structures are in place to allow students to self-assess how well they have done so far, which may motivate them to ask for help or help them do an analysis of the costs and benefits of continuing to work on the project. The level of challenge can also be adjusted by providing more or less structure (e.g. in the form of hints).
Strengths
  • The projects require students to express technical AI ideas in a variety of written genres, encouraging them to clarify their own understanding as well as to think about audience and purpose when communicating technical ideas.
  • Students are required to engage critically with research papers from the AI literature
  • Students have scaffolded experience with the peer review system, which they then apply to their own peers' writing.
  • The projects expose students to practical challenges of applying AI techniques in open-ended problems, but at a manageable scale.
  • Students gain a small-scale experience with the basic research process on a topic of their choosing.
  • Each of the coding projects allows students to visualize their results and provides sample code that may be reusable in final projects.
  • Solutions and autograders have been developed for the programming components (available by request to instructors with verified professional email addresses).
Weaknesses
  • The assignments are only practical for a small student/instructor ratio.
    • Some students require significant support and mentoring to organize their effort in open-ended problems.
    • The written components of assignments require significant grading effort.
  • I have struggled to calibrate the evaluation of the Connect Four agents in Project 2. I have not yet found a benchmark agent that provides the right amount of challenge (the one included here errs on the easy to defeat side).
  • Project 2 currently relies on distributing .pyc files, which is undesirable for archiving purposes. The .pyc files included here were generated using Python 3.10. Source files are available to instructors with verified professional emails by request.
  • It can be an extra communication challenge to bring students on board with the importance and value of practicing their writing skills.
  • The extensive time devoted to the final project does limit the range of topics that can be covered by programming projects in one semester.
Dependencies

Software requirements: The projects use Python 3.x with Tkinter and are otherwise self-contained.

Knowledge requirements: To be successful, students should have general college-level writing instruction, comfort with making technical arguments (e.g. basic proof techniques), comfort with programming and computational problem solving (ideally using the Python language), and an introduction to each specific project topic (ideally soon before the project is assigned). To gain extra credit points, students should be familiar with intermediate-level algorithms content (e.g. minimum spanning tree algorithms) and/or comfort with discovering, learning about, and utilizing new algorithms/modules.

Variants There are many ways to adapt/re-use elements of these assignments:
  • The form of the writing assignments can be transferred and adapted to programming projects on other topics.
  • The programming projects can be used without the written components.
  • Hints and/or more instruction may be added to offer additional guidance to students and reduce the difficulty and time required.
  • The assignments are currently structured with some parts done individually and some parts in pairs. The balance of individual and paired work can be tailored to the needs of the audience.

The Projects

Solutions and Grading Scripts

In order to preserve the integrity of these assignments for other users, please do not distribute solutions or grading scripts for these projects.

These materials are available by request to instructors with verified professional emails. Please contact Erin J. Talvitie at Harvey Mudd College (erin@cs.hmc.edu).

Acknowledgements

The WARLACS AI Assignments, particularly the first two projects, owe a great deal to inspiration from The Pac-Man Projects by John DeNero and Dan Klein, which were added to the Model Assignments archive in 2010 and remain popular in many introductory AI courses. These assignments have also been significantly shaped by constructive feedback from many undergraduate students at Franklin & Marshall College and Harvey Mudd College.

In addition to standard Python modules, these projects make use of the cImage.py module written by Bradley Miller. Project 1 contains a public domain image of an octopus from the Smithsonian Institute (source). Project 2 contains a public domain image of Connect Four (source).

This material is based upon work supported by the National Science Foundation under Grant No. IIS1939827. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.