Project Based Learning

When we thought of LearningPoint, our focus was to provide Project Based Learning. Here is what Wikipedia has to say on Project Based Learning.

Project-based learning, or PBL (often “PjBL” to avoid confusion with “Problem-based Learning”), is a constructivist pedagogy that intends to bring about deep learning by allowing learners to use an inquiry based approach to engage with issues and questions that are rich, real and relevant to their lives.

Our main goals were to:

  • Provide the industry with software professionals ready to start work on day one
  • Encourage Learning By Doing (which increases relevancy of learning)
  • Focus on the most frequently required skills in the industry
  • Have clear learning outcomes (where the students move from simple to more complex projects)
  • Improve the skills on collaborative problem solving (in real life students have to work in teams)
  • Help Exploratory Learning (where students not only learn facts and concepts, but also learn how to find relevant information and make decisions on using one method of solving the problem over others)
  • Finally, we want to help people to Learn how to Learn

In a web based setting, project based learning is more scalable. From a student’s point of view, at the end of the course, they have something concrete to show (a few open sources projects) and have confidence in building software.

Math: Developing a Mindset

You keep hearing about Mathematical thinking. What is it? How do you develop a Mindset for Math?

Khalid has a nice post on How to Develop the Math Mindset.

Math uses made-up rules to create models and derive relationships. When learning, I ask:

  • What relationship does this model represent?
  • What real-world items share this relationship?
  • Does that relationship make sense to me?

I will add a couple of more:

  • How does one develop a mind-set for thinking beyond mere numbers, formulas and low level concepts.
  • How can we take these insights that come out of that mindset and apply to real problems

One of the slides I used to have on my “Thinking About Thinking” talks was to ask the audience (mostly CS students) to do a few of the following multiplications, mentally.

19 X 21

25 X 15

Very few actually find the simple algebraic patterns, till you point them out.

That brings us to one more insight (not my own):

  • A lot of problems can be solved by looking for patterns and applying some existing knowledge

The more mental models we build, the easier it is to apply them.

Vigorous Writing is Concise

Vigorous Writing is Concise

I borrowed this phrase from Jon Bentley, who in turn was quoting William Strunk Jr.’s observation in Elements of Style. Jon says that this is true in both English and Programming.

In this chapter titled The Most Beautiful Code I never wrote, from the book Beautiful Code, Jon shows how you can do more and more with less and less.  He takes a quicksort program in C and through a series of steps, makes it smaller and better.

Yes. Vigorous writing is concise. It is a skill I am still working on.

Virtual Spaces as Third Places

The concept of third places is a new one to me. Thanks to Konard for blogging about Classrooms as Third Places and providing some useful links.

Third Places Oldenburg suggests that beer gardens, main streets, pubs, cafes, coffeehouses, post offices, and other third places are the heart of a community’s social vitality and the foundation of a functioning democracy. They promote social equality by leveling the status of guests, provide a setting for grassroots politics, create habits of public association, and offer psychological support to individuals and communities.

Oldenburg identifies that in modern suburban societies time is primarily spent in isolated first (home) and second (work) places. In contrast, third places offer a neutral public space for a community to connect and establish bonds. Third places “host the regular, voluntary, informal, and happily anticipated gatherings of individuals beyond the realms of home and work.”

While both Konrad and Oldenburg identify physical spaces as third places, I wonder whether a virtual spaces (blogosphere, facebook like social communities) can be considered third places too? They definitely “host the regular, voluntary, informal, and happily anticipated gatherings”.

Blog as a Tool for Learning

I was looking at Open Education (thanks to Stephen), and found this fragment on how to use blogs for the course:

Each week you should read the assigned material and blog answers to the questions for the week, or simply complete assignments for weeks when there are no readings or questions. Your blogging should demonstrate your understanding of the assigned reading material and should include original thoughts and synthesis. Don’t just summarize readings. Making connections between the week’s readings and either previous readings or previous blogging (of your own or of other students!) is strongly encouraged.

The site contains a lot of information if you are interested in this space.

They Have Never Seen an Hour Glass

Dr. Mitra likes the way in which Indian children reinvent computer terms and icons in their own language. “They don’t call a cursor a cursor, they call it a sui, which is Hindi for needle. And they don’t call the hourglass symbol the hourglass because they’ve never seen an hourglass before. They call it the damru, which is Shiva’s drum, and it does look a bit like that.”

This is an old story – more than 5 years old. But it showed up in a forum, I watch called TeachAndLearnOnline group. Bill Kerr relates the India hole in the wall effort about 5 years ago to support the reason why empowering kids with computers (like OLPC) may work.

Here is the original Hole in the Wall link. Here is the digital vocabulary the kids made up when they started using the computer without being taught. Here is a link to the  eight minute video posted by James Neil.

Wiki Mind Map

I just discovered Wiki Mind Map on LifeHacker. I tried a couple of maps. It is a cool way to visually browse information from Wikipedia. It may be a nice tool for presenting information, as well. You can click on the link and see the new mindmap of the topic or head over to the wikipedia page. Links are specially marked.

Here is a map of The Semantic Web .It takes a bit of time to draw but worth the wait.


And another map of Mathematics. I just clipped part of it for display here.


Programming Language Trends – July 2007

It interesting to keep an eye on TIOBE’s programming language trends. The position of the language is as interesting as the movement of languages up and down the rank. Lua, D and Ruby moved up, big jumps. You can see the top 20 list here. Here is how the index is computed. Here is an excerpt from TIOBE’s July News Flash.

  • This month, it looks like the month of game programming languages with a functional nature. Lua, particularly known as the implementation language of “World of Warcraft”, has entered the top 20. Now that all the hype around Ruby is cooling down, it seems to be time for a new scripting language. Lua is dynamically typed, with a very small but extendable language definition. It has borrowed a lot of features from the functional world.
  • At the same time Xbox compatible language F# entered the top 50. Everybody expected Scala (currently at #55) or Groovy (#54) to hit the top 50 this month, but F# was to one that really made it. F# is just like Lua a functional-like language. Although F# is still a Research project from Microsoft, it gains a lot of attention already.

I have heard mentions of Scala, but not D. Both may be worth checking out. I am surprised that Haskell does not figure in the list of Top-20 and FoxPro is still hanging in there.

PHP seems to be going down a bit. I am surprised to see that since some of the most scalable web applications – MediaWiki (which powers Wikipedia), WordPress are written using PHP.

So what metrics would you use to pick a language? It depends on what you want to do. If it is jobs, then Java is a good bet for a while. If you want to build rapid web applications then Python, PHP and Ruby are definitely the ones to consider (even though Python/Ruby are very different from PHP). For Windows developers, obviously C# is the language of choice. Game developers seem to like Lua, C++ and Python over other languages.

Even though TIOBE does not consider markup languages in their listing of programming languages, I think XML and RDF will be important ones to learn.

A Lesson

I mentioned a lecture on Emerging Technologies in MIT Courseware earlier. Here is a slide titled “Final Lesson”, part of the summation.


This calls for a new kind of training. Teaching people the ability to adopt and use new technologies to do what they do better. Also teach them to understand how the technology will affect what they do today. This is another one of those basic skills you need to acquire to thrive in the new world.