Making CS Fun
Originally presented at the CCSC-NW Small Colleges Conference 2001 as a Panel Discussion (Oct. 2001, Pacific Lutheran University, Tacoma, Washington)
Panel Members: | |
---|---|
Katrin Becker, Chair Department of Computer Science, University of Calgary, 2400 University Drive NW Calgary, Alberta Canada, T2N 1N4 email: beckerk@ucalgary.ca |
Dr. Jerry Roth Dept. Math and Computer Science Gonzaga University MSC 2615 Spokane, WA 99258-2615 email: roth@cps.gonzaga.edu |
Dr. Sharon M. Tuttle Humbolt State University Arcata, Calif. 95521-8299 email: st10@humboldt.edu |
Dr. Steven R. Vegdahl University of Portland, School of Engineering 5000 N. Willamette Blvd. Portland, OR 97203-5798 email: vegdahl@up.edu |
Ron West Umpqua Community College Roseburg, Oregon 97470 email: westrm@rosenet.net |
These pages are devoted to collecting ideas that instructors can use to make CS more fun for their students. It includes ideas for things to try in and out of class as well as collections of entertaining lists such as silly names, place names, tongue twisters and the like. Contributions welcome. If you are submitting an idea that came from someone other than you, please do them the courtesy of giving them credit. Thanks.
LISTS: for data, etc.
Choose your data set carefully for assignments and examples (see lists)
Use bogus names, interesting text, strange place names - Newfoundland Canada is a rich source of bizarre place names
Tongue twisters make good text samples
Excerpts of scripts from popular films or classic literature (like “Alice in Wonderland”, “The Matrix”, or “The Crow”)
IDEAS
Ideas provided by panel members (other than K.Becker) and ideas provided by others out there in the world are credited.
Teaching Concepts
Binary:
<style float-left>
</style>
Counting in Binary on Your Fingers (watch out for the number 4!)
Performance Art:
'playing computer' to demonstrate low-level instruction execution
Teaching Recursion:
![]() |
![]() |
![]() |
Performance
[Source: Dr. Steven R. Vegdahl ] Using a ball to illustrate the semantics of “throw” and “catch” in Java.
[Source: Dr. Steven R. Vegdahl ] Singing the old song "I'm my own Grandpa" to illustrate what happens to tree traversals when cycles are inadvertently introduced.
Drill
[Source: Tim Rolfe, Eastern Washington University] Drill programs, with students called to the board randomly. Each student is assigned a card face value and color. Unassigned cards are covered by the instructor. The instructor shuffles the deck, has it cut by one of the students, and then goes through the deck one card at a time, choosing who will perform the next stage in the drill. The session can be kept light with running commentary — “Someone's getting an easy one here” or “Someone's going to have some fun on this one” — and also perhaps by allowing the student currently working to ask for help from the rest of the class.
Drill programs:
http://penguin.ewu.edu/class/cscd327/Spr-2001/Drill/index.html [Source: Tim Rolfe, Eastern Washington University] For the section on graph traversals, use a regionally-correct graph (here, a selection of eastern Washington towns plus a couple of towns in northern Idaho).
PowerPoint file and Word-97 file with the traversals:
http://penguin.ewu.edu/class/cscd327/Spr-2001/06/Graph/Travail.ppt
http://penguin.ewu.edu/class/cscd327/Spr-2001/06/Graph/TravSlides.doc
Web page on the graph algorithms: http://penguin.ewu.edu/class/cscd327/Spr-2001/06/Graph/index.html
In Class - not directly related to teaching
Examine the occasional 'program perversion' E.g. executable programs that are almost completely unreadable by humans (i.e. using bad or misleading variable names; creative use of white space; try the Obfuscated 'C' Code site [ The International Obfuscated C Code Contest ] for some outstanding examples)
<style float-left>
</style>
<style float-right>
</style>
Place Clip Art on exams (Santa's or summer holiday clip art, etc.)
Keep some toys in your office or place interesting and/or fun things to read outside your office.
Award stickers for top marks on assignments or exams.
Hold back all the 'A' exams rather than returning them with the rest and make these students ask for them personally. This way you get to congratulate them personally.
Post a fun or thought-provoking quote to begin each class. (see Quotes)
Assignment Ideas
[Source: Dr. Steven R. Vegdahl ] Giving students an assignment to create a Java applet that draws their professor's face.
For an assignment that requires students to choose a scenario and set up a computer system; allow them to choose unusual scenarios:
- a PC for a family with 15 children
- a system for a “drug-lord” (security would probably big a big issue, but cost wouldn't)
CS 2: OO; Stacks (& queues?): Assignments implementing Solitaire Games:
Note: If you have trouble accessing these assignments (some are password protected), send me mail.
CS 1: 2-D arrays: Assignments implementing Games:
CS 2: Object inheritance: Assignments implementing Games:
File Formats; path-finding; searching: Make a path-finding robot program (if you are interested in this assignment, please send me email)
Try adding a Bonus or Challenge to your assignments. These are suggestions for ways that students can expand or improve on their assignments. Don't let plausibility get in your way here. The challenge category for my 1st year Asteroids assignment included making the program real-time, full colour; with sound; in 3D. I got one submission that did it all - in XWindows no less!
Out of Class
The Spare Time Programming Contest (with real prizes!)
This contest is open to all CS students and the problems are intended to be solvable by 1st year students as well as graduate students.
Some Problems
Write a quine (a program that takes no input, and whose only output is an exact copy of itself)
Write a program to output the 'lyrics' to the song “99 Bottles of Beer on the Wall”
Write a “program” to do metric conversion. You may not use any known programming language.
Write a program that either generates poetry or is itself poetry.
Departmental Endeavours (fun for the whole gang!)
The William's Cup (in honour of Dr. Michael R. Williams, who's not even dead btw).
The trophy is made of one of his old melamine coffee cups, with coffee stains intact, mounted on a wooden base. It's awarded to the most entertaining assignment submission of the year - intentional or otherwise) The student's name is engraved on a metal plate and fixed on the trophy.
Have a “Silly Hat” day, or arrange for all students (in one of your colleague's classes) to wear a red shirt on the same day.
Organize a tournament of some sort between students and staff (Hallway-Golf maybe?)