Thursday, July 25, 2013

REVIEW: TeenCoder: C# Series + Videos by Homeschool Programming

My teenage son recently got to try out the TeenCoder: C# Series + Videos by Homeschool Programming.



The TeenCoder C# Series is a computer programming course designed for teens in grades 9-12 that teaches them the C# programming language.  C# (pronounced “C sharp”) is Microsoft’s newest computer programming language and is commonly used in business and academic settings.  Students use a free version of Microsoft Visual Studio called Visual C# 2010 Express.  This course is recommended for students who are interested in computer science as a career or hobby, or who need a computer science course for graduation.  There are 2 semesters of instruction in the Teen Coder C# Series, with the 1st semester covering Windows Programming and the 2nd semester covering Games Programming.

The Windows Programming course introduces students to the C# programming language.  Students will learn how to create various graphical Windows applications.  Take a look at this Demonstration Video to get a better idea of how this works.

The topics covered in this course include:

  • Introduction to the C# programming language
  • Creating graphical Windows screens
  • Using dialog controls
  • C# data types and variables
  • User input and flow control
  • Math functions and string operations
  • C# debugging and exception handling
  • Object-oriented programming concepts
  • Classes, inheritance, and polymorphism
  • Collections, sorting, and recursion
  • File Input/Output

The Games Programming course pairs the C# programming language with Microsoft’s XNA Games Studio to provide a simple game-creation framework.  What student wouldn’t love to create their own game programs from scratch?  Watch this Demonstration Video for a closer look at this course.

The topics covered in this course include:

  • Game design, game engines, and timer loops
  • Screen coordinates and color concepts
  • Drawing, scaling, and rotating images
  • Handling keyboard, mouse, and XBox 360 Gamepad controller inputs
  • Creating Sprite objects
  • Collision detection
  • 2D animation techniques
  • Playing music and sound effects
  • Game physics
  • Maze generation and solution algorithms
  • Menus, overlays, and deployment models
  • Multi-player scrolling games
  • Game artificial intelligence (AI)

These 1-semester courses can be purchased individually for $75.00, or you can purchase a single-semester course with optional videos included for $90.

If you’re interested in the complete 2-semester course, you can purchase them as a package deal for $130.00, or you can purchase both semester courses with optional videos included for $155.00.

If you happen to own the student books already but do not have the videos, you can purchase the videos for the complete TeenCoder Series by themselves for $30.00.  While the video instruction is not required to complete the course, it is recommended.

To find out more, use one of these resources:

Neither of these programs require any previous programming experience, and they are self-led, so no teaching is required on your part!



For the review, we received the complete TeenCoder C# Year Pack with the optional videos.  I assigned my 13-year old son, Hayden, to work on a chapter per week.  The first semester course is Windows Programming so the student can learn the C# programming language, and the second semester course is Games Programming so the student can apply the C# to writing their own Windows games.  I’ll be mostly talking about the Windows Programming since we’ve not yet started on the Games Programming course, but I’ll summarize my thoughts on that, as well.

I should start by saying that Hayden was completely unfamiliar with the C# programming language.  Previously, he’d had an introduction to BASIC programming language only. 

In chapter 1, Hayden learned about the history of computers and the various editions of Windows that have been released over the years.  It gave him a good overview of how computers have operating systems have changed over time.  It also discussed the appearance of Windows programs and the consistency of function within them.  Then it described various programming languages and the improvements that have been made with each one.  It helped him understand how the C# language came to be.  Next came the accompanying activity.  Hayden had to install the free Visual C# 2010 Express software.  He said that took forever to install, so I know he was feeling a little frustrated, because he was anxious to get started on the programming lessons!  After installation, he downloaded the course files and got ready to go for the next Activity 2 - Enhance Hello Worldlesson.

In chapter 2, he learned more about the C# programming language and how to use source code to create an executable program.  In the activity, Hayden got to open an existing project he learned and make some changes by adding controls and changing the properties. He had to ensure his program met the requirements before moving on.  In a nutshell, he learned how to make a text box and make some design choices as to color, text, and a checkbox.  Piece of cake!

Activity 3 - A More Personal HelloIn chapter 3, Hayden learned about building a screen, # syntax, how to handle events, and how to use .NET Framework objects.  Basically, he understood that screens are referred to as forms in Windows programming, syntax means the rules of the programming language, and event-driven means how a program responds to actions of the user (controlled by elements in the code).  In the activity, he worked on how to make a new text box pop up when the user clicks on a certain thing in the program.

Activity 4 - Experiment with Data Types

In chapter 4, he learned how to name and use the data that programs need to complete their tasks.  He learned about numeric and binary data, and that every system object has special functions.  In the activity, he created a program with different variables and displays.  He designed his own form that worked as a calculator of sorts, but it just had a single function to double the number you input.  Hayden was pretty excited that he made something that actually worked!

In chapter 5, Hayden got to learn how to test data against certain conditions and have it react in the desired way based on the results.  This equates to the old “if/then” statements I remember learning as a child.  He was able to understand the manner in which the computer “thinks” when it makes comparisons.  He thought that was pretty cool.  He also learned about loops.  For the activity, he got to design a form with buttons and make an audio loop with beeping sounds.  He was able to choose the number of beeps and the timing of the intervals.

In chapter 6, he learned more about the various controls that are used to retrieve user input, as well as more about text boxes, list and combo boxes, radio buttons, and check boxes.  He understood that list boxes and combo boxes are both used for multiple choice responses.  However, list boxes show every response, but combo boxes require the user to click for a drop- down list of responses.  He also learned how the radio buttons work as a group.  He said although he has seen and used radio buttons and check boxes as a user, he never knew what they were actually called!  In the activity, he got to write a short story that included combo boxes for some of the details of the story, along with radio buttons and many of the other features.  This worked a lot like Mad Libs.  After the user makes selections, the program shows the completed story in a box at the bottom.  He really enjoyed this activity, because he could really customize the result!

In chapter 7, Hayden learned about performing basic mathematical operations with C#, as well as some advanced math functions.  In this section, he learned some of the shortcuts for mathematical functions, and he thought that was really helpful, because it shortened the length of the code necessary to achieve the same result.  He also got to make the graphics or “outer shell” of a calculator and create the buttons on it.  In the activity, he got to actually make the buttons on the calculator perform real mathematical functions.  He made a mistake the first time he tried this by programming the buttons backwards so they performed opposite functions!  He got a good laugh out of that but was able to fix it.

Now, I’d like to talk a little bit about the optional video instruction.  While the student text is sufficient for learning and understanding the lessons, some students may find the lessons a little overwhelming at first, particularly if they have never programmed before.  Hayden had very little exposure to programming before this, and he initially did feel a bit intimidated.  I think the videos really helped with easing him into the lessons and helped him to feel more comfortable early on.

I’d also like to mention that although it’s too soon for Hayden to move on to the 2nd semester Games Programming course (he still has 9 more lessons in Windows Programming to go), we did take a look at the content.  I mentioned in the description at the top of this review what material and topics are covered in the second course in the series.  Learning the ins and outs of coding games is what Hayden looks forward to the most!  He’s quite anxious to finish up Windows Programming so he can move on to what he deems to be the best part!

Hayden really enjoyed the fact that all of his reading and studying in each chapter led him to an activity where he could practice and apply what he’d just learned.  He found it very rewarding to be able to see the computer respond to the code he’d written.  I think once he starts the Games Programming course, he will probably gain even more momentum and won’t want to limit himself to a chapter per week any more!

Overall, I think this course is laid out nicely.  It gives detailed explanations of new terms and includes lots of illustrations that help you to visualize the concepts.  The hands on activities really help to solidify the learning after every chapter.  I like that Hayden can sit down and complete a chapter without any assistance on my part, yet he’s excited enough about the results of his activities to come and get me so I can see what he can do.

Check out what other Crew members thought of this and other programming courses from Homeschool Programming by clicking the banner below.