Term Project
Each student enrolled in CS100 must complete EITHER a Javascript
project OR (that is exclusive or) a term
paper as part of the course requirements OR an alternative
group project involving using IT to investigate
a question and develop a report. The deadline for your final project
is the last day of classes, Friday, May 4, 2001, 10:30 am
(i.e., bring your project to class). There will also be a
drop-off bin outside of Stokes 8A.
By Friday, March 9, 2001 class: Every student must hand in
a page which proposes the contents of the project/paper. Be SPECIFIC
in these outlines so that we can determine if your proposal is
acceptable. For term papers, lists of references would be useful (see
readings at the end of each chapter in our text to get a start). For
Javascript programs, an overview of your web page and some idea of
its design (e.g. rough drawings of the appearance of the page) and
purpose will be helpful.
By Monday, April 16, 2001 class: Every student must hand in
an outline of the paper (or a progress report for term programming
projects), along with a preliminary list of references for this
project. The outline should act as a skeleton of your paper.
References will be evaluated on number and on merit.
I. Term Paper
Length: 6 - 9 doublespaced pages (approx.) produced using
standard IT for wordprocessing (i.e., a professional
representation of your work)
Goal: to demonstrate an understanding of a specific
technology or methodology, and put it into context.
References: Each paper should have at least two references
in its bibliography (not including our texts!). These papers should
represent a modest research effort on your part to find out more
about some aspect of computers that has interested you. We are most
interested in having you read and discuss the ideas of experts, but
would like some personal thoughts as well. The science librarian can
help point you to sources, and you are encouraged to use other
resources. Choose a topic that you find interesting, that has
references easily available and is not overly ambitious. Some
possibilities include:
History of computation:
- Biographies of key personnel, focusing on their ideas and the
impact of these ideas on the history of computation (e.g. Ada,
Countess of Lovelace; Blaise Pascal; Charles Babbage; Alan Turing,
John Atanasoff, Konrad Zuse, John Mauchly, Presper Eckert, Howard
Aiken, etc.) [Note: many biographies submitted in past classes
tend to emphasize "drama over substance", so you may proceed at
your own risk ....].
- The emergence of key technologies: Find out more about the
impact of the transistor, or the integrated cicuit on the history
of computation. Look into different technology used in computer
memory (hard disks, floppy disks, drums, core memory....) and
other issues of architecture (virtual memory, cache, RISC).
- Topics in AI: e.g., fuzzy logic, neural networks,
genetic algorithms, robotics -- Are scientists any closer to
building artificial intelligence?
- History of the Internet, including both the technology of
hypertext and the network that supports it (both of these ideas
pre-date the internet itself).
- Find out more about Xerox PARC and research there that formed
the basis for the Mac GUI.
Technology:
- Find out what a supercomputer is, and how it differs from a
``regular'' one. What kinds of research is being carried out with
supercomputers?
- Alternative technologies for computation: e.g., quantum
computing, photon-based computing.
- The computers we studied this semester are all
digital, i.e. based on the binary, or on-off scheme.
Another whole class of computers are called analog
computers which work by modeling natural processes directly.
Find out about these computers and report on their uses.
- Pick any component in a modern personal computer (e.g.,
hard disk, display, mouse) and focus on the technology behind
it.
Applications:
- Pick your favorite field (computer animation, aviation,
weather prediction, medical, physics, sociology, anthropology,
your major, etc.) and research one or two important uses of
computers in that field. Focus on things that are done that are
truly impractical or impossible without computers.
- Explore the impact of computer use on assisting people with
various special needs (e.g., learning disabilities,
alternative interfaces).
Note: Treat this paper as you would any research paper for
a non-science course. In particular, your paper will be graded not
only on the contents, but on the form, organization and clarity of
presentation of the information. Be sure to properly footnote and
reference all sources, even electronic ones. Emphasize technical
explanation over social consequences.
II. Javascript Programming Project
For projects, you should create a complete web page, complete with
sample data (i.e. if you have a page for organizing CD's, you should
have some sample disks; if you have a stack for ciphering messages,
you should include a sample message). Your page should also have a
help button that accesses a description of how to use it -- this
should be non-techical (sort of a user's manual), and maybe a page in
length. Finally, hand in a design document (on paper, not part of
your web page) that explains the technical details of how your page
works (this will also probably need to be about a page or so). You
should assume that the reader is familiar with Javascript, but not
your web page. We are looking here, as in the converter page for
several key components:
- usefulness: your page should perform some real, not made-up or
frivolous, function so that it might be reasonable to give it to a
friend or family member to use.
- usability: be sure to give thought to the user-interface
(transparency, forgiving, etc.) We will be looking for this when
we test your pages, so you will want to check for bad user-input
and give appropriate messages, for example.
- original javascript functions: your project needs to consist
of MOSTLY originally written javascript functions, some of which
must be "nontrivial" - that is don't just create your own
functions to do something trivial like add two numbers. You may
optionally include some functions that you do not write yourself,
as long as you make it clear that they are not your own work (you
must state where you got them), and you copy only from pages that
clearly state that you are allowed to copy them (doing otherwise
may be a violation of copyright law). These restrictions apply to
any kind of copying, including re-typing the function as well as
using cut and paste.
Some Ideas for Web Pages -- feel free to propose your own:
- Create a page to organize some sort of records, such as CDs or
phone numbers and addresses of acquaintances. Each record should
have at least 3 pieces of information (such as title, artist, and
release date for a CD). Your page should include a function to
search for records (e.g. find a record by a certain artist). You
may want to write this "search" function as your own non-trivial
Javascript function.
- Create a stack to perform a "Caesar cipher" on a string of
text in a field. This cipher should "rotate" each letter of the
alphabet by 5 letters - for example, the letter 'a' is the first
letter, so it should always be replaced by the sixth letter ('f').
If you need to "rotate" a letter past 'z', start again at the
beginning of the alphabet. For example, 'u' would rotate to 'z',
and 'v' should rotate to 'a', and 'w' to 'b'. Include options to
encipher normal text or decipher the result to get the original
back.
- Make a page for organizing your schedule and information about
your classes. As in suggestion A above, be sure to construct
interesting and useful ways to access the information.
III. Group Research Project using Information
Technology
The topics for projects this term is from the field of Economics,
and can be chosen from issues of demographics, IT impact or other
such issues where an argument can be made for a specified hypothesis.
For example, one might make a statement "Women are minorities in
computing for the same reasons as men are minorities in nursing." The
group would need to identify the reasons for each, acquire data to
support these cited reasons, and evaluate the value of each piece of
evidence. Other potential hypotheses include:
- IT is driving the recent economic progress primarily by
increasing worker productivity.
- IT typically reduces productivity initially; benefits are
realized in the long-term.
- A correlation exists between economic class and access to
IT.
- A causal relationship exists between econmic class and access
to IT.
- The recent boom in IT is causing a decline in the fine arts
(or quality of poetry, health of workers, etc).
- The recent boom in IT is causing an increase in school
violence.
The goal of the project is to provide evidence to support (or
refute) such a position using information collected from various
resources. Collaboration among group members should be conducted
using IT, as well as finding resources, gathering and processing
data, and developing a report of findings (and a presentation if time
permits).
Many challenges are anticipated for this project (as with all
group efforts), so the professors will provide as much support for
this project as possible.
Page
maintained by
John Dougherty, Computer
Science, Haverford
College
Last Modified on