The Nifty
Assignments
Site
A Q
& A with
Nick Parlante
JCSE Online: What is "Nifty Assignments"? What do
you hope
to accomplish with it?
Nick Parlante: The Nifty Assignments program (http://cse.stanford.edu/nifty)
is all about finding great assignment ideas and assembling the
materials so
that other instructors can use them. Nifty Assignments came together
as a reaction
to the talks I went to at the SIGCSE conference [see www.acm.org/sigcse/conference_info.html].
As part of each talk, the presenter would often mention one or two
assignments
they were using as a side-point to their main pedagogical point.
Inevitably
after the talk, whether or not I agreed with the theme, I was very
curious to
see the assignment materials.
I think the discipline of CSE [computer science education] operates
at two
levels. We have the deep and interesting pedagogical issues of what we
should
be teaching and how to cover it. But, we also have the simple problem
that making
up good assignments with all their attendant materials is incredibly
time consuming.
It really makes no sense for every instructor to create their own
assignments,
and I think this has become more true with better technologies, such
as Java
and its libraries, assignments have become more elaborate.
JCSE Online: Could you describe the general nature of the
assignments
included in the collection?
Parlante: The assignments have been oriented toward CS1 and
CS2things
that could fit somewhere in the first year or two of a typical college
CS program.
Given the enormous range of student abilities out there, we cant
really
direct the assignments at a particular course. Instead, we gather
assignments
that have worked well on widely popular topicsarrays, recursion,
decomposition,
etc.and leave it to the instructor to find the right assignment
for their
students.
JCSE Online: They are all programming assignments, right?
Parlante: So far, all of the assignments have been programming
assignments.
That reflects the emphasis in the conference where most of the
material is oriented
toward programming, languages, and so on. Actually, I have an all time
favorite
graph proof involving the platonic solids, so perhaps I should work
out some
way to get it presented!
JCSE Online: Is there anything in your mind that makes an
assignment
"nifty"? (e.g., addresses some CS concept, challenging to
the student,
fun, etc.)
Parlante: For Nifty Assignments, theres definitely a
theme of
trying to find assignments that are appealing to the
studentshighly visual
assignments such as Julie Zelenskis Quilt, or projects where the
computation
itself is appealing, such as Stuart Reges Personality Tester or
my Tetris
Brain. Of course, really, were looking for assignments that the
instructor
thought were, on the whole, effective for teaching, and the "fun
factor"
of the assignments is just one consideration.
JCSE Online: Where do you get the nifty assignments? How are
they selected?
Can anyone suggest/submit them?
Parlante: For the first couple years, the program ran on a
totally ad-hoc
basis. I would e-mail people I knew in the CSE community and
essentially beg
them to participate in Nifty Assignments. This ended up working very
well, based
entirely on the talent and generosity of the people I bullied into
participating.
Obviously however, the Nick-Begging strategy is not a good long-term
solution.
Im going to run out of people to beg, and were not
leveraging the
strength of the community as a whole. So for Nifty Assignments 2002, I
sent
out a call for participation on the CSE mailing list, and weve
put together
a panel using the at-large submissions. Hopefully, Nifty Assignments
can build
a virtuous cycle of high-quality programs motivating people to take it
seriously
and put together high-quality submissions.
JCSE Online: As you know, JCSE Online is aimed at high school
CS. Would
you foresee any problems with high school teachers using the
assignments in
their programming classes?
Parlante: Well certainly the instructor will have to exercise
care in
matching the assignment to the student. For each nifty assignment, I
try to
include a "meta" discussion that describes where the
assignment fits,
what it depends on, how hard it is, and so on.
JCSE Online: Would you have any suggestions for high school
teachers
who might examine and try to use the Nifty Assignments?
Parlante: Well certainly an easy first step is to check out
the materials
at http://cse.stanford.edu/niftytheres
a great range of assignments there.
JCSE Online: I noticed some CS education links at your site
other than
the Nifty Assignments. Anything you want to share about them?
Parlante: Im also working on a philosophically related
projectthe
Stanford CS Education Library (http://cslibrary.stanford.edu).
The library is quite simpleit gathers CS education materials and
gives
them away for free. One of the most popular things there is the Binky
Pointer
Video, which is a short claymation video about the basics of pointers
(http://cslibrary.stanford.edu/104).
There are many other useful documents there on topics such as linked
lists,
binary trees. C, Perl, Makefiles, and so on.
JCSE Online: Is there anything else youd like to say to
our readers?
Parlante: I think we have a massive logistics problem in
CSEinstructors
do not have the time to create all the assignments and other materials
their
students could use. We have the time and the will, collectively, to
create these
materials; we just need to solve the logistical problem of collecting,
rating,
and distributing all the high-quality content that individuals in the
community
are creating. I look forward to the day when CS instructors and
students have
an easy way to access thousands of organized, high-quality resources
for every
topic in CS.
Nick Parlante is a lecturer in the Computer Science Department at
Stanford
University. He teaches Java, object-oriented design, and Internet
technologies.
In addition to the Nifty Assignments work described here, he has
undertaken
the "full time in his spare time" project of maintaining the Stanford
CS Education
Library. Visit his Web page at http://sunburn.stanford.edu/~nick.
Copyright ©
2001, ISTE (International Society for Technology in Education). All
rights reserved.
|