Miniproject 1: "Getting into the Swing of Python With Illusions" in CSE 190 D (Spring 2013)

Purposes:

Gain fluency with Python, an introduction to GUI programming, an experience with visual illusions, and a little experience working in a partnership.
 

Teams and Topics:

Your topic and your partner will be assigned to you. However, you get to express your preferences for both. To do so, log into INFACT, as explained in GoPost. Be sure to do this before Tuesday night (April 9) at 11:00 PM, unless you are happy not to express preferences.

Format:

Prepare a PixelMath + Python program to illustrate the visual illusion that your team is working on. Then prepare a document either in Word or PDF format that includes and explanation of your visual illusion, with one or more screen shots of your program. Your program should be interactive, meaning that the user can control the program in some way, possibly using one or more sliders and/or buttons. The controls may change the contrast, rate of animation, or any other variables that are relevant to the visual illusion you are presenting. It may also use simple animation, for example showing a pattern that rotates. Your Python program should be in one or more separate files, each having the file extension ".py".
 

Due:

Wednesday, April 17, via Catalyst CollectIt, at 11:00 PM. Only the team member whose last name comes alphabetically first (in the team) need submit the files. But the report, and the comments in the code, should clearly indicate the names of both team members.
 

Contents of the Report:

Your report should contain the following: (a) a title that includes the name of your visual illusion, (b) the full names of both team members, (c) an image that illustrates the setup or stimulus for the illusion, (d) an explanation of the illusion (about 1 page in length) telling what to look for, why it works (or give a leading theory of why it might work), and a brief history of the illusion, if that information is available, (e) an explanation of how your program works (about a paragraph) explaining any classes you have defined, and how the user interaction is handled, (f) a few sentences decribing what each team member contributed to the project, and (g) what each team member learned. Finally, (h) include a list of the references you used for your project, including names, authors, and URLs of any websites.
 

Resources

The following resources may be useful:
  1. The website of Michael Bach in Germany.
  2. Chapter 16 (Programming Techniques) of our textbook; Appendix E on Graphical User Interfaces.
  3. This online tutorial on GUI development with the Jython+Swing environment.