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

Month: April 2013 Page 2 of 3

Weekend music video (my new, new favorite)

I love the seriousness with which little Rowan sings Caitlin Rose’s Own Side Now. She is only five years old.

New blog look

There I fixed it.  I thought I did pretty well, but I am still getting abuse.  Everyone rejected the header with FOUR people in it.  Well, we will try this look for awhile.

Lorena’s five years at the YMCA

Lorena's five years at the Kraft YMCA
Our family belongs to the beautiful Kraft YMCA in Holly Springs.  We initially joined the YMCA as a resource for our homeschool physical education efforts, but it rapidly became a favorite destination for the whole family to swim, work out, and lounge by the pool.  Even when I had work, I could sit in the lobby, have a cup of (free) coffee, and work (great wifi) while everyone else got their exercise.  Now that the kids are at NCSU and have their PE classes there, Lorena is the main user of the Y.  The good thing is that there is a sister YMCA right by the NCSU campus where Lorena often gets a workout in while waiting for the kids.

My hat is off to Lorena, she has hammered through a hard aerobic workout (usually the elliptical machine) and weight lifting three or four days per week five years.  Longer than that, actually, but five years at this YMCA.  She has the t-shirt to prove it.  No wonder she looks so good.

The kids tell me I have a lousy looking blog during breakfast at IHOP

Day 607 of 1000

Kelly and Christian at IHOPWe went to a late breakfast at IHOP this morning/afternoon because everyone stayed up late to study going into dead week.  Christian and Kelly let me know that they like the content of this blog (even though the writing style is a little bit stodgy), but the site layout is really, really weak.  Actually, they said it was ugly.  The picture to the left is them looking smug after berating me so intensely and unjustly.  I will give it a little more thought, but with Lorena already complaining about the header image (notice the only one who does not have their head bowed and eyes closed), but it looks like I am in for a redesign.  Christian says it is inadequate to just find another header image or wordpress theme I like.  He says I have to read a little bit about how to avoid having such an ugly blog.

Police pull out all the stops to catch the Boston Marathon terrorist

About that manhunt in the Boston area, the public and private sectors are pulling out all the stops to assure our men in blue get what they need to finish the job.  This passage from an article in Boston.com says it all (H.T. Kelly):

Law enforcement asked [Dunkin’ Donuts] to keep some restaurants open in locked-down communities to provide hot coffee and food to police and other emergency workers, including in Watertown, the focus of the search for the bombing suspect. Dunkin’ is providing its products to them for free.

“At the direction of authorities, select Dunkin’ Donuts restaurants in the Boston area are open to take care of needs of law enforcement and first responders,” spokeswoman Lindsay Harrington explained via email. 

Up late preparing for Real Analysis and an EE Circuits class

Christian went to bed about two this morning after preparing for two very difficult, critically important mid-terms.  When Lorena got up this morning, she took the picture below of how he left his books when he finished studying.

Test prep for Real Analysis and EE Circuits mid-terms

Trying to study when “BIG” events are happening

Day 606 of 1000

All the big events surrounding the bombing at the Boston Marathon has three out of four of the Chapman household (Christian has somehow figured out how to stay focused) glued to news feeds on the computer.  Kelly has big tests, papers, and other assignments next week.  Every minute is precious at this point in the semester, but it is really hard not to listen to the police scanner as the police in Boston chase two bad actors with big weapons and a willingness to kill people–maybe even themselves.  While this was going on there was a big explosion that killed a bunch of people in Texas and a good sized earthquake in Japan.  It gets on to thinking about what is happening in this world.  I am off to lunch with my Russian buddy Igor.

How to teach computer programming to kids (Part 4) C#

Day 605 of 1000

This is the fourth 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]

Beginning C# Game ProgrammingAt the beginning of the school year, just before Christian turned 11, we decided it might be a good thing for Christian to learn a object-oriented, non-garbage collected language with a lot of libraries and support.  The three obvious choices were Python, C#, and Java.  If I had to do it again, I probably would hanve started Christian with Python or Java, but I was doing some work in C# on Windows for my job at the time and was playing with Mono (a cross-platform C# implementation).

I wanted Christian to work toward the ability to program something in which he was interested so when I found Beginning C# Game Programming, it seemed a good fit.  The first few chapters explained the concepts of object oriented programming and the C# programming language.  Visual Studio Express, Microsoft’s Integrated Development Environment (IDE) for learners and hobbyists had come out not too long before this, so I spent a couple of hours on a Saturday downloading the program with Christian and showing the fundamentals of how to write, build, and run a “Hello, World!” program.

Next, as part of Christian’s daily homeschool plan, I assigned him to work on C# for fifteen minutes per day.  I wish I could say I assigned the work as part of a rigorous, well-thought plan to teach Christian to program, but the reality is that I assigned it to him because he was excited about learning to program.  I was more concerned that he focus on Literature, Writing, Math, and Science than programming.  We spent a lot more time on those core materials than his programming efforts.

The reality is that all I really did in terms of “teaching” him anything about programming (and I use the word “teaching” very loosely here), is review where he said he was in the book, quiz him a little bit about the concepts in that part of the book, look at how his program ran, and give him a few hints about coding style.  He was on his own with this.  The amazing thing is that he came away with quite a good understanding of Classes, Objects, Encapsulation, Inheritance, Polymorphism, and the concepts of Object Oriented Programming, as well as a pretty good knowledge of how to make things happen in a C# program.

Christian followed this program for about five months to get through the first four or five of chapters of the book.  The reason we stopped and moved on to something else is because Christian’s excitement diminished after about four months.  After that, we stopped programming for awhile so Christian could work on other computing projects.  It was a great exercise that was just long enough to keep a 11 year old kid interested.  Again, if I had to do it over, I would do it differently and will explain how I might have done it in one or more later posts.

Wading through the last week before dead week

The entire family has been going to bed between one and three AM every morning for the last week or so, then getting up in time to get to NCSU by eight.  It is the week before dead week in what will probably be the toughest semester either of the kids have for their undergraduate career.  They both have two semesters left after this one.  Those semesters feature hard classes, but not so many hours as this semester.  It is all theoretical math and statistics class all the time.  We all try to take a nap when we have during the day, but it does not seem like we catch up much on our sleep.  Tonight is no different.  The sad part is there is no hope for a good rest on the weekend–there are tests scheduled during dead week for both of kids.

Messy learning and object oriented programming

Day 604 of 1000

Kelly and I have stayed up well past midnight several times this semester to work through assignments for her Java class.  In spite of the great joy it gives us to have our children at North Carolina State Universiy, I think they way they teach “Programming 101” is almost criminal.  They were told they should not Google anything or receive any outside help.  I understand the need for a student to “own” the material, but this is definitely not the way to do it.  Nevertheless, my support has been mostly limited to looking on and trying to give verbal descriptions of high level concepts.

Last night was very good as Kelly prepared for a five minute talk she has to give in class about concepts such as implicit vs explicit parameters, get/set methods, encapsulation, and other object oriented programming topics.  I remember when I learned all this and it was a fight.  Christian seems to be a very linear learner.  That is, he builds one concept on another until he achieves master.  Kelly and I are what I like to call messy learners.  We learn just enough about a subject to go on to the next step, but not enough to master it.  That means we are pretty much in a state of confusion until we go through enough of the “learn just enough” steps to get a coherent understanding of the subject as a whole.

Messy learning is really pretty painful, but when the light starts to come on, it is so wildly gratifying that one forget all the pain leading up to it.  After going through that kind of process for subjects like math, chemistry, and programming, it is not so bad starting a new learning project because the payoff is so great.  I think some of the problem associated with so many people hating math and programming in this day and age is that so many people give up before they get to the payoff a couple of times.

Our Kelly Chapman did NOT write this book!

Our Kelly Chapman did NOT write this book.I find a book titled Good Manners for a Little Princess. I just wanted people to know it was NOT OUR Kelly Chapman who wrote it, although I kind of wish she would have. Maybe if she READ the thing…

Carl’s Jr./Hardee’s Low Carb

Carl's Jr./Hardee's Low CarbI used to eat the Carl’s Jr./Hardee’s Low Carb hamburgers (no bun included) because I was on an Atkin’s diet.  Now I eat them because I really like them a lot.  It causes some problems, though.  Kelly told us she learned in her Agribusiness marketing class that ALL Carl’s Jr./Hardee’s marketing is aimed exclusively at men.  I got a real-world view of that today when Lorena and I ran down to get me a Low Carb burger.  She refused to eat anything from Carl’s Jr./Hardee’s.  Instead, we drove through Wendy’s first to get some food more fitting for a female after which we got my Low Carb burger than sat and ate together in the car.

Visiting potential graduate schools

Day 603 of 1000

We have two kids about to finish their Junior years at North Carolina State University.  Both of them want to go to graduate school, but they have very different goals.  Christian, the Applied Math major, wants to go to a tier one University to get a PhD in Control Systems with the idea that he will work as a researcher in industry when he gets out.  Kelly, the Statistics major, wants to get a one or two year Masters degree at a school known for its close association with industry so she can get a good job and start her “real” life.  This summer, both kids will travel to a number of universities on the west coast to talk to professors before for they start applying.

It has always seemed that things work better in both business and school when people have a personal connection with each other.  I have two good friends from Russian.  One, Stepan, has a PhD in Chemistry from Moscow State University and has done post-docs at University of Texas at Austin and University of Houston.  The other, Igor, has a PhD in Mathematical Physics from Moscow Institute of Physics and Technology and has worked as a scientist at universities in the US and Europe.  They have a very interesting outsiders view of post-graduate education in the United States.  They both highly recommended that the number one criteria in selecting a graduate program is to find the right professor to serve as your thesis adviser.  The best way to chose a good thesis adviser is to research and go meet as many of them as possible.

That makes a whole lot of sense to me.  People are a lot more important than than institutions.  So, based on that advise, the kids have started doing research and writing introduction letters to professors at a number of universities they think they might like to attend.  The plan is to talk face-to-face with as many professors as possible to increase the chance they will be accepted into a good school and to be able to make an informed decision about which program is best for them.  I will write more about the process as we move through it.

How to teach computer programming to kids (Part 3) Dillo (Compiling and Linking)

Day 602 of 1000

This is the third 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]

In the previous post in this series I explained how Christian got his arms around the software build process using the configure, make, make install process.  A good example of how he got pushed through this learning process occurred on a trip we took to Monterrey, Mexico to visit the kid’s Grandparents when Christian was ten.  The only computer we had to take on the trip was a Dell 1300 that did not have too much power nor too much memory.  The computer was dual-booted to both Windows and Linux.  Christian had a very lightweight browser for Linux called Dillo that did not use very many resources.  It ran in Linux, but not in Windows.  Because of the lack of resources, Christian wanted to be able to run Dillo on Windows, too.

Dillo was made to be used on Linux, so Christian started digging around and found some instructions on how to compile the program for Windows.  Here is a website that has instructions on how to do exactly that.  The problem was that, in 2005, the instructions were not so good.  The normal configure, make, make-install process did not work, so Christian had to look for resources on forums to figure out how to get Dillo to compile and link properly.  The support libraries were not quite right and there were tons of problems.  Christian spent most of the time in Mexico when he was not playing with his cousins trying to build Dillo for Windows.  The make files hold commands that perform the compiling and linking of the program.  He had to learn exactly how the compiling and linking worked to modify the make files properly.  He made some major breakthroughs and felt like he was almost there when we had to pack up and go home.

Even though he was not ultimately successful in making Dillo run, he says this set of events helped him learn more about compiling and linking than anything else he had done before or has done since.  He had to dive into the make files to change the order of the internal commands, learn the structure of folders that held support libraries, and generally just learn a lot of minutiae about the compiling and linking of a fairly large program.  The reason he could stick to it was that he had a goal that he wanted to accomplish.  I think that is a very important principle with respect to learning to program.  It is also the reason class-based learning (of programming in particular) can be very ineffective.

How to teach computer programming to kids (Part 2) Working with Linux – Compiling and Linking

Day 601 of 1000

This is the second 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]

We think it was about 2005 when Christian was ten years old or so that he really took an interest in how software works on a computer.  I am not talking about how to use software on a computer.  I am talking about how it actually works.  We had an old Dell Desktop (I forget the model) with Ubuntu Linux installed on it.  All Christian wanted to do at first was install some games and some drawing and rendering programs.  The way you did that with Ubuntu is through the use of a GUI front-end program called Synaptic that managed program installation, updating, deleting, etc. using a program tool called APT (Advanced Packaging Tool).

He got pretty good at that, but the computer was so limited in its capabilities and resources he would often get stuck.  This led him to the use of Google to find answers to his questions about how to get unstuck. The problem was that he often stayed stuck because there were no good answers on the internet, even after a thorough search.  The next step, then, was to ask experts on forums like Ubuntu Fourms.  The answers often came in the form of a command line (non-GUI) process where he had to open up a console to get a command prompt so he could follow the procedures he was given.  Little by little, he got proficient at using the Linux command line to run APT and other utilities, getting help from man pages, and learning Linux’s basic directory structure.

Next, he started to run into programs that were not set up for installation via APT, so he learned how to install programs from the source code.  The way it works is that a program’s source code, usually C/C++ is downloaded from the internet.  It is set up for the computer on which it will be installed and customize for the needs of the user by running a program called configure.  Then a program called make is run to compile and link the program which creates the binaries (the actual file(s) that will run the program).  Finally, make is run again, but with the word install after it so that the program will be moved to the correct folder in the Linux file system so that the user will know where and how to start the program and the program will know the location of other files it needs to run properly.

The set of steps listed in the previous paragraph–configure, make, make install–is the normal procedure used to take programs written in C/C++ as text files, turn them into programs that will run on a computer, put the files in the correct folder on the disk drive, and assure all additional files required to run the program are in the right place.  Sometimes the names of these steps change depending on the computer, operating system, and other factors, but the process is essentially the same.  The problem is that the configure, make, make install process hides compiliation and linking from the user.  That is a good thing most of the time, but a person who wants to learn how to program needs to know how to compile and link a program, not just follow the cookbook configure, make, make install process.

Fortunately for Christian, the configure, make, make install process, for some fairly technical reasons, did not allow him to control the installation of the programs he wanted to run in the way he wanted to run them.  Specifically because of that, he started to read and learn about the compiling and linking process.  For some programs, there are heavily documented, step-by-step procedures to walk through that process.  This helped him understand how a program called a compiler takes a text file that holds a C/C++ program and converts it into a binary file and how a second program called a linker takes that binary file and links it to other program files that it needs to run properly.

It is not possible to program without knowledge about how to perform compiling and linking.  This can be hidden from the programmer in something called an Integrated Development Environment (IDE) which we will talk about later, but it is best to get started just the way Christian got started, learning the command line usage of the compiler and linker because this gives a much better understanding of the process needed to test and run a hand-written computer program.

All of the above happened under my radar.  At first he did this to get games and drawing programs running, but eventually, he just wanted to learn more about how Linux and the programming process worked.  All I really did in this process was provide a ten year old boy an old, piece of trash computer that had no programs on it that interested him.  He did the rest.  I am not sure how I would have taught this to him in a structured way, but I will take a stab at explaining how that could be done toward the end of this series of posts.

Serious food questions. Is this a Southern thing?

Day 600 of 1000

Is peanust in Coke a Southern thing?
Is peanuts in coke a Southern thing? I am now going to try to have to try this. Click here to read the article.  (h.t. Kelly) I give it a less than twenty percent chance of making it into my regular diet. I tried with the boiled peanuts thing several time, but acquiring a taste for them will definitely take a bigger effort on my part. Actually, I think the peanuts in Coke will be a little easier.

Back to Raleigh to work on GaugeCam in the morning

Day 599 of 1000

I will work in the morning, the travel late into the evening to get back home to Raleigh.  Since finals approach for the kids, they will study all weekend long.  On Saturday, we will go to NCSU.  Normally, I would go to either the Hunt or Hill library to write code, but I have been asked to work on the GaugeCam project to improve the ability to detect water levels.  We have been going slowly on this project for at least four years, probably getting close to five and, little-by-little, the product is getting refined and attracting interest.  I have the fixes in place and just need to get the code running on Dr. Birgand (the professor in the Biological and Agricultural Engineering Department at NCSU who runs the project).  He should be able to generate data and finish a couple of articles for publication.

On a side note, next trip, I get to have Lorena with me!

How to teach computer programming to kids (Part 1) Introduction

Day 598 of 1000

This is the first 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.

[Next post]

We have two children.  Christian was very interested learning to program at a young age.  Kelly was not interested at all.  We systematically taught Christian how to program as part of his homeschool curriculum so that he was able to get an summer internship as a programmer by the time he was 15.  Even though he has sound programming skills, looking back, we think we could have done a better job.  Kelly, even though she was disinterested, would have benefited greatly from some computer programming instruction.   This series describes what we did well, what we did poorly, and our idea of what we would do if we had to do it over.

We started to teach Christian to program when he was about 11 years old.  He actually worked on some operating system stuff both for PC’s and his Palm Pilot before that.  Kelly did not start to learn programming until she was 18 (this year) in SAS and Java courses at college with the exception of some work with the R statistical programming language last summer.  We think we did a good job with Christian and a horrible job with Kelly even though she is turning into a pretty good programmer.  Christan is a proficient programmer in a number of languages including C#, C/C++, Python, Java, and assembly language.  He completed one fairly impressive project, a couple of medium size projects, and is currently at work on a technical assembly language program as part of an undergraduate research in Electrical Engineering.  Even though Kelly does not want to program for a living, as a statistician, she has seen she needs programming as a skill that will help her.  She is pretty unhappy that we did not at least give her some of the basics.

The following is a list of posts I plan to make.  The list will probably morph a little as I progress and grow to as long as it needs to be.

Christian at the Spring 2013 NCSU Undergraduate Research Symposium

Day 597 of 1000

Christian at the Spring 2013 NCSU Undergraduate Research SymposiumChristian dressed up today to go to the McKimmon Center at NCSU to show off a poster he made for the Spring 2013 Undergraduate Research Symposium. He made the poster for his work at NCSU’s Optical Sensing Laboratory where he is designing, building, and characterizing a Black Body Source for infrared camera and spectrophotometer calibration under the Tutelage of Dr. Michael Kudenov.  I think Christian was a little nervous when the thing got started, but he texted me that a lot of his buddies were there with him, doing the same thing.

Christian did not really have much to show because this is the first semester of a two semester project.  He is just getting started building the device and has programmed (in assembly language) some basic functionality into it.  When we get back from California at the first of June, Christian will devote about six hours per day to this project until it is complete.  He hopes to be able to present some good data and a manual that explains how to build and use the device.  The big deal about what he is doing is not so much about what it does, but what it does for less than $1000.  I am looking forward to seeing how this all turns out.

Advice from a liberal arts professor to a liberal arts major

I talked to the desk clerk a little bit when I got back to my hotel tonight.  She seems like a very nice girl.  I asked her if she was in school.

She said “Yes, in college.”

I said, “At Prescott College?”  Prescott College is a very liberal, liberal arts college here in the middle of conservative Prescott.

She said, “No, only rich kids can go there.  I go to the community college because I am paying my own way.”

“That’s great!  What are you studying?”

“Anthropology.  I plan to go to NAU when I finish at the community college.”

I asked, “Where do you want to work when finish?”

“I am not sure.  My professors tell me that I doesn’t matter so much which degree I get.  It is just important that I get a degree because the people who do the hiring will know you have been able to stick to something for four years.”

What she is doing is really admirable.  She is working her way through the community college, then plans to go to a pretty good regional university.   She will save lots of money that way.  She will be in much better shape than others who take out big loans to go to an expensive liberal arts school to get a soft degree like Anthropology.  Jobs are hard to come by these days for Anthropology majors.  Still, she will have four years experience in the hotel business, definitely not a bad thing.  I think in her case the education and experience she gets in her job will be more valuable than anything she gets from the college course she has chosen.  It is a shame though, that her teachers are representing that a soft degree is something that is somehow viewed as valuable to the vast bulk of employers.

Page 2 of 3

Powered by WordPress & Theme by Anders Norén