Requirements for all Simulation Programming Challenges
Shifting gears...


For those of you who love "stick shift" vehicles, you have to practice "shifting gears" mentally.
Learn how to think "uphill," synthetically, from the bottom-up: from computer code at the bottom to the job it does at the top.
Learn how to think "downhill," analytically, from the top-down: from a job you want done at the top to the code which will do it at the bottom.
four "E"s...
EXPLORE
Explore the full range of the functinality we developed in class. Try each of the rules, initial settings, visualizations and other options to see what behaviors they produce. Study the code behind each of those rules and options. Explore the full range of "what if?" scenarios that are present in the simulation before you go further.
ENHANCE
Enhance the functionality of the application by adding new rules, initial settings, visualizations or other code consistent with the goal or understanding complexity. It is OK to add cosmetic changes with graphics or sound but you should focus your attention on creating substantial. Complexify the agents' senses, thoughts and actions. Complexify agent interactions with other agents and their environments. Add analytical tools, sonifications and visualizations to collect and bring out subtleties in what happens. the resultant behaviors.
EXPERIMENT
Experiment with the enhancements you created and document the results in screen-grabs, tables and graphs with a discussion of your work. Explain what you tried to do that worked. Explain what you tried to do that didn't work. Make sure to provide instructions for the reader so that they can replicate your findings.
ENJOY
Enjoy the intellectual challenge of translating your creative ideas into natural language, then into pseudocode and from that finally into valid computer code. You are only limited by your imagination. Pseudocode is a sketch of how you will approach the computer in its own language. Pseudocode is half-way between English and C/C++.

WHAT TO HAND IN

Two (2) copies of your report on paper. (I will return one copy to you.)
One (1) DVD containing your complete simulation project files. (I will not return this.)

Your DVD should be labeled and in a paper sleeve (no jewel cases).
That and your report on paper should be in a plain clear sheet protector.
You report should be single spaced on one side of the paper only.

Be prepared to present your work in class...

REPORT COVER SHEET

Your name, challenge number and title should appear clearly at the top.
At the center should be a color screen shot showing the most significant aspects of your work.
At the bottom provide a
brief executive summary of everything that you have done.

REPORT NARRATIVE

Elaborate your executive summary remembering the "four 'E's"...

Explore - Very briefly review how the simulation works.
Enhance - Explain how you Improved the application with your own code. What did you plan to do and why? What challenges did you face? Tell us how far you got in implementing your plans. We are mostly interested in the "what if" questions you are asking, their relevance to the philosophy of this course, how you implement them and how you visualize the results on the display. We are less interested in the aesthetics of you visualization, unless your goal is to to produce a work of algorithmic art.
Experiment - Document the behavior of the simulation under your "what if" scenarios. Color screen shots, graphs and tables should be included in your observations as appropriate. Be sure to provide the reader with instructions on how to replicate your findings.
Enjoy - Be creative! Explain those attempts that worked and those that did not. Propose ways to implement your original vision.

REPORT SOURCE CODE

Print out only of the source code that you wrote, typed or pasted in.
Make sure that it is properly formatted.
Make sure that is is clearly commented.