How to Make Better Programming Assignments
- Make it useful. Have a database of CDs or a list of friends phone numbers
- Make it personal or local. Make a school map, a local business directory, or print the student's name in an interesting way.
- Interface with other programs. Write programs to exchange data with a spreadsheet, database or web server.
- Focus on ease of use. Help students understand the critical role usability plays in software quality and reliability.
- Use big data. Problems that are too hard to solve by hand help students understand the real value of computing.
- Use real-world data. Have students find the data and modify it.
- Use natural-language text. Students can write programs that manipulate or analyze large bodies of text retrieved from the web.
- Make it sensory: graphics, audio, animation, manipulation.
- Make it socially relevant. Build assingments around issues like ecology, population trends, and so on.
- Simulate! Simulating real systems (traffic, elevators, plant growth) brings computing closer to the real world and offers many avenues for creativity.
- Include observations of the real world or of the program's behavior.
- Bring in experts. A human being who can address either a technical issue or a computing application can be a powerful motivator. Experts can be "brought in" in person or over the internet.
- Illustrate how everyday computational objects work: calculators, remote controls, vending machines, elevators, Palm Pilots, and so on
Excerpted from Unlocking the Clubhouse: Women in Computing by Jane Margolis and Allan Fisher, MIT Press 2002
Also, to create assignments that women like try:
- Creative assignments
- Feeding games instead of shooting games
- Cooperative games
- Playing with language
Link to this Page