"In the world ye shall have tribulation: but be of good cheer; I have overcome the world." –John 16:33

San Pedro Garza Garcia

Month: April 2013 Page 1 of 3

More Kelly art–another watercolor of a friend

Guess who, again.
Ruth Pollard

More Kelly art–a watercolor of a friend

Guess who.
Glen Coleman

Visiting graduate schools

The graduate school visit emails are trickling in. Part of the reason Kelly and Christian are going to California this summer is to visit possible graduate schools. Christian has interviews with professors in the UCLA and Stanford Electrical and Computer Engineering departments. Kelly has an interview with a Statistics professor at UC Davis. These are not yet interviews to determine whether or not he will attend one of those schools. Rather it is an introductory visit to see whether there might be a good match there if they apply. Kelly will see two additional schools, but does not have the visits set up yet.

Statistics about science

I loved this post from Telic Thought.  It says a lot about the current state of science and academia in the world.  It is all footnoted so you can get to the references from which the statistics were taken.  Read the whole thing, but here are a few to whet your appetite:

89%: Percentage of cancer research “landmark papers” from “top journals” which could not be replicated (47 out of 53).1

417: Number of citations for the 47 unreproducible papers.1

36%: Percentage of scientists who admit engaging in questionable research practices or fraud.2

How to teach computer programming to kids (Part 9) A suggested curriculum

Day 617 of 1000

This is the ninth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]

This post describes how I think I would teach an eleven year old kid how to program.  I explained the many things we did wrong and the few things we did right in teaching our kids how to program when they were young In the previous posts in this series.  We really did not do so badly with our son.  He is a good programmer with a solid knowledge of the fundamentals of object oriented programming in C#, C/C++, and Python.  His college level Introduction to Java class was a trivial exercise for him.  We did horribly with our daughter.  So much so that she struggled mightily with the same Introduction to Java class at which our son had excelled.

We have a good (certainly not perfect, but good) track record teaching our kids things like reading, math, art, typing, and all kinds of other stuff, so I have tried to think about what I did wrong and how I might do it if I had it to do over.  I think the main reason we did not do so well is that we did not see programming as an essential skill.  We were wrong.  All STEM majors need to know how to program and that knowledge is a huge advantage to kids who enter a STEM degree in the University.

What language should you chose?

So, what could we have done to teach our kids programming at an early age?  There are a lot of small concepts a new programmer has to learn before any attempt is possible to learn the big picture programming ideas, particularly object oriented programming.  There are lots of books that explain these details quite well.  A language that handles some of the minutiae for the new programmer so they can learn these small concepts one at a time is a big advantage.  Languages like C#, Python, and Java all qualify.  C/C++ does not for reasons #3 and #4. There are good reasons for selecting one of these languages:

  1. These are serious languages for serious programmers that can perform anything from small embedded applications for single board computers to game programs running on personal computers to full-blown, big data, internet enabled monster programs running on “big iron”.
  2. They have large sets of libraries that the new programmer can use without a lot of knowledge about what is going on under the hood.
  3. Garbage collection (a technical detail we don’t need to go into here) is managed by the language so the new programmer can concentrate on learning the small concepts without the program breaking for mystifying reasons.
  4. There are very good Integrated Development Environments (IDE) for all of these options.  An IDE is a program that is used to write programs.  It has an editor, a compiler, a linker–everything need to write, debug, and run a program in an easy to use environment that usually has a hint systems (intelli-sense) for computer commands in case the programmer forgets what he should type next.
  5. There is a TON of documentation, tutorials, examples, and books on the internet and in print for all these languages.

We started in C# because it meets all the criteria above, I had good knowledge of the language, and we found what looked like a good tutorial book on C# that featured something of interest to my son.  That was a great reason to go that direction at the time.  I think if I had to do it over, I might start with Python.  There is no particular reason that Python would be better than C# or Java, but I am aware of a number of cool, hobby projects written in Python and I would like to get a little deeper knowledge of Python myself.

What book should you chose?

Programming the Raspberry Pi, Getting Started with PythonThese days, it is possible to get all the information required to program online.  I have learned languages that way (Python and R).  Nevertheless, for a sit down class with an 11 or 12 year old kid, it is nice to have a book to follow.  In addition to the book we used to get started (Beginning C# Programming),  I have been looking at a book with great reviews titled Programming the Raspberry Pi, Getting Started with Python.  The thing that is great about this book is that, if you already have a USB cable and a reasonably capable PC, you can be complete set up with an embedded computer to write robotic, internet, game, and other kinds of programming for less than $100.  Here is the blurb from Amazon for the book, a Rasberry Pi embedded computer, and the Raspberry Pi user manual:

Rasberry Pi + Manual + Python book

The reason both the books are good is that they start from ground zero, they feature good starting languages as defined above, and they have project goals that are likely to interest kids of the age of 11 or 12.  The Raspberry Pi is particularly good because it features a chunk of hardware to which the kids can hook up other stuff and/or connect to the internet.  These are just examples, but the concepts behind both these books are great.

How should I do the teaching?

This is an especially good question if you, yourself know nothing about programming.  The beauty of the above setup is that the books walk you through the set up of the computer, the download of the language and IDE, etc.  They give button push by button push instructions.  If you do not know anything about programming, this will teach you.  As for your kid, it has been my experience that at 11 or 12, kids generally love to do stuff one-on-one with their parents, even if they sometimes do not admit it.  The one-on-one approach is the right way to go.  Here were my rules for a structured program like this:

  • Go by the book.  You might think you have a better idea.  You might ACTUALLY have a better idea, but if you stick to the book you will be assured you and your kid have all the materials to go on to the next chapter.
  • Sit down with your kid for 20-30 minutes per day, at least four days per week.  Be present with him the whole time, but quit after the alloted time so you want to come back for more.
  • Let him do ALL the reading.  Have him read every word, aloud.  Talk about it when you or he don’t get it.  Look up explanations on the Internet when needed.
  • Sit on your hands.  Let your kid hold the book and turn the pages.  Let you kid plug in the computer. Let your kid download and install the programs and software.  Let your kid do ALL the typing.

That is all I have.  I wish I would have done it that way.

Lorena’s grandmother, liqueur and hand-rolled cigarettes

Lorena's maternal grandmother LeonorEveryone seems to have something fun and interesting in their family.  I just learned the most interesting tidbit about Lorena’s greatly loved grandmother.  Before she became a serious Christian, she used to get together with all her comadres in the neighborhood to drink liqueur, smoke their own hand-rolled cigarettes, and gossip.  I was amazed.  I did not tell Lorena about my mother’s once a year predilection for Swisher Sweet cigars.

Sonlight Homeschool Curricula (Part 2): Why we thought it would be good for us before we knew much about it

Day 616 of 1000

This is the second in a series of articles about why we used Sonlight Curricula in our homeschool.  Here is a page that holds an introduction to the series and links to the other posts in the series.  We bought core packages for what would be third through tenth grades in a traditional school.  Kelly used the program from fifth through tenth grade.  Christian used the program from third through eighth grade.  This series mostly describes what we did for all the subject areas except math, music, and art.  I have already written pretty extensively on this blog about what we did for math and plan to do a future series on our art art program.  We bought most, but not all of our core materials from Sonlight and followed their curriculum guides with a fair amount of rigor.  Like most other homeschoolers, we deviated in minor ways where we saw fit.

[Previous post]
[Next post]

There were six main reasons we chose Sonlight rather than the many other available homeschool curricula.  They were the following:

  • The quality and number of the books
  • The coordinated curricula for Literature and History
  • The choice of Math options
  • The very helpful and comprehensize instructor guides
  • Sonlight’s very helpful web page on Reasons NOT to Buy Sonlight
  • The price

This post is about why we chose Sonlight before we knew much about it other than what we read on forums and Sonlight’s on web pages.  We will address how we felt about the curricula after we had used it for awhile in later posts, so will confine the discussion in this post to the six items we felt justified the original purchase of two sets of Sonlight for third and fifth grade.  You will notice that I have left some pretty important elements of a well-rounded curricula out of my list, things like science, art, and music.  That will become more clear in future posts on science and the arts.

The Witch of Blackbird PondBooks and reading were important elements of our family life from the time our children were old enough to understand.  We easily spent an hour a day reading books such as the Homer Price, Henry Reed, and Laura Ingalls Wilder series.  I do not think that is uncommon among families who value education (not just homeschool families). The fact that Sonlight’s curricula were so strongly based in the reading of great literature and history was what made their programs so attractive to us.  We recognized a lot of the books in the curriculum lists, but there were a lot we did not recognize.  Some of the ones we did not recognize had great reviews.

This reason was entirely vindicated with one of the earliest books we read aloud together, The Witch of Blackbird Pond.  For the most part, there were enough books with each program that the kids had plenty to fulfill their reading addiction.  We added a book or two not in the program on a fairly regular basis, but the Sonlight books formed the core of our reading material.  We had a few quibbles after that, but on the whole, the quality and quantity of the literature books remained a constant during all six years we used Sonlight curricula with the exception of the abysmal Joy Hakim History series,

We loved that the Literature and History were coordinated.  It just made sense.  The first history book read aloud together was The Landmark History of the American People Volume I.  It was an amazing history book, particularly well suited for the age of the children for which it was selected.  We could hardly wait to get to Volume II.  We did not know the History and Literature fit so well together at the time we bought the program the first time, but we quickly saw the excellent way those programs had been put together for the early years.  Of course that fell apart when we got to the Joy Hakim series.

Math is also a big deal for our family.  Before we looked at the Sonlight curricula, we investigated math curricula.  We decided we liked Singapore Math for third and fifth grades.  Sonlight carried Singapore and they also carried Saxon Math, our second choice.  Sonlight chose to provide other math programs rather than develop their own.  I think that was a wise decision.  Their strength seems to be in Reading, Writing, History, and Literature.  There are a lot of good math programs and Sonlight provides a choice.  I checked around for pricing and we ended up buying our math curricula from Sonlight because they had great pricing.  I have written about math curricula previously, but plan to do an additional series on our entire math trajectory as our kids both ended up in Math oriented degrees in college.

When we started back into homeschool with children in third and fifth grades, we wanted to assure we covered all the basic.   We did not want our children to get behind their government and private school peers.  We quickly found that was the last thing we needed to worry about.  Still, the fact that Sonlight had extensive, easy to follow, day-by-day, study guides that gave us confidence we were covering everything they needed for a well-rounded, academically acceptable education was a huge help in allaying these fears.  As we got more experience over the years, we changed things around a lot to meet the needs of our kids, but we always started with the instructor guides as a base around which to form our daily study plans.

How we taught our kids exactly why we believe what we believe was an important consideration in choosing curricula.  Sonlight has a page on their site titled Reason’s NOT to Buy Sonlight that addresses their philosophy in this area quite well.  Our entire school program was informed by our Christianity.  That being said, we wanted our children to know as much as possible about different types of religions, non-religion, and even different types of Christianity.  I think Sonlight has tried to strike a balance between their obvious Christian beliefs and the need to introduce children to the non-Christian reality of much of the world.  In addition, some of the values represented in the books in the program written from a Christian worldview, did not really match too closely with our view of Christianity.  Nevertheless, Sonlight was very upfront about this and, I believe very thoughtful in how they had put their program together.  There were no suprises and we wanted our children to learn about differing Christian worldviews as well as non-Christian worldviews.  Sonlight did a good job of presenting them all.

Our final issue was the cost of the program.  When we decided to homeschool, we decided to, within our means, spend whatever it took to educate our children.  Sonlight was a very big purchase decision for us.  It was not as much as a car or a house, but, in terms of our means at the time, it was very expensive.  In terms of the value of the packages with respect to other programs and the level of education our children received, we believe it was absolutely stellar.  We do not think we could have gotten a better value anywhere else, especially considering how much planning time is required when a program does not have such good planning guides.  That is why we have recommended it so highly inspite of a some minor quibbles and one or two major quibbles.

El Cerro de la Silla, Monterrey, Nuevo Leon, Mexico

El Cerro de La Silla, Monterrey, Nuevo Leon, MexicoI struggled to find a good header for the blog.  As some of you might have noticed, I put up severally cheesy composite images for which I was justifiably berated.  I could not think what to put, but Lorena rescued me again.  She suggested El Cerro de la Silla, the most distinctive landmark in the beautiful city of Lorena’s birth, Monterrey, Nuevo Leon Mexico.  In the header (and the picture with this post), Lorena’s parents live very close to bottom right corner of the photo with the mountain rising behind them.  Cerro really means “hill”.  The literal translation for El Cerro de la Silla is The Hill of the Saddle or Saddle Hill.  If that “hill” were in North Carolina it would definitely be called Saddle Mountain.  It’s height is 5,971 feet.  For now, it is just the right choice for a blog header.

Humanities and Social Science degrees should require more math

Day 615 of 1000

Kelly’s enthusiasm for all things statistical and a discussion with her yesterday inspired me to look back through a few articles from The Numbers Guy at the Wall Street Journal.  I found a great article that describes why I think the higher education system in America generally fails many Humanities and Social Science students.  Most of them do not have the skills to properly evaluate many conclusions based on statistics and mathematics.  Of course, there are significant exceptions.  Rodney Stark, about whom I have written in the past, is also a numbers guy1.  Stark’s research and conclusions are driven by numbers.  His research does not lead to a priori conclusions based on the current Zeitgiest.  Rather, he lets number tell their own story, records the results, and makes conclusions based on those results.  It does not hurt that he writes about really interesting stuff and has an accessible and engaging writing style.

I recommend you read the whole article, but here is a quote that describes the problem:

In the latest study, Kimmo Eriksson, a mathematician and researcher of social psychology at Sweden’s Mälardalen University, chose two abstracts from papers published in research journals, one in evolutionary anthropology and one in sociology. He gave them to 200 people to rate for quality—with one twist. At random, one of the two abstracts received an additional sentence, the one above with the math equation, which he pulled from an unrelated paper in psychology. The study’s 200 participants all had master’s or doctoral degrees. Those with degrees in math, science or technology rated the abstract with the tacked-on sentence as slightly lower-quality than the other. But participants with degrees in humanities, social science or other fields preferred the one with the bogus math, with some rating it much more highly on a scale of 0 to 100.

One of the features of a “Liberal education” classically defined is that it values a wide breadth of knowledge.  Early on, that meant that mathematicians and physicists were required to have as deep a knowledge of literature and history as possible while historians and literature students were required to have as deep a knowledge of mathematics and physics as possible.  It seems like this is not valued as much as it was in the pass both the hard and soft sciences have suffered for it.  If a Humanities graduate or Social Scientist believes a paper is better solely because it has a cryptic looking equation in it, even if the equation is bogus, that idea certainly seems to be vindicated.

1.  Full disclosure:  I read every Rodney Stark book I can get my hands on and am pretty much a Rodney Stark fanboy.

How to teach computer programming to kids (Part 8) CSC 116 Introduction to Computing – Java at NCSU

Day 614 of 1000

This is the eight in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

Kelly and Christian both took the “Programming 101” class at North Carolina State University this semester for science majors.  We all agreed that it was badly done.  Part of the problem was with the disparity in knowledge of the students coming into the class, but a lot of it had to do with the structure and operating rules of the class.  This seems to be a typical problem for many, if not most, introductory college programming classes.  Here is the course description:

CSC 116 Introduction to Computing – Java UNITS: 3 – Offered in Fall Spring Summer
Corequisite: (E115 or PAMS 100) and (MA 121 or MA 131 or MA 141)
An introductory course in computing in Java. Emphasis on algorithm development and problem solving. Careful and methodical development of Java applications and applets from specifications; documentation and style; appropriate use of control structures; classes and methods; data types and data abstraction; object-oriented programming and design; graphical user interface design.

First, let’s talk about the disparity of knowledge of the kids entering the class.  Kelly and Christian are a classic example.  Kelly, as is described in a previous post in this series, had virtually no programming experience before she took the class.  The University required her to take a one-hour course on how to log into a University computer and use a Linux environment, how to make a PowerPoint presentation, and a bunch of politically correct goofiness.  In other words, she started the Java class with zero programming knowledge.  Christian, on the other hand, already had more knowledge about programming in C/C++, C#, Python and PHP than would be taught in the course.  So, while Christian was bored out of his gourd, Kelly struggled to learn about data types, loops, if-else statements, classes and objects, and all the rudimentary building blocks needed to program.

Meanwhile, the operating rules of the class prevented her from getting help from her brother, Google, me, or anyone who had deep knowledge of these programming topics other than the course instructor and the less than capable TA’s for the class.  Whose bonehead idea was it to make those operating rules?  I get that the student who takes the class needs to understand the material on their own and it is important to do their own work, but it is ridiculous to forbid the use of tools and resources that will allow the student to learn the material more thoroughly.  I am sure many students ignored these rules, but Kelly worked mightly to do the class according to the operating rules.  Those rules were a great hinderance to the learning process for Kelly.  For Christian, it did not matter, he already knew everything.

There has to be a way to do some kind of triage before assigning kids to a class like this.  There has to be a better way of teach the beginning programmers.  I will talk about what we would do to prepare our kids for these classes if we had to do it over, but I do not know what to do about the college classes themselves.  I am not sure what to do about the college level introductory courses themselves.  What I do know is that I have hired lots of programmers during my career and I rarely, if ever, hire programmers that have Computer Science degrees.  Partly that is because of the type of programming we do in my field (robotics and machine vision), because it seems like the CS majors are best suited for database, gui, and internet programming.  Partly, it is because I have seen too much of the kind of nonsense like the course desribed here that goes for college level programming instruction.

How to blog about your kids

I have a friend who has two kids, a toddler and a three year old.  He and his wife derive great joy and exert great effort in raising their children.  They write a blog that is mostly for friends and family with pictures and stories of what their kids do several days per week.  It is great because they are able to keep an ongoing record of their children.  As each year passes, they turn the blog postings for that year into a book.  Family and friends in distant places can stay in touch with the family’s goings on and feel a connection that would not be available if the blog did not exist.  We think that is great.  That is a reason onto itself to maintain a family blog.

There are some other good reasons to create a different kind of blog about one’s kids.  There are lots of ways to raise kids, some better than others.  Parents really want to know what works and what does not.  My friend and I went to lunch and for a cup of coffee today.  We talked about a lot of stuff, but we mostly talked about kids, parenting, and blogging.  My friend and his wife work hard to find good ways to raise their children.  They do it differently than us, they are a bilingual family that comes from different places than us, they took different career paths than us, but we have a lot in common with respect to the desire and level of effort to raise children well.

Fewer people try to explain the thought they give to doing things in a certain way along with what worked, what failed, and what was a mixed success.  That kind of blog is educational.  Especially if the focus is on the mechanics and the descriptions of the success and failures are real and honest.  Every family has a different set of issues with different worldviews and cultures.  Each family has different levels of success with each child based on circumstance, abilities, personalities, and a plethora of other influences.  It is great to read about the mechanics and analysis of such things, especially from thinking people.  I hope my friends decide to do a second blog with that separate focus.

How to teach computer programming to kids (Part 7) Statistical programming in R and SAS

Day 613 of 1000

This is the seventh in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

A Beginner's Guide to RKelly did not start learning to program until she was already in college.  The very first pass at this was when our friend Troy helped her in his work at the Biological and Agricultural Engineering laboratory at North Carolina State University.  We got her a book on R programming.  She spent about three weeks to work her way through four or five chapters of the book before she spent about three weeks in the lab with Troy.  I did not sit with Kelly at all during that process and even though she learned a lot, she felt pretty badly that she contributed so little.  That was my first clue that I had failed terribly by not teaching Kelly to program.

Nevertheless, there was a lot of programming good that came out of Kelly’s six or so weeks in the R Language.  Kelly is a Senior in Statistics at NCSU, so it was a very good thing that R was her first programming language.  Most programmers start with variables that hold a single piece of data and build bigger structures to hold sets of data.  Statistical languages start with whole data sets that allow the programmer to calculate measures of the data set and present the data in user friendly formats.  There is a big difference in paradigms between statistical programming and the more traditional language like C/C++/C#, Java, and Python.

This semester Kelly took her first two programming classes:  SAS (statistical) programming and Java.  The difference between her preparedness for the two classes was stark.  She was way out in front of everyone in her statistical programming class because she had learned to think of programming in terms of how to manipulate entire data sets where looping is often internal.  In Java, not only did she have to learn how to think of data points rather than data sets, she also needed to create loops to work through all the points in the sets.  Her meager six weeks of R experience paid huge dividends in her statistics class and she excelled there.  It was a different story with the Java class.

Kelly struggled and needed to spend many more hours during the first part of semester just to stay even in Java.  By the middle of the semester, she had everything under control, but she did not start “getting” the material until the last few weeks of the semester.  She kept her grade up until that light went on with memorization and hard work.  It was frustrating to her and so unnecessary.  If we would have done the same thing for Java as we had done for R by giving her some training before she got to the class, her experience would have been completely different.  She gets the material now, but there could have been a good deal more joy and a deeper understanding of Java had I given her even a minimal amount of training–six weeks would have done it.

Weight a minute

I have had so many false starts on my weight loss battle, that I almost hate to bring this up, but I am down 13 pounds.  I have 29 pounds to go.  Feel free to hold my feet to the fire.

How to teach computer programming to kids (Part 6) C++, Python, and browsing the web with a dumb phone

Day 612 of 1000

This is the sixth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

C++ Primer PlusPart four of this series describes how Christian studied C# during the first half of the homeschool year when he was 11. Part five describes several computer software projects he performed during the second half of that same year.  At that point, he had gotten to know quite a lot about the build process (compiling and linking).  He could do some procedural programming in C# with a fairly top level understanding of object oriented programming.  He could program pretty well in PHP and use Drupal to build a good website.  He had modified a pretty sophisticated C program to run on a new platform.

All that he accomplished was great, but he had such a strong interest in the topic, it was pretty shameful I had let him do virtually all of this on his own with almost no tutoring from me.  So the next year, when he was 12, I decided I would help him learn C++ so that he could learn more about pointers and garbage collection as well as get a deeper understanding of object oriented programming.  We did something similar with C++ as what we did with C#.  Christian began to work his way through the book for about fifteen or twenty minutes per day.

We set up Christian’s computer with the Unbuntu Linux, the Qt libraries, and Qt Creator as an IDE.  I should him how to work in that environment and he got started.  I sat down with him more than previously, but more of my time explaining concepts and performing code reviews would have helped the process a great deal.  After two or three months, we decided he needed a project.  He decided he wanted to be able to be able to send commands from his SMS phone.  It was not a smart phone, just a phone that could make calls and send and receive SMS and MMS messages.

He created a gmail account just to pass messages between his cell phone and his Linux computer running as a server at home.  When he wanted to do something on his computer from his phone, he would send an SMS message to the gmail account.  The Linux computer continually looked for message on the gmail account.  When it received a message, it interpreted it, ran the command on the Linux computer and sent the message back to the phone via SMS message.  He got his program up and running fairly well about half way through the school year.  About then, he was getting a little bored because he had finished this project and moved further up the curve with respect to object oriented programming and the lower level aspects of C++ programming.  He was not great at it, but was no longer a beginner.

I knew we needed to do something to maintain his interest because we had started to bog down.  He had the idea that he would like to figure out a way to use his SMS/MMS phone (not a smart phone) to browse the internet.  He found some Python libraries that would make this task easier, so he asked if he could switch to Python for awhile.  I thought that was a great idea.  Again, the thing that keeps him engaged is a project he really wants to make work.  Python is an object oriented language that would serve to continue solidification of his object oreinted programming skills.  At this point, for reasons mostly having to do with work and the kids other homeschool subject matter, I disengaged from my teaching efforts with respect to program.

Over the rest of the year, Christian was able to get a fairly amazing program up and running on his Linux server.  It did the following:

  • An SMS/MMS phone sends an SMS message that holds a URL for a specific web page to a specific gmail account.
  • Christian’s Python program running on a Linux server (at home) continually checks for emails arriving at the specific gmail account.
  • If an arriving message holds the URL of a web page, the following sequence is performed by the Python program:
    •  A web browser is opened to the web page specified by the URL.
    • A screenshot of the web page is captured and saved as a jpeg image.
    • Numbers for the links are added to the image.
    • The image is transmitted back to the calling phone as an MMS message.
  • When the phone receives the image of the web page back, the user can send back the number of a link on the page and the Linux program will transmit that web page back to the phone as an image.
  • If the user selects an input field by selecting its number from the web page image and adds some text after the number, the phone will enter the input text into the input field.  That is how he could enter the username and password to check his email accounts and/or enter restricted web sites.

Again, the first part of the year was a little bit tedious for Christian until he got to the point where he could do a project that interested him.  He came way up the programming curve specifically because of that.  He was not a great programmer by the end of the year, but he was pretty good for a 12 year old and had two great little programs and some cool stuff to show his friends to show for it.

Why not skip high school? (Addendum 1) Starting college by age 12 (not us)

Day 611 of 1000

This is an addendum in a series of posts on the benefits of skipping high school and going straight to college. The introductory post and index to all the other posts in the series is here. You can see their undergraduate results and post-graduate (PhD) chase here. I try to keep the results updated as they occur.

[Previous post in series]

Shortly after I finished writing this series of posts, articles started to show up in print media and on the internet about the Hardings, a family of 12 (10 children) that homeschooled and graduated their kids into college at age 12.  You can see an example of one of these articles here.  It is an awesome success story.  You can see the family’s website here. They have a homeschool framework they follow that allows them to succeed early at their own pace, go really fast, and own the material well enough to succeed at higher levels.

One of the things I really like about the mother of the family, Mona Lisa Harding, is that she clearly states her kids are not geniuses.  Sometimes when we say things like that about our kids, people think we are fishing for compliments.  We are not.  We want to think the best of our children, but we have no illusions about their level of intelligence.  After all, we taught them.  I understand exactly what Mrs. Harding is saying.  Normal, non-genius kids can handle school at this pace.  But they have to work hard.  The good part is they learn to love to work hard after they have had some success.  Younger kids raise their expectation when they see their older siblings benefit from performing at a high level.

One of the great strengths of homeschooling is that just about everyone within the community acknowledges there is more than one way to do it well.  The way the Hardings do it is very successful.  I am sure we would learn a lot from their methods.  I doubt whether we would have made wholesale changes from the way we did it ourselves.  It seems like the Hardings were able to provide good worldview education along with the academics.  Our kids might have been able to handle the move to community college by age 12, but even if we would have thought to put them there at the time, I do not think we would have done it.

The two years before they started college helped them academically with CLEP testing and the like, but the benefit that was derived from two additional years of hard work on worldview issues was invaluable.  They knew what we believed all along, but they acquired a much deeper understanding of why we believe it in those last two years before college.  That is just the way our family worked.  The Hardings did some things differently.  It surely looks like they have served their family well.

Mona Lisa Harding has written an eBook about the way they do things.  I have not read it.  I encourage others who are interested in this topic to read a few of the articles on line (Google:  Harding College by 12).  If you like what you find, her book might be worth a read.

Mailbag: The Whetham clan and honors for Christian

We received two interesting pieces of mail today.  First, an invite to a family reunion for people who descend from my father’s maternal grandparents.  It is in June in Oregon and I am going to try to be there with Grandpa Milo and Grandma Sarah.  In the picture, I think my grandmother is the one in the back on the right side of the picture.

Whetham family reunion - June 2013

The other piece of mail was Christian’s official invitation to the Math Honors program.

Christian's Math Honor invitation NCSU

Kelly’s comic strip, this blog and blog monetization

Day 610 of 1000

Christian sent one of Kelly’s comics to the NCSU student newspaper a couple of days ago, the editor loved it, and put it into today’s paper.  She is kicking herself for not having submitted more.  We are at the end of the school year, so there is really not much chance to get anything else published this year.  She plans to build up a stockpile of comics to submit as soon as the school year begins next year. When we talked about it, she promised to let me publish her work here, too.  I have tried to get her to draw consistently and have put stuff on the blog when she produced it, but life is so busy during college, she has not made it a priority.  I think all that has changed now and I think it will make this blog more interesting.

I have thought a lot about what I want to do with this blog and how to make it grow lately.  Publication of Kelly’s comic strips has been a big part of that.  In addition, I talked about the blog a bunch with my buddy Eric from Indiana when he came to visit us a few weeks back with a couple of his kids.  We spent a good amount of time talking about blogging and blog monetization.  I have given some thought to whether I want to do that with Google AdSense, an Amazon Affiliate program, or some other mechanism.  We talked about things I might be able to sell on my blog.  Eric showed me several websites on the mechanics of blog monetization.  The general consensus from all of them is that content drives blog traffic and sales.  Eric also showed me how to determine whether a keyword search on Google was of interest to anyone with the Keyword Tool.

It all sounds pretty interesting and fun.  I decided I would try to create content that was both interesting to write (to keep me interested and motivated) and interesting enough to read that more people would come to this blog.  Here were a few of my ideas:

  • Create more series about how we approach education.  Skipping high school and teaching kids to program are the first two.  I have some ideas about some more.
  • Convince Kelly to provide me with more comic strips.
  • Add a weekend series of on-line music videos we like.
  • Post a lot more often.

In the final analysis, I think just getting in the habit of writing more often will help a lot.  I have given more thought to the blog and posted more the last several months than ever.  My readership has taken a fairly dramatic jump, both in quantity and the amount of time spent on the site.  I believe dedication to writing and thinking about interesting things to write will do more to improve both the quality of the blog and the readership than anything else.  I plan to give this a year or so to improve content and increase readership.  I am not sure I will ever monetize the site.  The reality is that this kind of writing gives me clarity that I would not have otherwise.  I will try to write about where the blog is going every now and then, for my own self as much as for anyone that reads this.

Kelly will be FAMOUS–she will be published tomorrow

Kelly's first "The Technician" comic stripRemember this comic strip that Kelly drew.  It has been accepted for publication in North Carolina State University’s student newspaper, The Technician.  She is going to be famous!

Good friends and siblings and aging parents

Day 609 of 1000

Grandpa Milo and Grandma Sarah at Curt and Rhonda's potluck

We live a long way from Grandpa Milo and Grandma Sarah.  Every day I have reason to be thankful for my three siblings who have done all the heavy lifting in getting them to where they need to go for the care that they need.  They are in a memory care home now home which was a big change.  Some people do not understand so well.  Memory care is different from other kinds of assisted living, but often necessary.  Dad and Mom are in a place close to all three of my siblings where Dad can work in the garden and still get around quite a bit.

I am also very thankful for friends.  My childhood friend, Curt and his wife Rhonda had a potluck after meeting last weekend and invited the folks over since that used to be their meeting.  They had a great time.  There are other friends who pick them up and take them places.  We appreciate it all a lot.  Hopefully, we will be out there a little closer as soon as our kids graduate from college in the spring of next year.

How to teach computer programming to kids (Part 5) Projects in C, GaugeCam, and PHP

Day 608 of 1000

This is the fifth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

Sandisk C200 MP3 Audio PlayerChristian only spent half the school year at age 11 learning to program C#.  We really only got him going on it as an afterthought because he was interested.  After he had established a foundation, he got a little bored, I think because he did not have a specific project in mind to practice his skill.  The reason he asked to switch from C# programming to was that we got him a little MP3 audio player.  When he gets a new “toy” like that, he really likes to investigate its capabilities.  He found that it was possible to convert many MP3 players from just audio playback devices into little, general use computers that could run games, videos, and other programs.

The conversion is made by replacing the firmware provided by the hardware vendor to perform audio playback with an open source program called Rockbox.  Rockbox is written in C and Assembly language.  The problem Christian wanted to solve was to make the fonts look better for Rockbox on the Sandisk C200, the one we bought him for his birthday.  To do that Christian did the following:

  • Downloaded the source code
  • Learned how to build and install the code with the gcc compiler
  • Found some anti-aliasing font code to improve the appearance of the fonts
  • Modified the code to run on the Sandisk C200

This new pass through the whole configure-make-install process was much less automated that with the Linux environment.  It moved him up the curve a little bit further and got him his first experience at modifying someone elses C/C++ code to work on a new platform.  The problem was that he finished that in just a couple of months and wanted to move on to a new project.  That is when he decided he needed to know how to build a professional quality website.

Rather than start with something already packaged like WordPress, Christian decided he would use one of the professional quality open source, content management frameworks and build a site from scratch.  After eliminating the idea of using WordPress, he decided on Drupal, so he had to learn PHP.  PHP is a scripting langauge that looks (speaking very roughly here) like HTML with embedded C functions.  It also requires a working knowledge of the MySQL database program.  He spent several months learning how to use the tools, then built himself a site.

In addition to learning how to program a website, he also learned how to work on the aesthetics of his site. I am notoriously bad at making this blog look good.  Christian browbeat me into adjusting the site’s appearance this very weekend.  He still thinks I did a pretty bad job, but he that it is better than it was before.  Part of that is due to the help he gave me on such things as using complementary colors and using the Color Scheme Designer website for help in their selection.

During this whole time, Christian volunteered his time at the GaugeCam project under Dr. Francois Birgand in the Biological and Agricultural Engineering Department at North Carolina State University.  While most of the GaugeCam spent their time gathering data, performing research, testing equipment, etc,, Christian was tasked with building a server to run the website, capture and process results, host a blog, and generally act as the systems administrator on the project for a couple of years.  We gave him an old computer on which he installed a LAMP stack, the operating system and programs to run the server.

The take-away from all this is that Christian stayed engaged in computing with the help of a variety of projects that had specific goals the he wanted to finish and make work.  He learned a lot along the way, a little at a time as it was required for his projects.  The gift of interesting projects with specific goals is one we believe is essential in the effort to learn how to program.  He had one additional project that fits into this category, but that is sufficiently interesting that it requires a post of its own.  Christian figured out how to browse the web on his “dumb” cell phone.  That will be the subject of the next post in this series.

Page 1 of 3

Powered by WordPress & Theme by Anders Norén