I think I am going to make a cardinal sin for programming teachers. I am going to try switching platforms next semester to Mac. I want to teach a course on writing apps. I think it will interest a lot of kids if they can actually write a game (a very simple game) and install it on their own iPod. I would have loved to stick with Windows but 9 out of 10 kids have an iPod Touch and 0 out of 10 kids have a Zune and the Win 7 Phone will be a bit late. I have two MacBooks and 4 iPod Touches from a grant so we will see what happens. Now I have to figure out which of the many on-line tutorials are worthwhile. I also have to figure out how to run a Mac. It took me ten minutes last night to find that the equivalent of Windows Explorer is Finder. Hopefully this is not the good idea fairy biting me in the rear. If nothing else it will keep me off the streets at night.
Archive for October, 2010
It works! And I beat the kids to the solution! Of course they say I cheated by working on it during my prep but I have to get ahead somehow. I had to do some serious Googling to find a way to get the VB color dialog box to work with Small Basic color commands. It truly amazes me how many people post information on the internet that makes absolutely no sense unless you already know what you are doing. One minor glitch is most of the VB color dialog colors do not have equivalents in Small Basic colors. If an unknown color is selected then the color is black. I think I will ignore that minor detail. I have been doing this concentric circle of bricks problem for about thirty years now. The first time was with Apple Logo on an Apple IIe. I like the problem because it covers some good topics. It has graphics, loops, procedures and functions as a minimum. There is a little math involved which always makes the kids happy. One of my tests to see if I want to teach with a language in an introductory course is to see how hard it is to program the simple version of this assignment. Typically I do not include the color requirements. My final solution for the color requirements had If-then’s, an array for the color names, message boxes requesting a yes/no and a menu bar. This one problem covered the first eight chapters of the book. It is less than 100 lines of code so it does not turn into a major typing project for the kids but it does require considerable amount of thought. There are also a number of very different coding solutions that will accomplish the job.
I gave this to my wiz-bang class yesterday. These three guys are smarter than I so I have to dream up projects that require them to think, not just code. The programming text book I am using, “Programming in Visual Basic 2008” by Bradley and Millspaugh, is right up there with watching grass grow. There is just something about giving really bright kids an assignment that I have not quite figured out myself. Keeps me awake during my prep preiod.
Write a program that will draw the picture below. You will need to import the Small Basic Library and use the turtle commands from Small Basic. Use a menu bar for Printing, Clearing and About. Use a GO button for executing. The program will require several procedures and a function.
User inputs are:
- Number of rows of bricks from a drop down menu. Min 2 rows, max 10 rows.
- Radius from center to inside of first row.
- Fill bricks with color or not. Use a color dialog.
- Width and length of bricks. It will be necessary to put max and min dimensions or there will be visual issues.
- If the bricks are colored, outline the bricks or not.
- If bricks are to be colored, a choice will be all bricks the same color or all rows different colors. If the different colors choice is made a dialog will open allowing a color choice for each of the n number of rows. (Example: 3 rows selected imply there are three colors to select.)
(The picture would not paste. Imagine bricks laid out in concentric circles.)
I am not sure why Microsoft has invested the time into products like Kodu and Small Basic but I am not one to look a gift horse in the mouth. There are excellent tutorials out there on how to use the software. Something to look at now would be to ways to convince teachers to use them and teach teachers to use them. Find some elementary teachers that are using Kodu and SB, compile some lesson ideas with teaching ideas and pit falls. How to use Kodu is very different that how to teach with Kodu. Our elementary tech teacher is very smart but has no programming experience. What would entice her to integrate Kodu (or SB) into an already crowded curriculum? Are the gains in knowledge worth the loss of other topics the kids do not experience? Teachers are getting buried in cool ideas like Kodu but there is only so much time in the school day and any curriculum additions have to replace something. If there are not justifications to switching it is not going to happen. “Kids get to write cool games” is a really bad way to approach the topic to a tradition-bound administrator. Computer games are perceived by many teachers and administrators are the cause of the woes of the world. Would the hassle convincing the administration and the required curriculum rewrite be worth the educational goals gained by introducing programming in the lower grades? I think there are great advantages but this question needs to be answered by someone much smarter than I and by someone with a lot more experience than I.
I learned something interesting this Monday. The Montana Office of Public Instruction stats say of the 140 some odd schools in Montana, 6 offer a programming course. Next year the number will be 5 because one of the teachers is retiring and there is no replacement. Now I admit Montana is not at the cutting edge of CS education but I have a feeling we are not alone in that ratio or in the shortage of CS teachers.
There has been a lot of discussion out in blogland on the state of teacher prep to teach CS by Schools of Education. The universal consensus seems to be that there is no teacher prep for CS by the Schools of Education. Does anyone out there know of any University/College that offers a teacher prep program for CS? I am not thinking of a CS degree program but more in the direction of courses designed for the non-CS major who might have an interest in teaching CS at the high school level. Since most high school CS teachers seem teach another subject; math, science and business seem to be the most common, the course work would be something that fits into another major, not something like another 30 credits of course work that the average education student does not have the time or money for. I have been working on a methods course for CS but since I have never seen such a course I am just working on personal experience. In other words, after teaching introductory programming courses for many years, what would I have found really handy to know prior to students walking in the door the first time. I would really like to hear what other people consider vital for a CS methods course or what course work would be considered vital.