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 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.

Project Milestones

Milestone 1. Due on or before Dec 17th
Research Question Proposal: Must contain a paragraph discussing a research question and hypothesis suitable for a science fair project. 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 2. Due on or before Jan 9th
Science Fair Forms and References: Three references are the required minimum. At this point the research question should be finalized.
 
Milestone 3. Due on or before Jan 28th
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 Feb 20th
Working Program: This should include the following elements:
  1. GUI interface - chap. 15
  2. 3 classes minimum
  3. draw a graph or graphical output - chap. 14
  4. 500 lines of code minimum
  5. user documentation - Javadoc (This is simple to do in BlueJ)
Milestone 5. Due on or before Feb 27th
Backboard for Science Fair:

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 G-drive. The project must already be compiled or a deduction will be made.

  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 4 classes? Programs with less than 4 classes will not be graded.
  4. Research Question Answered: Does the project answer the research question and do major algorithms work in a meaningful manner? Answering the research question is far more important than having an impressive GUI.
  5. Size: Are there at least 400 line of code written by the student? Repeated lines of code will not be counted as part of the 400 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.
  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

 

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.