Finding cool projects for programming classes

This week both Alfred Thompson and Mike Zamansky made posts about programming projects they like to use in their programming classes.  I looked at Mike’s Pig Latin and immediately thought I need to use that one. Then I Googled “Python pig latin”.  Multiple tutorials and solutions are there ready to copy. Nuts. One of the big difficulties I have in my programming classes is finding fun projects that are not given on the internet in fine detail.  My students are smart enough to use Google and it takes them about two class periods to try to see if there is a solution on the internet. I actually show them stackoverflow. Heck, the pros use it. But it sure does screw up trying to get the kids to do a little original work.  I have a couple projects that are either not out there or are difficult to find. One is the simple program of having a small red square travel around the edge of the screen. Sort of a primitive animation. It is not complicated code but it does take some thinking to have the square travel the dimensions of the screen and not disappear off an edge.  It also takes some tinkering to make it look smooth as it travels. The project is not too original but it is not a 30 second Google for a code solution. At one time I thought my assignment of taking a file of Shakespeare’s insults and making sentences of them was pretty original. Nope, it is there.

Finding or thinking up projects not on the internet is not easy.  The textbook I use “How to Think Like a Computer Scientist: Learning Python 3 Documentation 3rd edition” by Wentworth, et. al. has a lot of good projects in it at the end of each chapter.  Cool. They are all searchable on Google. Not cool. Admittedly the kids really do not hit Google first. Usually they try to code it without help but they learn fast. They also find solutions using coding I did not teach them or they did not get from our textbook.  Good and bad. Good that they are going beyond the textbook solutions, bad that sometimes they have no idea how what they found works. Cut-and-paste coding. I usually have the kids explain their code if it is something I do not recognize and, believe it or not, 90% of the time they can, but sometimes I just have time to grade “it works” so I miss the cut-and-paste.

Good coding assignments are difficult to find or dream up.  Decent length, target the learning objective of what you are teaching, not so boring as to make kids think programming is a bore, not so difficult that the kids cannot find a decent solution, fun (pig latin, insults) and so on.  The internet is killing me.

4 Responses to “Finding cool projects for programming classes”

  1. Derek Miller Says:

    In my previous teaching position, I started incorporating more “creative” projects that don’t have a single solution to avoid this problem. Some examples are a MadLibs project, a Zork-like adventure game, and a random quotes project. While it makes the projects harder to grade because I can’t create unit tests, it does make it harder for kids to cheat since it is easy to see two kids who have the same MadLibs story.

  2. gflint Says:

    Ideas, that is why I do this blog. I will have to find out what MadLibs is.

  3. The Problem Of Cheating on Programming Projects – Universitiez Says:

    […] some discussion of the issue on one of the mailing lists I am on. Garth Flint blogged about it at Finding cool projects for programming classes. And I caught a student searching for exercise solutions for Code.Org’s AP CS Principles course […]

  4. The Problem Of Cheating on Programming Projects – Platoonnews Says:

    […] some discussion of the issue on one of the mailing lists I am on. Garth Flint blogged about it at Finding cool projects for programming classes. And I caught a student searching for exercise solutions for Code.Org’s AP CS Principles course […]

Leave a comment