Tuesday, August 05, 2014

It's Hard To Make Easy Projects

I’ve been working on my lesson plans for this year and one thing I always struggle with is creating projects. Oh I have lots in my tool box but I am always looking for something new and more interesting. In many ways the hardest to create are the ones that are easiest for students to create. Let me put it this way – what sort of project can you design using nothing more than assignment statements? And make it fun and interesting for students?

Not easy is it? There is of course the traditional Hello World program. Yawn. And of course conversion programs. Fahrenheit to centigrade obviously. Last year I was introduced to the Red/Green program. This works very well in Visual Basic or C# where one can easily create buttons on the form and have one button change the color of the form to Red while the other changes it to green. Students actually have some fun when you say “now create more buttons for more colors.”

We’ve also used a program where an image is loaded into one picture box and pressing a button causes it to “move” from one box to another. This has a great feature that lets it be built up and made cooler as more programming features are learned (See this rotating lights project for example) I like projects that can be built upon for later use.

I’m always looking for more ideas though. What do you use for the first or second program?


Mike Zamansky said...

And don't forget to always write your own solution no matter how simple you think the problem is.

I can't tell you how many times I gave an "easy" assignment only to forget that one thing they need to actually make it easy.

Mike Zamansky said...

With just assignments it's tough. When I'm introducing a language like Python I like doing string manipulations like take a name: "James Bond" and make it into "Bond, James Bond" or Pig Latin. Stuff like that.

Of course that requires more than just assignments.

Garth said...

I, on the other hand, hate string manipulations. I think they are as exciting as watching toast cook, although I do like the pig Latin idea. Different strokes for different folks.

I am more a turtle graphics type. With the turtle I can start really simple and go to really complicated. The kids can have a lot of fun and learn the programming. I typically start with a simple project like drawing a house. The house has to have two identical things drawn with a single sub-procedure and something circular which forces them to examine a circle drawing procedure. Stupidly simple but still requires a lot of planning. From there it can go to selections (user selects a sun or moon or some other choice) and animations. I also do a tessellation project. The kids think it looks like fun until they start having to do a little math and the loops inside of loops. It kind of sucks them in. The "artistic" nature of using the turtle seems to attract the students more than the math or text assignments I used to give. I can still teach to the same objectives. Of course there is the little detail of using a language that has a turtle. That is why i like Small Basic and Python.

Of course I can only go so far with the turtle. Right now I am building a number base conversion project for my advanced class. I want to teach bases and figured I might be able to kill two birds with one stone. I can do all sort of nasty things with this project. I plan to have the kids do the project initially in a language they are comfortable with (Python) then do the same project in Java. This is one of those project where 90% of the work is in developing the algorithm and breaking it down into something that is code-able. My favorite kind of project. .

Alfred C Thompson II said...

I like both string manipulations and turtle graphics programs. I use Turtle graphics with my beginners using TouchDevelop. The other CS teacher uses them with a logo like app he wrote himself. Students do like them. They are not as fond of string manipulations as I am.

Unknown said...

Scratch is pretty good for HS students with no prior experience. Having the kids tell a short animated story gets them thinking in an organized and structured way and introduces them to objects,sounds, commands and methods.