Nifty Assignments - SIGCSE 2007
|Summary||This series of assignments involves designing and implementing programs that display ASCII animations.|
|Topics||An ASCIImation is an animation in which the individual frames are composed of standard keyboard characters. This page describes three different assignments that involve designing and constructing programs for displaying ASCIImations.|
|Strengths||The great strength of these assignments is that they are fun and stimulate creativity. Assignments can be tailored to address several programming/design concepts at different levels of the curriculum.|
In an age of 3-D graphics and video games, what could be more retro than returning to the olden days of ASCII art? Pictures made up of typed or printed characters have existed for more than a century, but became widespread in the 1970's and 1980's due to character-based monitors and the growth of the Internet. Known as ASCII art, these character-based pictures commonly appeared at the end of emails and were the basis of today's emoticons. The term ASCIImation, to describe animations made up of ASCII art, was coined in 1997 on the Star Wars ASCIImation site (where the original Star Wars movie is being recreated in ASCII).
ASCIImations can also be the basis for an assignment in a CS2 course, or late in a CS1 course that emphasizes GUI-building. In a recent CS2 course, I showed students the Web-based ASCIImation player from CS0 and assigned them the task of building a Java application that could play animations stored as files. Students were given minimal requirements (the ability to load an animation file, play it, and pause) and encouraged to incorporate additional features (e.g., a progress bar, animation speed control). For developing the GUI, students used the GUI Builder that is incorporated into NetBeans, but this assignment could also be used in a course where GUI building was done from scratch. Students were provided some hints as to how to set TimerTasks in Java, but part of the assignment involved having to access the Java documentation and figure out how to schedule the animation steps.
While students enjoy developing an ASCIImation application and creating their own animations, they lament the fact that their application cannot be accessed via the Web. This leads to a discussion on the differences between a Java application and an applet, and the fact that file access is restricted with applets. I use this discussion as an opportunity to plug our Web Programming course, which includes server-side programming in PHP. A full-featured, Web-based program was used as the basis for a recent independent study assignment, and will be used in the Web Programming course this fall.
Because ASCIImations are visual and don't require technical knowledge to create them, they can also be used outside of the classroom as a public relations boost. At Creighton, we are currently running a university-wide ASCIImation contest, where any student can create and submit an animation. The contest is co-sponsored by the Department of Computer Science and the Department of Journalism and Mass Communication (home of the Graphic Design program). Through emails, Web posting, and campus flyers, students were notified of the contest, thus raising awareness of the CS program and the Interactive Web Development minor recently introduced.