Gas station without pumps

2011 November 28

Free online education

I recently saw the post 12 Dozen Places To Educate Yourself Online For Free, and was wondering how many of the sites listed there I had heard of, and whether any of them were of any use in our current home-schooling adventure.  (By my count there are more than 144 sites listed, but I don’t mind their title underestimating what they provide.)

Of the 21 “Science and Health” sites, I had previously visited only 4 (MIT OpenCourseWare, Khan Academy, Wolfram Demonstrations Project, and Scitable), none of which had ended up being useful to us, though I could see some value in each.  The other sites in this category look like more of the same (several other university open courseware sites, for example).

I have no interest in learning about “Business and Money” and have never visited any of the 12 sites listed under that category. Similarly for the 14 sites under “History and World Culture”, several of which seem more focused on genealogy and biography more than history, and history much more than culture.

I also have no reason to visit the 10 “Law” sites, which seem to be mainly from law schools (perhaps as advertisements from the schools), though I do occasionally look up things in the local ordinances ( and state laws (  In both cases, I would prefer a more transparent posting of the laws, so that I could use a better search engine to find things—the database search engines provided are terrible.

The “Computer Science and Engineering” has 13 listings, but does not include Stanford Engineering Everywhere, nor does it include some of the most important learning tools (Scratch, Alice, Python online tutorial, Project Euler, …), leading me to suspect that the author of the list really did not know much about what online self-teaching resources were available, and just had dumped the results of some Google searching.  The 9 math resources showed a similar lack of depth.

The 8 “English and Communications” resources looked a bit better, though National Novel Writing Month is not really an online educational tool. I am particularly interested in finding writing resources for my son that will get him past his writer’s block and through high-school English, but the list here did not seem to be very useful for that rather specific problem. For one area of this field that I know something about (technical writing), the advice at Writing Guidelines for Engineering and Science Students  seemed rather thin and not particularly helpful for the sorts of problems I see in student writing.  None of the resources here looked particularly useful for our needs, though I kept hoping that I’d find some gem I’d previously missed.

Of the 6 “Foreign and Sign Languages” sites, I have heard good things about two, BBC Languages and Livemocha, but I’ve not used any of the sites, and we prefer to have our son take language classes at the community college, where he can get face-to-face interaction with others as well as detailed instruction in grammar and vocabulary.  It may be possible to emulate that experience by combining different web-based sites, but it would be much harder to maintain engagement than with a regularly scheduled class. In fact, that is a major problem with most of the on-line learning resources: it requires considerable dedication to stick with the learning and do the necessary practice in the absence of teachers, classmates, and regularly scheduled homework deadlines.

The 19 “Multiple Subjects and Miscellaneous” are indeed quite varied.  I’ve heard of  iTunes U (though not used them, since we find video lectures a particularly boring and slow way to learn), Brigham Young Independent Study (we’d investigated their non-free online high school classes and decided that none of them were suitable for our needs), and TED (again, we find video lectures—even TED talks—extremely boring).

The 20 “Free Books and Reading Recommendations” look useful, though I’ve only ever used Project Gutenberg and Scribd (and Scribd only because some teacher-bloggers put handouts and other documents they are discussing on the web via Scribd). There are several sites claiming tens of thousands of books to download for free, but I’m wondering whether they all have the same core of books with copyright expired, and that the union of the different sites is not much larger than the largest single site.  It would have been useful for the list creator to have merged the free-book sites into a single comparative entry, suggesting which order to try sites in to find a free book fastest, or giving some other hints about how to prioritize a search.  Right now, I suspect that Google books (which was not listed) provides a more comprehensive list of free books than any of the sites listed, though the free audio books through Books Should Be Free may be an otherwise difficult-to-find resource.

The 9 entries under “Educational Mainstream Broadcast Media” provide access to educational content associated with TV shows.  There are a few good things there, but you probably need to know precisely what you are looking for, so access through a search engine seems more useful than through the home pages of the content providers.

The 8 entries under “Online Archives” look interesting—I did not even suspect the existence of some of them. The only one I’ve used is U.S. Census Bureau, which has a lot useful information—unfortunately, it can be very difficult to find the information on their web site.

Of the 4 “Directories of Open Education”, the only one I’ve used is Google Scholar, which has slowly become a decent way to search the scholarly literature (the indexing used to be terrible, but now it seems to be only a little worse than much more expensive dedicated indexing).  I’ve tried using OpenCourseWare Consortium, but the organization and indexing seems to be poor, and it takes a lot of clicks to get information about specific courses.  Finding courses that meet particular criteria is nearly impossible (say, for example, that I was looking for a course that taught Java to someone who already knew Python—how many hundreds of “course details” links would I have to click to find out whether there was such a course or not?).

2011 June 9

Project Euler as teaching tool

Filed under: Uncategorized — gasstationwithoutpumps @ 07:44
Tags: , , , , ,

In her blog Love2Learn, malyn writes in praise of Project Euler, coming to the conclusion “there is definitely room and reason for integrating programming in school and not necessarily as a separate subject/course.” I found her post through comments on John Burk’s post Project Euler vs Khan Academy: the future of online learning.  John Burk contrasts the challenging puzzle-like nature of the Project Euler questions with the dry-as-dust problems that Salman Khan uses as examples in the Khan Academy videos.  He contends that Project Euler is a much better pedagogical tool than Khan Academy.  I used the Project to help my son learn Python about a year ago (see my post Project Euler).

For those not familiar with it, Project Euler, is a series of math puzzles that can most easily be answered by writing short computer programs. The puzzles have been designed so that only about a minute of computer time is needed, but hand solutions without the aid of a computer are very tedious to do.  According to their home page, Project Euler started in 2001, and has now grown to a series of 341 problems.

Some people get a lot out of Project Euler. How I Failed, Failed, and Finally Succeeded at Learning How to Code by James Somers describes how he taught himself to program (after several failed attempts to learn from books) using Project Euler, and he draws some nice material from Lockhart’s Lament (about the poor way that math is taught).    Somers raises an interesting point

If programming is best learned in this playful, bottom-up way, why not everything else? Could there be a Project Euler for English or Biology?

Maybe. But I think it helps to recognize that programming is actually a very unusual activity. Two features in particular stick out.

The first is that it’s naturally addictive. Computers are really fast; even in the ’80s they were really fast. What that means is there is almost no time between changing your program and seeing the results. That short feedback loop is mentally very powerful. Every few minutes you get a little payoff—perhaps a small hit of dopamine—as you hack and tweak, hack and tweak, and see that your program is a little bit better, a little bit closer to what you had in mind.

The second feature, by contrast, is something that at first glance looks totally immaterial. It’s the simple fact that code is text.

His point is that the excitement of programming is difficult to duplicate in other subjects, where there are real-world skills or facts that need to be mastered.  I see this all the time in bioinformatics, where the biology is much messier than the algorithms and programming.  There is a lot more special-case and detail knowledge in biology, and a lot less reasoning and general-purpose tools.  A prediction made from a bioinformatic method may take 5 or 6 years of tedious wet-lab work to verify (or refute).

I agree that programming can be very addictive, but Project Euler has not, to my mind, quite captured that addiction for many people.  The attrition rate is too high for it to really be said to be addictive. In her blog, malyn says “I’ve only done a couple of problems on Project Euler.” I tried a few myself, and got bored after 5 or 6.  I kept meaning to go back and do some more, but I always found more interesting things to write programs about.  It seems that we are not alone—a lot of people start the series of problems, with 152,356 people having solved the first one, but very few stick with it for long, with only about 20,000 having gotten through 30 of the problems, and numbers around 500 once you get deep into the list of problems.

Somers also speaks in favor of the Project Euler forums, which you get access to after you have solved each problem:

Even if you’re not a programmer, it’s worth solving a Project Euler problem just to see what happens in these forums. What you’ll find there is something that educators, technologists and journalists have been talking about for decades. And for nine years it’s been quietly thriving on this site. It’s the global, distributed classroom, a nurturing community of self-motivated learners—old, young, from more than two hundred countries—all sharing in the pleasure of finding things out.

Of course, there are other such forums on the web that do not require solving problems to join. For example, the Arduino community  has forums at and that discuss how to use microprocessors (specifically the Arduino boards) to do all sorts of art and engineering projects.  The forums are a mix of people doing their first programming and expert computer engineers, all dedicated to making fun things that work using microprocessors.  Other hobbyist communities have similar forums for their enthusiasts.  Project Euler is unusual only in that the center of the hobby is math, which is more often associated with schooling that with hobbies, though recreational mathematics has a long and noble history.

I do think that teaching programming in grade schools and high schools is an important thing, and am quite distressed that my son’s high school has no computer programming classes: not even the pedagogically rather poor Java syntax course that would prepare students for the AP computer science test.  Putting math and programming together (as Project Euler does) serves to capture a few who are already heavily into recreational math or programming.  Putting physics and programming together (a recent meme for physics teacher blogs) may capture more students’ interests, and putting engineering and programming together (in robotics courses or clubs) may be even better.  I’m doing what I can by coaching a robotics club, but it would be good for programming to work its way into the standard high school curriculum.

2010 June 21

Project Euler

Filed under: Uncategorized — gasstationwithoutpumps @ 08:11
Tags: , , ,

My son (just finished 8th grade) is learning another programming language this summer.  I suggested that he learn Python next, because he already has learned Logo, Scratch, various Lego programming languages, NQC, C,  Dr. Scheme (a LISP dialect), and some Javascript.  He is a competent programmer in Scratch, C, and Dr. Scheme, but he has not worked with rapid-prototyping language like Perl or Python, nor with an object-oriented language.

He read the on-line tutorial (which seems to be better than any of the books out there for learning Python), and did a couple programs I suggested—assignments that I gave to grad students learning Python to do bioinformatics.  He was not particularly interested in learning the statistics and biology needed to do the more advanced programs for that course, so we looked around on the web for other programming exercises.

Google has some ( but he wasn’t that excited by Google’s idea of a good exercise either.

He then remembered Project Euler, which I had tried unsuccessfully to interest him in a year or two ago.

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

The problems start out easy, and gradually get harder.  Some can be done with a calculator, but most are intended to need a little programming:

Each problem has been designed according to a “one-minute rule”, which means that although it may take several hours to design a successful algorithm with more difficult problems, an efficient implementation will allow a solution to be obtained on a modestly powered computer in less than one minute.

It turns out that Python is an excellent language for doing the early programs, much better than C (which is what he was learning when he last looked at Project Euler).  So far he has done the first 10 of the almost 300 problems. I helped him with a couple to show him aspects of the Python language that were different from the languages he has learned in the past (list comprehensions made one of the exercises into a two-line program), and to get his thinking unstuck about how to find small primes.

I expect he’ll slow down and run out of steam after a while—then we’ll look for some other application of python, perhaps one that requires object-oriented programming, since he has not been exposed much to that paradigm yet.

%d bloggers like this: