Summer 2007 Research with Janet Davis:
This document provides an overview of my project with students in summer 2007 and my expectations of those students.
Media Computation in CSC 151
My main research area is human-computer interaction, and I will bring
some aspects of this into the project (see below). This project is
focused on computer science education, and in particular, the teaching
of programming language and algorithmic concepts at the introductory
The media computation approach to CS1 (introductory computer
science) has been shown to attract a broader range of students, improve
student performance, and improve student retention of material.
In the media computation approach, student work focuses on the
manipulation of media, particularly images and sound. Samuel
Rebelsky and I plan to revise the curriculum of CSC151 by marrying the
media computation approach with the functional programming paradigm
currently used at Grinnell. In addition to the desirable outcomes
listed above, we hypothesize that the approach will improve student
learning of higher-order programming concepts, in which functions are
applied to other functions and can produce functions as results.
These concepts are key to the functional paradigm.
Happily, an open source graphics editor, the GIMP, uses a variant of
the functional programming language Scheme, called Script-Fu, as its
scripting language. Unfortunately, published work on Script-Fu
deemphasizes the functional paradigm, and Script-Fu lacks some key
features that are likely to be useful to novices.
In Summer 2006, Sam Rebelsky and his students began to address these
issues by developing a library to better support higher-order
programming in the GIMP. In the fall, each section of CSC151
included a two-week unit using the GIMP to teach higher-order
programming; we will expand these units somewhat in the spring.
Next year, we plan to use GIMP as a motivating application from the
beginning of the course. Over the summer, we will be developing
new curricular materials (readings and laboratory exercises) for this
new approach. We also need to bring Script-Fu to a state where it
can be used by novices without excessive difficulty.
I hope to have students contribute in two main ways: (1) developing
supporting code for laboratory exercises, and (2) improving the
usability of Script-Fu. The latter contribution will include improved
precondition checking for Script-Fu (to provide better error messages)
and improvements to the Script-Fu console (possibly integrating
DrScheme with the GIMP).
Students working on this project will code in both C and Scheme.
(However, CSC 201 is not a prerequisite.) Students will also need
thorough understanding of higher-order programming (that is, writing
functions that take functions as parameters or return functions as
results), but may do so through focused student in the early weeks of
the project or beforehand. Students will also conduct informal
usability tests to assess the
current and improved usability of Script-Fu; I will provide instruction
and guidance here. Experience with Photoshop or the GIMP is a plus.
Students will work in a team of 2-3. Because Sam Rebelsky and I are
working jointly on this project, you can expect to get some guidance
from him as well as me and to occasionally work with his students.
Much of this schedule follows the official divisional schedule for
summer research. I will certainly understand if a student accepts a
position with me and later chooses to take a more attractive position
elsewhere. In that case, I will notify students on my mailing list.
Our summer schedule may be adjusted by up to a week or so.
- Monday, Feb. 19: Application forms due. You must submit the
division-wide form to the division office and your responses to my application form via email to me.
- Monday, Mar. 12: Initial selections announced.
- Friday, Mar. 16: Deadline for accepting or rejecting the offer.
- Week of Apr. 9: First meeting.
- Additional spring meetings.
- Monday, May 21: Commencement
- Monday, May 28: Summer resesarch begins.
- Friday, Aug. 3: Summer resesarch concludes.
Following SamR's example, I have very high expectations of my summer
research students. I will expect my summer students to begin their work
in the spring and continue it into the fall (and perhaps beyond). By
applying for summer research you are agreeing to meet these
expectations. You are unlikely to receive explicit credit or
compensation for work in the spring and fall.
Although I expect to be around on a regular basis, I will also be
setting aside significant chunks of time for my own
explorations of future research directions unrelated to this project.
Thus, I will expect you to be able to do many things without my
immediate guidance, by yourself or with other students.
- Topic preparation
- You will be expected to begin your background research during the
spring. In particular, you must identify at least four papers on
related projects. Sources to consider include the ACM Digial Library
(particularly proceedings of the SIGCSE and SIGGRAPH conferences, and
perhaps the conference on LISP and Functional Programming). You are
also encouraged to use the Web and, once you've identified potentially
useful resources, to consult with the librarians about using Science
- Skill preparation
- If your project will require a programming language (e.g., C),
data language (e.g., HTML), library (e.g., sockets), or application
(e.g., the GIMP) that you do not yet know, you are expected to begin
studying it. You need not master it, but should begin to develop some
During the summer, you are expected to work full time on the project:
40-50 hours per week for ten weeks. This work will include scheduled
daily group meetings and collaborative work time (e.g., pair
programming or team design sessions). Conducting usability studies may
require occasional evening or weekend work, depending on participants'
schedules. In short, your schedule will be flexible, but not
- Topic preparation
- For the first week of summer research, you will continue your
preparation from the spring, developing a survey of "the state of the
art" in whatever project you've decided to undertake. You should
prepare a short survey paper. On the first day of the second week,
you'll give a public presentation of your work.
- Core research
- For the next eight weeks of the summer, you will work on your
project, using what you've learned during preparation for guidance.
Some of this time may be spent continuing to develop skills.
- For the last week of the summer (and, preferably, as you do your
work), you will write a five-to-ten page paper describign your
work and placing it in the context of related work. Your paper should
meet the highest standards of writing at Grinnell. Students working as
part of a group need prepare only one paper. You will probably be
required to submit a version of this paper to a conference or journal.
(Sam Rebelsky and I may provide significant assistance in developing
the submitted version, in which case we will be listed as co-authors.)
Fall and Beyond
- Poster presentation
- You will create a poster describing your work and present it at
the Grinnell Science Poster Seminar (typically during Parents' Weekend).
- Internal public presentation
- You will give a 25- or 50-minute presentation on your work as part of the Thursday Extras colloquium series.
- External conference presentation
- If your work is submitted to and accepted by a conference, and
there is funding available for you to attend, you will be expected to
attend and present your work.
- External Pew presentation
- You must submit your
work to the Pew Midstates Science and Mathematics Consortium
Fall Symposium on Undergraduate Research in the Physical and
Mathematical Sciences. You must attend the symposium (including
non-cs talks and present your work (in poster or talk form) if
your work is accepted. You must give at least one practice talk
before going to the conference. I will join you if I am able.
Janet Davis (firstname.lastname@example.org)
Created February 6, 2007
Last modified February 6, 2007
With thanks to Sam Rebelsky: http://www.cs.grinnell.edu/~rebelsky/Department/samr-summer-2007.html