Guidelines for the Kemeny Prize
Revised May 2001
Deadline
4pm Friday, June 1, 2001
Goals of the Competition
The Kemeny Prize is intended to encourage novel uses of computing by
undergraduate students at Dartmouth College. To that effect, the
Kemeny Prize rewards students who produce original, creative,
well-designed, and well-implemented computer applications. Cash
prizes are awarded to the best entries, as judged by a panel of
Computer Science faculty.
Categories
To encourage diversity in undergraduate computing, the Kemeny prize
will be awarded in two separate categories: Innovation and
System Design. While projects in both categories are expected
to be innovative and useful, the Innovation category places special
emphasis on novel uses of computing, while the System Design category
places additional emphasis on traditional Computer Science and
Software Engineering metrics, such as algorithms and data structures
used in the implementation of the project.
We have also asked you to classify your project as an
Individual or Team project. The Individual category is
for work done essentially by one person, with reasonable and normal
help from others. (The judges recognize that individuals profit by
consulting with experts, friends, colleagues, books and journals.).
The Team category is for work done collaboratively by two or more
people. Depending upon the entries received, we may or may not give
separate awards for individual and team projects.
Eligibility
- All Dartmouth undergraduates (including those on off-terms) are
eligible to submit entries. The Kemeny prize is not restricted to
Computer Science majors; students from outside Computer Science are
encouraged to submit entries, particularly in the Innovation
category.
- Projects that have won prizes in previous years are not
eligible.
- Projects that have been written for a class or for a job are
eligible, as long as at least some parts of the design and
implementation are your own. If parts of
your project are due to others, you must make it clear
what is your work and what is due to others.
- Computing projects done as parts of senior theses in any
discipline are eligible.
- Projects not traditionally considered computer programs may be
eligible for the Innovation category. See the sections for
more information.
Language and Environment
The judges recognize that a significant amount of computing is now
done without direct use of a traditional programming language. Hence,
for entries in the Innovation category, we will accept projects based
on nontraditional systems, such as HyperCard, Excel, HTML, Java, JavaScript,
etc.
For projects in the System Design category, you may use any
programming language you like (Pascal, C, C++, Lisp, Scheme, Basic,
HyperTalk, etc.). You can use any programming environment, hardware,
and operating system you want (such as Unix, Macintosh, X Windows,
VMS, etc.). If you require hardware or other apparatus to which the
Computer Science faculty does not have convenient access, you should
arrange a time and place during the week of June 1st for the judges to
run your project.
Of course, projects in either category may employ whatever system is
appropriate. Quite sophisticated algorithms can be implemented in
Excel, and innovative applications can most certainly be built with
traditional programming languages.
Submitting an Entry
Your entry must include the following components:
- A completed Entry Form (available
on-line).
- A Project Report that describes various aspects of your project.
A Senior Honors Thesis or CS23 project report will suffice; otherwise,
the report has four parts.
- The Project Overview describes briefly what your project is
supposed to do, what problem it solves, and who you expect would use
it.
- The User's Instructions explain how to run your
project. The instructions should also point out features that
we might not otherwise observe by simply experimenting with
your application. You may also consider including a "script"
that steps us through a sample interaction with the project.
- The Technical Description includes information that
will help the reader understand how your program works, by
describing major algorithms and data structures, and how the
project is put together. The technical description plays less
of a role in projects in the Innovation category, but you
should still provide us with a description of how everything
fits together.
- The Evaluation describes the performance of your
project in terms of its efficiency, usefulness, and relation
to any similar software. If the work was supervised by a
professor or employer, you may include a letter from that
person in this last part, describing the interest and
usefulness of the project.
- Preferably, though not strictly required, electronic access
to your Source Code Listings or other
applicable source for your application (header and code files for C
programs, a listing of macros and formulae for spreadsheets, HTML
documents for WWW-based projects).
- Executable programs, and any other files needed to run your project.
- Any other relevant equipment or documentation.
In short, give us everything we need to run your program, teach us how
it works, and tell us why it is interesting.
Judging
Your project will be judged using the following criteria:
All Projects
- Is it substantive?
- We prefer projects that perform interesting and significant
computations to ones that simply wrap a glossy user interface around
routine bookkeeping.
- Is it creative?
- We prefer novel, innovative projects to minor variations on old themes.
We encourage projects that use computers in new ways to address problems
in areas far removed from Computer Science (such as music, sports,
philosophy, history, recreation, religion, social science, etc.) as well
as in the usual areas (data processing, mathematics, physics,
engineering, etc.). We expect that projects in the Innovation category
will emphasize areas removed from Computer Science.
- Is it original?
- We prefer projects you designed yourself to ones designed by a book, a
professor, an employer, or a colleague.
- Is it interesting?
- We prefer projects in which the computer is made to do something you
couldn't do just as well some other way, and in which the results of the
computation might matter to someone besides the author of the program.
Even esoteric interest is enough, but if your project deals with a
problem so esoteric that a professor of Computer Science could not
reasonably be expected to know anything about it, you would be
well-advised to give us some background material to read.
- Is it clear?
- We prefer projects that have clear and direct user manuals and that are
easy to use without reference to the user manual.
- Is it correct?
- We prefer programs that work as advertised.
- Is it usable?
- We prefer programs that interact comfortably with the user, that behave
robustly when given faulty input, and that fail gracefully.
- Is it elegant?
- We prefer programs that implement the right "level of abstraction",
and whose components fit together in a flexible way.
System Design Projects
- Is it effective?
- We prefer programs that use appropriate algorithms, data structures,
programming techniques, and other tools.
- Is it understandable?
- We prefer projects whose code we can read easily, whose technical
manuals give us a good overall understanding of how everything fits
together, and whose structure we can imagine maintaining. We prefer
projects in which we rarely (or perhaps never) need to consult the
source code to resolve questions about the project.
- Is it efficient?
- We prefer programs that use resources (such as processing time,
memory, user interaction, and development effort) economically.
We admit that there is a great deal of subjectivity in these criteria,
which is why the judging is done by experienced humans instead of by
computer. Not all these items will be equally relevant or important to
all projects. Furthermore, it will be difficult to compare projects
with wildly different assumptions and software platforms; the judges
will apply a different set of standards to a HyperCard stack that does
foreign language drills than to a C program that searches for orthogonal
Latin squares. Nevertheless, the judges will evaluate your project
along the above lines, as they apply.
Your project will not be judged on the following criteria:
- Size.
- Mere volume does not impress the judges.
- Effort.
- Nor does the total number of man-hours you spent.
Legal issues
You may not submit proprietary software. The judges will not (and do
not) agree to any nondisclosure agreements. However, by submitting a
project you do not yield any rights to future commercial use of your
project. The judges will not attempt to publish your code or use it for
profit.
You must abide by any agreements and contracts, explicit and implicit,
made between you and commercial software and hardware companies. For
instance, you must use legally-obtained compilers, debuggers, operating
systems, and software tools while developing your project. You may not
submit code that a third party has forbidden you to distribute.
You must also abide by Dartmouth's Computing Code of Ethics,
Honor Code, and the principles of attribution outlined in
Sources, Their Use and Acknowledgment. Projects that violate
these principles will be disqualified.
Examples of Prior Projects
Past projects that have been submitted for or have won the Kemeny prize
have included:
- An interactive, multi-player game that emphasizes cooperation rather
than competition.
- A program that automatically conjugates French verbs, both regular
and irregular.
- A networked, multi-user drawing program.
- A program for evaluating and graphing polynomials.
- A BlitzMail client for the X-windows system.
- A particularly sophisticated HTML-based web that provides access
to the Dartmouth College library's Daniel Webster collection.
See also the winners from previous Kemeny
competitions, available on-line.
The topics of past projects should not bias your own decision. We will
accept a wide variety of projects that exhibit innovative design and
features, and we will accept both small and large projects.
Notes
We encourage small projects as well as large. A small, well-crafted
project with an interesting subject has an excellent chance for a prize.
The Kemeny prize is intended for both Computer Science majors and for
those working in fields outside of Computer Science. The System Design
category is likely to be more applicable for those working in Computer
Science, while the Innovation category is likely to be more appropriate
for those working in other fields.
For further information, contact Jay Aslam by Blitzmail or at
646-1613