This Book Isn’t For Every One

I love it when a book starts with a no-nonsense paragraph like this:

This book isn’t for everyone.

Not everyone needs to program computers. There is a popular myth that if you aren’t “computer literate,” whatever that means, then you’ll flunk out of college, you’ll never get a job, and you’ll be poor and miserable all your life. The myth is promoted by computer manufacturers, of course, and also by certain educators and writers.

The truth is that no matter how many people study computer programming in high school, there will still be only a certain number of programming jobs. When you read about “jobs in high-tech industry,” they’re talking mostly about manufacturing and sales jobs that are no better paid than any other manufacturing jobs. (Often, these days, those jobs are exported to someplace like Taiwan where they pay pennies a day.) It’s quite true that many jobs in the future will involve using computers, but the computers will be disguised. When you use a microwave oven, drive a recently built car, or play a video game, you’re using a computer, but you didn’t have to take a “computer literacy” course to learn how. Even a computer that looks like a computer, as in a word processing system, can be mastered in an hour or two.

This book is for people who are interested in computer programming because it’s fun.

I am spending part of my time teaching people programming for fun. So I have a lot to learn from this book. The fact that it is a series of three very relevant topics makes it even more interesting pursuit.

  • Symbolic Computing, a Logo programming text that concentrates on natural language processing rather than the graphics most people associate with Logo.
  • Advanced Techniques, in which discussions of more advanced Logo features alternate with sample projects using those features, with commentary on the structure and style of each.
  • Beyond Programming, brief introductions to six college-level computer science topics.

A Couple of Experiments in Blended Learning

I have been experimenting with blended learning since early 2008. The first experiment was with a  batch of interns and the second is a batch of final year students in a software institute. Both the batches are trained using Problem Based Learning techniques. My inspiration comes from our original idea of setting up a Software Academy.  Some notes from the experience.

1. For the interns I set up a wiki (based on pbwiki)

2. Each student created their own home page and a Learn log and Project Log

3. The wiki home page pointed to Projects, Resources and student pages

4. The students were given a series of  problems. A link to the problem and the skills needed to solve the problem were outlined. For each skill, there were a list of resources (on the web) provided. These include ebooks, articles etc. A student reads the problem, reads the list of skills required. If they do not possess one or more required skills, they turn to the resource pages and learn those skills. Otherwise they proceed to solve the problem.

5. Each student records their learning and project related notes ( I gave them a link to a programmer’s diary wiki page as a guideline). This was the rough part. Software students don’t like to write and I had to keep asking them to expand what they express and finally ended up giving them a wiki page template.

6. Pbwiki sends automatic notification when a page changes. We used this to stay current on the activities. Pbwiki also shows you the recent changes (like most wikis do) and this allowed to me to take a quick look and see what pages I had to visit for review.

7. Once a week we would meet for half a day and discuss face-to-face any issues and plans for the following week.

8. We supplemented the wiki with chats (on demand) so that students can clarify any questions immediately. I spent about 30-60 minutes every day chatting. Some times we would do group chats. We also used email for asynchronous communication.

I found this to be very effective method of training. At the end of the six month period, the students produced reasonably good software and gained experience with a couple of programming languages and a few libraries.

For the second batch we are using a Social Network  created  on Ning, another free resource. This experiment is a bit more fun. Unfortunately Ning does not have a wiki. We plan to supplement it with an external wiki.

Given a choice, I would recommend using a social network since students are very comfortable using them and after some initial hesitation start participating actively.

The students I teach are in a southern city in India called Chennai. They come from rural areas and English is their second language. Most of their parents do not speak English and the students writing  skills are not very good. This holds them back a little, initially, but after a while, they start participating. In this experiment:

1. Students started customizing their own pages

2. Creating their own sub-groups

3. Started posting messages and create new discussion in the forum

4. Even send me direct messages (when they want a one-on-one conversation).

5. They can blog, but they have not started doing that yet.

I visit them twice a month and spend a whole day with them (may change to half a day every week).

The best part of the second experiment is that students have become teachers. We encourage students to help other students, create project groups (for tighter interaction). Like in any other community there are a few people who take the lead and participate more than others.

Overall I am happy with the results.There are several areas I want to experiment. Some higher level goals are described in the last slide of this presentation (Research topics).

Here are a few next steps:

  1. Create our own social network using open source content management systems (we are looking at Drupal and Plone)
  2. Make students build a few modules for Learning (portlets or Drupal modules)
  3. Include projects where student just pick one topic to teach and create it in the social network (student-as-a-teacher)
  4. Expand the experiment to include more institutions
  5. Try it in a couple of different countries where students speak English

I hire some of the students from each batch and they work on improving the network and also teach a few topics.


This posted started as a comment to a discussion on LinkedIn. Then I decided to post it for a larger audience after a few corrections and improvements.

LearnNet: Solving the Meta Problem

I worked on a presentation for The Program For The Future. I did not get to present it due to some technical difficulties. This initiative is inspired by several ideas we were working on with Doug.

[slideshare id=831175&doc=software-academy-a-presentation-for-pftf-1228798019423468-8&w=425]

Will be happy to answer any questions. The presentation assumes knowledge of several ideas of Doug Engelbart – Dynamic Knowledge Repository, Networked Improvement Communities, Collective Intelligence, A Framework for Augmenting Human Intellect. Definitely heady stuff. Google these terms and you will definitely not be disappointed about the quality of conversations.

You can find a lot of information from this Wikipedia Link about Doug.

Program For The Future – InfoStream

Program for the Future was fun. We set up an InfoStream, thanks to Yahoo Pipes and my hard working colleague, in a few hours. We combined, filtered feeds from Twitter,, Flickr and YouTube. I know it can be improved. If you have any suggestions, please free to post a comment.We also set up a Social Network on Ning (public), and a group on Facebook.

You can see the feed in action here.

You can get the feed source here.

We are tracking the conversation after the event. Hopefully there will be a lot more in blogs (the Twitter traffic being real time may die down).

This was a good exercise. Even though I have been playing around Yahoo pipes a bit, this is the first time we did some thing useful with it.

If you need help in setting up similar feeds for other events, let us know. We can send you more info (or write a blog about it).

Program For The Future

Over the next few days, I will be blogging about Program For the Future Conference. Since the essence of the event is Collective Intelligence, I would love to have many of you follow it and share your ideas. I will be participating from Chennai, India. You can participate from anywhere through Twitter, FriendFeed, Slideshare, Blogs and Comments to blogs.

Twitter hashtag #pftf
Tag in other social media pftf

You can also use the same tag for other media – Flickr,, YouTube, FriendFeed etc. This is the page for Virtual Participants.


We originally had the tag pff, but had to change it since there were many other items already existing with this tag.

ThinkLog: Simplicity

One of my friends shared this wonderful link about Simplicity on his Facebook profile. Here are the ten laws of simplicity by John Maeda.

  1. Reduce – The simplest way to achieve simplicity is through thoughtful reduction
  2. Organize – Organization makes a system of many appear fewer
  3. Saving Time – Savings in time feel like simplicity
  4. Learning – Knowledge makes everything simpler
  5. Differences – Simplicity and Complexity need each other
  6. Context – What lies in the periphery of simplicity is definitely not peripheral
  7. Emotions – More emotions are better than less
  8. Trust – In simplicity we trust
  9. Failure – Somethings can never be made simpler
  10. The One – Simplicity is about subtracting the obvious and adding the meaningful

Here is the link to the original blog post. Here is the link to the book on Laws of Simplicity.

My thoughts:

  • I do not understand 7. How can more emotions be better? Does this law contradict laws 1 and 10? This one certainly bears more thinking.
  • In fact Edward De Bono, has an entire book on Simplicity. At the end of that book, I found that simplicity is not really simple to achieve. Achieving simplicity is a complex process. YOu need to strive hard for it.

Are these laws contextual? Do they apply only to design or to other problems as well? I guess I need to read the book to find out. Some thing tells me that I need to get back to this subject in more detail later.