For years Mr. 18 has devoted much of his spare time to computers—hardware, web design, technology news, and the Microsoft Answer forums—so we thought he might want to pursue a career related to computers. However, to be certain of that choice he would need to try programming, and at first I had no idea where to turn for a serious, up-to-date, affordable high school programming course.
When we first heard about it, TeenCoder’s Windows Programming seemed like a perfect fit, and it was! This one semester course takes the student from knowing essentially nothing about programming to writing a simple chess program. Projects along the way range from a simple “Hello World!” message to a story program, a basic calculator, and writing songs.
The Windows Programming course has a text book, a course CD, and optional instructional videos, and is based on Microsoft’s Visual C# 2010 Express programming platform. The course CD includes solutions to the projects, tests, and answers, and practical help for both the student and the teacher. The optional course videos, perfect for audio-visual learners, reinforce the learning in each chapter.
Chapters in the 267-page soft-cover textbook include Intro to Windows Programming, Fundamentals of C#, Windows Programming Concepts, Data Types and Variables, Basic Flow Control, User Input, Math Functions in C#, Working with Strings, Methods, Debugging and Exceptions, Collections, Object-Oriented Programming, Classes in C#, Sorting and Recursion, File I/O, Inheritance and Polymorphism, and Final Project.
As is obvious from the chapter titles, this is a serious course that covers a lot of material. A few times my son felt overwhelmed and frustrated, and I was unable to help him. Fortunately, the authors, professional programmers and homeschooling parents, provided excellent support. What’s more, a third edition of the course has just been completed. In it some unclear sections have been rewritten and, most importantly, an index has been added so that confused teens and their moms can find relevant information more easily. Obviously, the course videos could help as well.
How we used it: As one would expect for a high school course, there are no lesson plans. We just divided the pages up by the number of weeks to determine how far my son needed to work each week. Mr. 18 studied independently, showing me his projects when he was finished, and, to be honest, I was very impressed with what he had learned. Tests and test solutions were included with the course, but we chose not to use them due to my son’s intense course load. They seem to be very helpful, and are useable even by parents who have no computer background. Although I did not award percentage grades, I based a letter grade on what he had learned, on the projects, and on his enthusiastic effort, and then listed it as a half credit course on his high school transcript.
My son enjoyed the projects and even shared some of them with the little boys he babysat. What’s more, he learned an enormous amount that will always be useful to him as background knowledge, no matter what career he pursues.
This was a great course for us in two ways. First of all, it introduced my son to programming, something that will be helpful to him for the rest of his life. Furthermore, it helped him make an enormous decision: while he really enjoyed the course, a future in computer engineering is not for him. Without this course, he might have wasted a lot of time and tuition studying a field that he would prefer to treat as a hobby. As a bonus, though, he now knows enough to tinker with computers even more extensively, and that will probably be a relaxing and practical hobby his whole life long as he pursues a completely different career.
In this sense, Windows Programming was probably one of the most important courses he studied this year.
All that being said, as soon as he finished his grade 12 course work, Mr. 18 turned back to his favorite hobby with more ability and background knowledge than ever, thanks to Windows Programming, and he is now setting up a home server. He has also paged attentively through Game Programming, the one-semester follow-up course that uses the C# and object-oriented concepts (learned in Windows Programming) to build games from scratch. Graphics, animation, artificial intelligence, and more—who can resist all that? My son is pleased that Game Programming uses free software, and he intends to play around with it when his current project is completed.
Our experience with Windows Programming was overwhelmingly positive. If you have a high school student who would benefit from a programming course, I highly recommend you check out the programming courses available from Homeschool Programming. They offer two courses each for both Windows and Java programming. My son thinks Windows Programming would also be great for group homeschool high school classes.
Note: This is a high school course and can be used independently by high school students, but younger students should try the KidCoder courses instead.
Disclosure: I received a review copy of Homeschool Programming Inc.’s Windows Programming and Game Programming. As usual, I am not compensated for my reviews, and our opinions are our own.