Homeschool Programming – TeenCoder Java Series (review)
In the interest of full disclosure, I have to admit that this isn’t our first experience with Homeschool Programming. In April of last year, we’d purchased both of their already-available courses, KidCoder Visual Basic and TeenCoder C# through a special buy program that offered a discount off the price, while providing ebooks instead of texts.
Mind you, this is two full years worth of instruction. Michael inhaled KidCoderVisual Basic in just a few weeks, and then dove right on in to TeenCoder C#. It was an amazing experience, because, while I’d already known he had an avid interest, I had no idea that he would vacuum up every bit of it in such a short time.
He was thrilled to be able to show us what he’d accomplished, and he found the texts well-laid out with reasonable assignments. Me, I was starting to wonder if he was ever going to come out of his room – or get off the computer – again.
Fast forward a year. He now has solid plans for a future in game design, and is actively working to make that happen. While he’s picked out a favorite college or two to apply at, that hasn’t delayed his acquisition of skills. The confidence that Homeschool Programming gave him has propelled him on to more languages, and I’ve been thoroughly impressed with the results.
At the time, Homeschool Programming had just released the first semester of the TeenCoder Java series in physical product form, so it wasn’t available through the special buy. The second semester was yet to come, with release plans, if I remember correctly, being in later summer or fall 2012.
We *really* wanted to purchase it. It was already apparent that Android was a success and here to stay, and best of all, it was something that I could learn, too. We hadn’t yet purchased any devices that ran Android (other than an off-brand ebook reader I had), but we knew that would happen shortly, as we had plans to change cell phone companies soon.
Life and finances happened, and we put off obtaining it until after taxes came back this year. And then I found out it was a review – and once again, we decided to wait. Let me assure you, that wait has been worth every minute.
What do I need for TeenCoder Java Programming and TeenCoder Android Programming?
There are no prerequisites that the student need to know before beginning the TeenCoder Java Series other than interest, and it was written for high school students. Materials are sufficient that students may be able to prepare for the AP Computer Science exam if the additional bonus materials are used.
Students will need a computer that meets the technical requirements listed below, and internet access is necessary for downloading the free software programs that the student will use during the course. Regular internet access would be helping if the student desires to seek other freely available resources that are described, but it’s not an absolute dealbreaker if they don’t have it – the course might just be a little bit more of a challenge that way.
What are the technical requirements for the TeenCoder Java Series?
This course is compatible with both PC and Mac, and minimum technical requirements to run the Eclipse IDE include:
- An CPU of at least 1.6Ghz
- At least 1024MB of RAM
- A display monitor with 1024 x 768 or higher resolution
- A 5400+ RPM hard drive with 3GB or more free space
- A DVD-ROM Drive
Supported Operating Systems:
- Windows XP + SP3 or above (except Starter Edition)
- Windows Vista + SP2 or above (except Starter Edition)
- Windows 7 (all versions)
- Windows 8 (except RT)
- Mac OS version 10.5.8 and above (on Intel-based CPUs)
The first semester, Java Programming, consists of 16 chapters, while the second, Android, has 15. Each course takes approximately a semester, depending on the pace of the student. It’s recommended to proceed at about a chapter per week, though, as our experience obviously shows, it’s entirely possible to move quite a bit faster with a motivated student. Just make sure, in that case, that you check the student’s progress against the solutions to ensure that they’re not sacrificing quality for speed.
Homeschool Programming TeenCoder Java Programming – the first 8 weeks
The lessons begin with a simple introduction to Java’s history and leads the student through downloading and installing the necessary programs. The detailed instructions, along with screen clips, are helpful to ensure that you’re doing the right thing, though for most people that are reasonably familiar with computer use, it will be fairly routine.
In the fifth lesson, students write their first program. While it’s exceedingly simple, it’s nice to see the computer respond as requested, and the near-immediate gratification is an encouragement to continue. It’s followed by instruction on building and running programs from the command line, and then a discussion of java classes and packages.
Students are then introduced to the Eclipse IDE, and importantly, to the large online community that can be a huge help to the new programmer. After a introduction to their new software, students are then guided to help and reference materials – something important for them to learn to access on their own, as they’ll need to do much of their own problem-solving, especially once they’re done with the course and into real-world programming.
Students then learn about data types, variables, and how to work with strings, followed by the all-important topic – how to get user input and what to do with it once you’ve got it!
While these tasks might sound simple in words, they’re a bit more troublesome (at leasst for me!) when they’re being translated into a language the computer can read, and that’s what programming is all about. A programming language is a sort of mid-point between the English we use and the machine language that a computer actually does all its hard work in.
We were then introduced to logic and loops, which is, as best I can explain it, how to have the computer seek information, gather it, and then apply it.
Homeschool Programming TeenCoder Java Programming – the last 8 weeks
For me, I’m about to get started on the debugging lessons – I got a bit lost in the logic, which didn’t surprise me too much, as the last programming I did was in about ’93 in some old sort of Basic! Michael, of course, totally got it, and since his day to leave for camp was imminent, had resorted to telling me that if I hadn’t figured it out by the time he got back, then he’d explain it. Talk about incentive.
What follows this point are topics I don’t understand yet – but it includes working with graphics and ‘objects’, followed by many more types of input and output, and even being guided through building more games.
Topics learned in the first semester, summarized from the book, include:
- learning the fundanmentals of writing your own computer programs
- writing both console-based and graphical programs using the Java programming language
- understand the building blocks for other applications that you use every day
- complete a hands-on programming project at the end of each chapter
- projects increase in complexity as you learn more
Homeschool Progamming – TeenCoder Android Programming
The second semester, Android Programming, starts similarly to the Java, with an introduction to the history and current applications that Android is used for. Keep in mind, the Java course should be complete and fully understood before beginning to learn Android.
An extensive list of the Android Programming topics covered is described in the text. (I feel it’s better to give you accurate information direct from the source, rather than mis-explain.) These include:
Android Development Tools – Using the Android Development Tools with Eclipse, Installing the Android Development Kit
XML Documents – Understanding the importance of XML files in Android, Creating and modifying well-formed XML documents
Activities – Creating and modifying new Activities (screens), Switching between Activities with “Intents”
Intents – How to start new Activities and programs with Intents, Registering your Activities to receive incoming Intents
Basic Screen Design – Handling different screen sizes and dimensions, Using XML to define your screen layouts
GUI Controls – Understanding the GUI controls available to Android, Learning how to use controls to retrieve user input
Android File System – Writing settings to Shared Preferences storage, Reading and writing files to device memory, Reading and writing file to SD cards
Android Debugging – How to find and solve common coding problems, Viewing the log files to find errors
Image Handling – Displaying images, Displaying image galleries, Using launcher icons, backgrounds, and button images
Dialogs – Anonymous inner classes, Using Alert, Progress, and Date and Time dialogs
Menus and Notifications – Creating basic menus for your applications, Creating context menus for specific screen items, Showing simple messages and notifications
Network Connections – Adding Internet and network support to applications, Downloading information from the Internet, Sending SMS Messages
App Widgets – Understanding the purpose of App Widgets, Creating your own Home Screen App Widget
Location Services – Adding GPS location information to your application, Finding locations by latitude/longitude, address or map location
Like all Homeschool Programming courses to date, an optional DVD accompanyment is available. Though it’s not sufficient to teach the course without the text, it does provide additional approaches to each lesson that may be especially helpful for audio-visual learners.
Pricing for TeenCoder Java Series
- $75.00 TeenCoder: Java Programming (Course Only)
- $90.00 TeenCoder: Java Programming (Course & Videos)
- $20.00 TeenCoder: Java Programming (Video Only)
- $75.00 TeenCoder: Android Programming (Course Only)
- $90.00 TeenCoder: Android Programming (Course & Video)
- $20.00 TeenCoder: Android Programming (Video Only)
- $130.00 TeenCoder: Java Year Pack (Courses Only)
- $155.00 TeenCoder: Java Year Pack (Courses & Videos)
- $30.00 TeenCoder: Java Year Pack (Videos Only)
All of Homeschool Programming’s courses were used by Schoolhouse Crew members in this go-round;
Designed for 6th-8th graders, the KidCoder Visual Basic Series uses the free Microsoft Visual Basic 2010 Express development environment. This environment is fun and easy-to-learn, since it uses a drag-and-drop interface for creating objects on the screen. Visual Basic is commonly used in business and academic settings, and skills learned in this course will help prepare your child for more advanced topics as they learn logical thinking while evaluating expressions and making decisions.
In the first semester, Windows Programming, this self-study course encourages fundamental programming skills, while during the second semester, Game Programming, students will learn to write computer games.
The KidCoder Web Series is new; Beginning Web Design is available, while Advanced Web Design is scheduled for release Fall 2013. Created for 4th-12th grades, this series is for students who want a step-by-step introduction to web design with HTML. Students who are interested in web design should begin with an understanding of HTML before
For the TeenCoder C# Series, students will learn C# programming skills and then move into the creation of graphical conputer games in C#. This series uses the freely available Visual C# 2010 Express development environment. C# is Microsoft’s current generation computer language, and the Microsoft Visual Studio development environment is an industry standard that C# programming job applicants should aready know when they begin their career.
Pricing for all courses is structured similarly, all allowing individual purchase of semesters, books, and DVDs, but the greatest savings will be with the combined year-pack for each series.
Our thoughts on Homeschool Programming
Homeschool Programming has been a wonderful resource for us. Michael had completed both the KidCoder Visual Basic and TeenCoder C# Series in short order when we purchased them previously, and was given the confidence with what he had learned that he has expanded his learning on his own. Homeschool Programming’s courses really allowed him to develop skills that are immediately applicable to what he would like to be doing in the future.
The instruction is sufficiently detailed that students don’t get lost, but encourages additional learning and progress beyond the courses’ confines. It’s allowed me to provide him with homeschool instruction in a topic I know very little about, and for him to have a high level of success.
I’m greatly appreciating the opportunity for both of us to learn Java and Android through Homeschool Programming, and I look forward to seeing their future options. The KidCoder Web Design Series is on our must-purchase list in the imminent future. We very much recommend any and all courses that Homeschool Programming offers, without reservation. They’re a household favorite!