Specifications for the Computer Science I Project

Amer. College Board

Comp Sci Syllabus Mr. Rogers Class Info Southside High

Overview

The programming assignment for chapters 13, 14, 15, and 16 will be a GUI and graphical program which answers a research question and uses the elements we've studied in cool but useful program. It will be judged partly on appearance, creativity, and overall "coolness". See grading rubrics at right for further grading specifications.

The project may be on any subject as long as it answers or helps answer a research question which could be expanded into a science fair project. The project must be in Applet form.

Project Milestones

Milestone 1. Due on or before Mar 14th
Research Question Proposal: Must contain a paragraph discussing a research question and hypothesis suitable for a science fair project or a statement of purpose. Must contain a second paragraph discussing required input, possible algorithms, and graphical output in at least in general terms. Keep this as simple as possible but remember the program should have both a scientific and artistic side. (1 typed page max)
 
Milestone 3. Due on or before Mar 17th
Program Design: This will include the following (2 to 10 pages):
  1. Block drawing from BlueJ showing the relationship of the classes.
  2. Printouts from BlueJ outlining the classes showing important fields and major methods with descriptors.
  3. Drawing of the GUI interface
Milestone 4. Due on or before April 17th
Working Program: This should include the following elements:
  1. GUI interface - chap. 15
  2. Can call a simple help file - chap. 13
  3. 3 classes minimum
  4. draw a graph or graphical output - chap. 14
  5. 300 lines of code minimum
  6. user documentation - Javadoc (This is simple to do in BlueJ)

The best Applets will be posted on the school web page. This will earn bragging rights and 5 points of extra credit. Applets used as the basis for science fair projects will be awarded up to 10 points extra credit.

Grading Rubrics

Your project folder is to be placed inside a folder with your name on it. This folder will be placed in the “Turn in Folder for Comp Sci Project” on the R or G-drive. The project must already be compiled or a deduction will be made.

Note: Only Applets will be graded

  1. Functionality: Is the project compiled and do all the features of the GUI work? Uncompiled programs will not be graded.
  2. Credits: Is all borrowed code from open source programs clearly marked as such? Plagiarism will result in a grade of zero.
  3. Number of Classes: Are there at least 3 classes? Programs with less than 4 classes will not be graded.
  4. Research Question or Purpose Answered: Does the project answer the research question and do major algorithms work in a meaningful manner? Answering the research question or purpose is more important than having an impressive GUI.
  5. Size: Are there at least 300 line of code written by the student? Repeated lines of code will not be counted as part of the 300 line if a loop or method could do the job more efficiently.
  6. User Friendliness: Can a novice user understand and use the project?
  7. Efficiency of Code: The program must use loops and methods rather than needlessly repeating lines of code.
  8. Style: Does the program follow conventional style and indenting forms?
  9. Comments: Are the comments and Javadoc’s adequate? Overdoing comments will result in a deduction. For example: each class and method should have a purpose. Each fields or variable should have either an obvious name or comment.
  10. Abstract: Does the applet class have a short paragraph in comments at the beginning that explains what it does?
  11. Student Understanding: Can the student explain the code?
  12. Programming elements: The code must contain the following elements:
  • methods
  • loops - both simple and nested
  • fields
  • parameter passing
  • arrays
  • instances
  • if-else statements
  1. Robustness: Is it easy to crash the program?
  2. Coolness: Is the program cool in some way or hum drum?

 

Ideas for Project

Possible ideas are as follows:

  1. Artificial Intelligence: This attempt to simulate the human brain functions. This includes neural networks which are computer programs which learn.
  2. Artificial Life: Uses computer simulations to derive general theories about life. the Scientific American article "ARTIFICIAL LIFE: Boids of a Feather Flock Together" is a great place to start.
  3. Cellular automata: Cellular automata are computer programs that try to simulate life at the cellular level. They attempt to explain how undifferentiated cells can divide and become complex structures such as appendages.
  4. Chaos Theory: This deals with non linear systems which can become chaotic. It includes various forms of turbulence, animal populations, climate and the stock market.
  5. Fractals: These use relatively simple iterated equations to produce elaborate graphics.
  6. Number Series: There are many different type. Computers are commonly used to discover new members of various series. This includes the search for perfect numbers, mersenne primes, etc.
  7. Spam Filters: These devices are used for blocking e-mail spam. They can range from very sophisticated to very simple filters and can be fairly simple to write.
  8. Markov Chains:
  9. Physics Simulations Accounting for Air Resistance: The reason air resistance is ignored in most calculations has to do with the fact that it generally requires a computer to do account for it.
  10. Random Number Generators: There's no such thing as a perfect random number generator. Usually they have to strike a balance between performance and speed and are still a topic of research among computer scientists.
  11. Monte Carlo Simulations: These are programs which use random number generators to simulate complex problems. They can be extremely complex or very simple. Simple simulations of this type can be done with relatively little programming experience. The Marine Biology case study is an example of a Monte Carlo Simulation.
  12. Flocking/herding Behavior: Programs of this type attempt to simulate the behavior of predators and prey using simple sets of rules.
  13. Snow Flake/Crystal Growth: Look at thousands of pictures of snow flakes and they all tend to be slightly different yet they are recognizable as snow flakes. This implies that there are simple rules which can govern how the crystals are formed.