Thursday, December 22, 2011

Polymathic Ramblings

Inspired by this post from the great Neil deGrasse Tyson, I have decided to liberal up my education.  As a lowly engineering and computer science major I am afraid my liberal arts upbringing was limited to 1 credit of economics and half a credit of psychology.  After perusing the list I mentioned above, I discovered The Harvard Classics (which I'm amazed I had never heard of before, Internets you have failed me).  Armed with my shiny new Playbook with Kobo e-reader and the brilliance of Project Gutenburg, I shall set out to polymathisize myself and complete my own education.

On an education related note, I've been wondering a lot about all this talk of 'saving' education.  I still don't think we really know what we are saving education from or what we want it to look like.  Where better to start then with what an ideal student would be like upon leaving school.  What do we want our students to know, to know how to do, and to understand.  I think much of the knowledge contained with Neil deGrasse Tyson's book list and the Havard Classics should be in there.  So, this is also a bit of a proof of concept.

My goal is to read a bit of a book every day and blog about it here (or elsewhere if I can think of an awesome name for the new blog).  I figure that may keep me honest and help me digest what I have read.  I have decided to begin with On The Origin of Species By Means of Natural Selection

Tuesday, August 2, 2011

Preschoolers demonstrate scientific experimentation


I tweeted a review (Wired) of this article: Where science starts: Spontaneous experiments in preschoolers' exploratory play (1). I managed to secure a copy of the article (perk for working at a college) and just finished reviewing it and felt the need to share it with the world.

The study looked at preschoolers (mean age: 54 months) to see if they could isolate variables of a system to infer information about that system (i.e. apply the scientific method) when the probability of information gain is high. Their approach involved a toy that was activated by placing coloured beads upon it. Some of the beads would activate the machine (i.e. it would light up and play music) and some would not. The participants were divided into two groups: the all bead and the some bead conditions. In the all bead condition, the participants were shown that all the beads caused the machine to activate when applied individually. In the some bead condition, the participants were shown that some of the beads caused the machine to activate. They were then provided with two sets of beads (in pairs): one set could be pulled apart to test individually whereas the other had been glued together.

Nearly half of the children in the some beads group tested individual beads in the machine whereas only 5% (1 child) did the same in the all beads group. However in both groups the amount of play with the machine was the same (i.e. the some beads group did not use the machine more and thereby test individually through random chance). In fact, some of the children actually performed a test that the experimenters hadn't thought of; namely holding the stuck pair vertically to test it one bead at a time.

This prompted the investigators to create a second experiment where both sets of beads are stuck together. The results in this experiment were very similar to the first in that nearly half of the some bead group tested the machine by varying contact with the beads.

So what does this mean. Well, what it doesn't necessarily mean is that children are born scientists. What it does mean is that in isolated environments with limited distractions (i.e. limited variables) and limited information (i.e. high probability of information gain), preschoolers tend towards a systematic experimental approach. The authors quickly and rightly note that the current research indicates that this is not true when the systems approach real-world systems with greater complexity.

What does this mean for teachers? Well, it appears that children have an innate sense of experimentation when not overwhelmed by other task demands and there is the potential for information gain. I feel that this should be nurtured with simple experiments that are then discussed and dissected to help develop the habits of mind of successful scientists and critical thinkers. Additionally, there should be teacher led experiments that are more complicated and would overwhelm the students if done alone. This allows for the teacher to model the proper process to the students.

One conclusion that I am tempted to jump to is to bemoan the loss of this 'gift' that students are born with. However, to extrapolate this experiment and apply it to older students or adults would be wrong. I would like to see a similar experiment done with those age groups. My hypothesis is that we would see similar results. So it is not that students lose this basic innate experimental ability; it is more probable that we are not nurturing this skill and helping it grow into a viable ability.

What we need is science based education and critical thinking being taught in primary school and continuing along until high school. Additionally, we need to begin differentiating between teaching science (i.e. the subset of facts and knowledge the scientific method has garnered for us) and teaching with a science based education (i.e. learning to utilize the scientific method, rational thinking, critical thinking, and logic). As the (paraphrased) adage goes: If you teach a student some knowledge, they will know it for a day; if you teach them to think, they will learn for a lifetime.


  1. Claire Cook, Noah D. Goodman, Laura E. Schulz, Where science starts: Spontaneous experiments in preschoolers' exploratory play, Cognition, Volume 120, Issue 3, Probabilistic models of cognitive development, September 2011, Pages 341-349

One note: the authors of the study did receive a grant from the John Templeton Foundation however, having reviewed the study (with my limited knowledge of cognitive theory) I don't see anything fishy going on.

The Damon Supremacy

I thought I would jump on the bandwagon about this clip of Matt Damon trouncing a reporter after his keynote address:



This put a huge smile on my face. His rebuttal of the inane question from the reporter was not only accurate but had enough snark to cause wincing. At approximately 10 seconds you can see his face go transition from polite question answering mode to ass kicking Jason Bourne mode.

I want to focus on the camerman's question about "Aren't 10 percent of teacher's bad". Anytime someone throws out 10% you want to be careful as it tends to indicate a made-up statistic (approximately 10% of the time). Even if 10% of teachers were bad (which I am not arguing, it could well be true) it has no bearing on punishing the teachers that are good. All professions have people that perhaps would be better doing something else; that does not imply that the skilled, productive members should be penalized. This is an example of a straw man which Damon handles beautifully by attacking the cameraman directly.

I was curious about the reporter's affiliation. Her mic indicates reason.tv so I looked them up and discovered ... libertarians ....

Tuesday, July 26, 2011

Teachers, Technology, Skillz, and Bieberfever: Reflections from #edchat

After participating in #edchat tonight I felt I needed to get a few things out. The topic for tonight's episode was "What amount of tech should be a requirement for every teacher to know? Are there any specific core applications for teachers?".

My first concern stems from the topic itself; its wording tacitly implies that technology is necessary to be a good teacher and therefore teachers that do not use technology cannot be good teachers. It also implies as a corollary that we must be utilizing technology in teaching. I don't think I have ever heard a solid argument as to why that must be the case. The most common arguments I hear are that "Students use technology so we must use it as well", "It makes education relevant to the student", and "It is required for a 21st century education".
Justin Bieber, technology, and pointing: it doesn't get any more relevant than that
The first argument is fallacious and is known as the argument from popularity (Argumentum ad populum). The basic idea is that many students use technology therefore technology should be used in education. It is a false premise because mere belief in something does not indicate it is true. Many students like listening to Justin Bieber*, it does not mean his music is worth listening to.

The second argument is also fallacious as it assumes that the combination of technology and education will maintain the relevancy that the technology provides alone:

A. Technology is relevant to students.
B. Students like things that are relevant.
C. Therefore teachers should use technology so students like education.

By accepting this argument you tacitly accept that anything that is relevant to students should improve education. Many students find Justin Bieber relevant, but it doesn't mean I am going to get Bieberfever in my science classroom*. Many students find exploring the outdoors and nature to be relevant until you require they learn about it in class. Obviously the way the lesson is taught has a great bearing on how the students will react, but that is an issue of pedagogy not technology.

The final argument implies that in the 21st century we use technology so therefore to exist in the 21st century you must know how to use technology. Once again it implies a causal relationship where there may not actually be one (and employs the logically fallacy known as affirming the consequent). The additional aspect to this argument I hear is that we must prepare students for jobs in the 21st century; jobs that do not exist yet that arise from problems we haven't stated yet. They then argue that teaching knowledge is ineffective because it will have changed by the time the students obtain these future jobs. However, the same can be said regarding the technology: it will be entirely different when the student leaves school and begins working/seeks higher education. The argument can be made that learning how to use today's technology provides a base for learning tomorrows; which I would agree with. However, that implies that learning today's knowledge provides a base for learning tomorrow's knowledge as well, which puts us back at square one. The argument also implies a teaching of technology for the sake of technology which leads me into my next concern: the lack of a clearly stated goal for teaching with technology.

It appears to me that we are integrating technology because it is there. Many mention the importance of ensuring the technology is used in accordance with proper pedagogy, a statement I couldn't agree more with. But there is so much more talk regarding how to use tech and very little regarding pedagogy that I worry that last statement is lip service to a degree. So to rectify this I will attempt to take the arguments I have listed and synthesize a goal for the integration of technology.

The main argument is preparing students for the future, so we will start there. The question that must be answered is what will the future look like. The only assumption I can start with, is that there will be people (because if there are no people, this argument is moot). So, what can we deduce if we assume that there will be people (in brackets I list the skills I believe are needed to accomplish the task/goal):
  1. People will wish to communicate with each other (communication skills)
  2. The communication will cause ideas to be generated and problems to be discovered (creativity and problem solving skills)
  3. The problems will require solutions (creativity)
  4. The solutions will require the application of new/unknown knowledge (research methodologies)
  5. The solutions will require analysis (skepticism and rationality)
To me this is what needs to be taught to be ready for the future. I group these fives items (communication skills, creativity, problem solving skills, research methodologies, and skepticism and rationality) and entitle them critical thinking skills (although you could as easily call them learning skills).

Now no where in my listing I have noted technology. This implies to me (and I am biased as I created the excellent listing above) that technology is not a skill per se but a tool to be used to facilitate the execution of the skills. For example, if you needed to nail two pieces of wood together you could use a hammer or a nail gun. However, to use the tool properly I need to know why I am nailing the wood together and what the final product should look like; the technology will not show me that.

To bring the analogy to education, we can't know what tech to use until we understand the problem we are attempting to solve with our teaching. By assuming the solution will require technology we limit the number of possible solutions and stifle our creativity. The solution we arrive at may not be the most optimal or even a valid solution. Instead we need to add technology to our toolbox and utilize when the problem indicates it is required.



* Shameless SEO plug
* I promise to stop now, that should be enough to get this post on page one of Google.

Tuesday, June 28, 2011

If I Didn't Jump to Conclusions, I Wouldn't Get Any Exercise ...

I've been pondering why my students neglect checking the simple possiblities when their programs stop working. They always seem to jump to the possibilities that are more elaborate and therefore less likely. I was pondering this when I had my own jump to big stuff moment *cue transistional wind chime back-in-time music*

I was driving in my vintage '98 Grand Am (I know jealous), when I heard a clunking sound from the back. So I turned off the radio to listen more closely, at which point I became distracted by my own deep thoughts. About 5 minutes later I realized I didn't have any music which made me distraught. So, I immediately starting playing with my radio assuming that it had died. I tweaked the volume, changed the station, changed to AM and back to FM (I know I still listen to the radio), and was about to bemoan the death of my radio when I recalled turning it off. With a sheepish triumph I pushed the ON button and was graced with soft melodies.

So, it would appear that jumping to the worst possible conclusions is something I am guilty of too. I am sure this is an identified bias that humans suffer from but can't for the life of me remember which one it is. Luckily the first step to absolving a problem is recognizing you have one (even if you can't remember the name of it, which I guess is another problem ...)

Teaching Programmers ... or Programming Teachers?

So, I've been struggling lately with deducing the best* way to teach computer programming. So far, I'm at a bit of a loss. From my exhaustively intensive Google searching, I have deduced that there is not much out there regarding teaching computer programming/science. It appears that either everyone already knows how to do it, or everyone assumes they know how to do it. Being as I've assumed that I don't know how to teach it, I'm up the proverbial creek without a paddle.

So that leaves me with the task of creating a paddle for this creek (and that is where the analogy ends before you throw me overboard **). I will begin by recounting my current approach to teaching CS and proceed from there:

1. I lead in class 'tutorial' sessions peppered with lectures. I try to keep the lecturing (i.e. directly disseminating information without the students programming) short to focus in on solving a coding problem together.

2. In terms of assessment, my courses have exams (1 if the course is under 3 weeks, 2 if longer) and projects (open ended, PBL style). I have recently started adding in assignments, which are coding problems that are laid out for the students.

3. My class runs for a 5 hour block, Monday to Friday (which is a lot of time to teach).

4. I've started adding in what I call 'Quick Checks' which are questions related to the theory of what we are covering, but unrelated to the problem we are solving (they are meant to help the students pull out the concepts being used to solve the problem).

Now that that is out of the way, here are my observations thus far:

1. It recently dawned on me that my approach of 'live-coding' is really no better than having the students copy copious amounts of notes from the board. I believed that since they were coding (and therefore doing) it was a good approach. However, I have been finding that the students are just copying the code down without applying much thought to the process. So, problem 1 is to find a way to rectify that while still covering problems that are interesting and applicable to what they will face in the job market.

2. The Quick Checks have shown me that the students have difficulty separating the logic of the solution from the scenario of the solution. I think that they see them as the same thing. This is of course highly detrimental to coding, as coding is problem solving which is the act of applying similar thinking to new problems. So problem 2 is finding a way to separate the ingredients from the recipe.

3. The open-ended projects (which are meant as a means to explore the topics covered in course and create items for their portfolio) tend to be highly derivative of the examples I do in class. I feel this reinforces my conclusion drawn in 2 that the students have difficulty separating the logic from the solution.

4. There is still a problem with the terminology we use (i.e. methods, functions, constructors, parameters versus arguments) as well as problems with writing proper syntax. Along the same thread, some students are still having trouble formatting their code neatly (which I am a huge advocate for). This makes it much harder to learn the more challenging problem solving skills as the they are still grappling with the language in which the solution is framed.

5. There is difficulty in remember what we have already completed on the current problem. This is challenging as we often try to reuse code to minimize the amount that needs to be written. However, if you don't recall what has already been done, it is difficult to reuse it or even move forward. I find this also translates into not knowing what the program should be doing when we test it.

In regards to solutions, unfortunately at this point I only have ideas. My biggest worry about implementing changes is my own bias that the changes are effective/ineffective. I need a metric to indicate if the students are actually benefiting. My thinking is something similar to the Physics based Force Concept Inventory, however I cannot find an equivalent one for CS. Since my courses are over so quickly and then we are changing topics/programming language it is difficult to use my exams as a means for assessment (although I have ideas along that thread).

So, at this point dear reader I leave you as puzzled as I am; hopeful that you are intrigued to find this solution (or at least awake). I will leave scribblings on my ideas to future posts.


* best is a fairly loose word to use here, I know ... tsk tsk

** that is the actually end of the analogy, the first was a blatant lie.

Tuesday, March 29, 2011

Installing XAMPP as a Portable Application

This tutorial will take you through installing XAMPP (Apache Server, MySQL, PHP, and Perl; the X is to indicate it is cross-platform) as a portable application on a USB drive. To complete this tutorial you should have a USB2.0 drive with at least 500 mb of free space available (I recommend a minimum of a 2Gb drive dedicated to this purpose).

We will be installing XAMPPLite as it is a bit smaller (approximately a quarter of the size at 277mb) of the current full install of XAMPP and therefore better suited to run off a stick. There is no XAMPPLite at the current version release of XAMPP, so we will download and install the last release (1.7.3).

Download the file from:

Once downloaded (the file is only 28.4mb) run the file.

This window will appear. Ensure that your USB drive is plugged into a USB port on your computer. Select the letter assigned to your drive for the Destination folder shown to the left. Click on the Install button and go put your feet up for a bit (it will unpack the files to your drive which should take approximately 20-30 minutes).


Once the unpacking is finished a command prompt window will open and ask a series of questions:

  • Should I add shortcuts to the startmenu/desktop? (y/n)
Choose n (no) here as this is a portable install and you probably won't run it off this computer on a regular basis (otherwise do a normal install of XAMPP or a similar program).
  • Should I locate the XAMPP paths correctly? Should I proceed? (y/x=exit setup):
Choose y (yes) here as this is not really much of a choice (and is necessary for any install of XAMPP).
  • Should I make XAMPP portable without drive letters? Your choice (y/n):
Choose y (yes) here as USB drives can be assigned a different drive letter depending on what is already installed on the host computer. This will allow XAMPP to work regardless of the drive letter on the USB Drive. However, you will have to manually start XAMPP to work with it off the stick (as it will not be a service). This will be covered in the next tutorial.

You should now receive a number of lines indicating that programs are being relocated followed by a message saying that XAMPP is ready to use. Press the enter key to move to the next step.

XAMPP then indicates that it set the time zone for you and where to go to change that later (once again a future tutorial).

At this point you are presented with a menu of options. Choose x to exit the menu. Congratulations you are now the proud owner of a portable web server.