Monday, September 10, 2007

Teaching Programming MIT & IITb

I am researching ideas on how to prepare students with the skills and work ethic necessary to be effective programmers.

Philip Greenspun has some interesting
thoughts on What's wrong with the standard undergraduate computer science curriculum and has published a course on Software Engineering for Internet Applications to address some of these issues. He encourages other comp. sci. educators to provide this course as well and provides them with teaching resources.

This is the assignment list Professor Om P. Damani put together for his Foundation Lab course at IIT Bombay. I really like the assignments, but I'm kind of blown away by how much work they are and how little time is given to complete them. A good friend of mine went to IIT and said this was standard and mentioned that this class was one of three a student would be taking in a semester all with similar work loads.

Another aspect of Damani's class I find interesting is that there doesn't appear to be any programming instruction ie. descriptions of arrays, functions, classes, objects etc .. There wouldn't be time. A student needs to pick up a new language and create a large project with it in the time it would take an MCA academy to get to looping.

1 comment:

Ashraf Al Shafaki said...

I've been looking around too for alternative approaches to teach programming to those who are new to it. I believe starting with algorithms could be one of the best methods, as it cuts down on the time the brain needs to grasp the fundamental programming concepts. Then after that translating the algorithms to a language such as C for instance would be a very easy almost automatic process for students. I believe there are several successful approaches to introducing programming to students, yet in my own experience the method mentioned above is one of the highly successful ones specially on the long term. For such students who have been founded well into the core of programming concepts and had their minds set in the right direction right from the beginning tend to outperform others in the future in their programming learning journey as they get to learn new programming languages and new technology.