Aman King

Guest Lecture a...Control PanelChange LogBrowse PagesSearch?

Guest Lecture at MIT

And no, before you jump off your seat (although you probably already have!), I don't mean the M.I.T. (Massachusetts Institute of Technology) but India's very own Maharashtra Institute of Technology in Pune.

This well-regarded institute wished to organize regular industry-academia interactions by way of guest lectures by industry folks for their students. They got in touch with Manav, from ThoughtWorks Pune recruitment team. Manav, in turn, got in touch with Sid and me to do a guest lecture for MIT's 2nd year students on 27 Sept.

We happily agreed and after some thought decided to do a "Rediscovering OOP" session. Too bad, it turned out that our audience was going to be students who've just learnt C and no OOP language yet. But since we were really "lean" the good thing was that Sid and I hadn't prepared anything for the session so far and hence there was no wasted effort. Razz We quickly changed the session idea into "Industry Programming Practices".

A night before the lecture day, Sid and I paired up on creating a presentation. We went for Sid's preferred style of using pictures on slides instead of text to trigger open discussions as opposed to bullet points which normally bring constraints on what we discuss. After about 30 minutes of Google Images, we were done. We had:

  • Rapunzel to denote "a problem to be solved"
  • Scarface to represent IDEs like IDEA
  • a bald man with a hammer to denote "Notepad" (Rapunzel had to pick either Scarface or the hammer guy to rescue her)
  • a relay race pic to signify longevity of code and how it has various consumers even after you've left the project
  • and other fun stuff...

We also had some code snippets in "before and after" style. Example:

if (flag != 0) 
{
  ...
}
replaced by
if (stackFull) 
{
  ...
}

We stressed on expressing intent, modularity, thinking about scoping of variables, and other good stuff (we had a checklist of such things in the last slide). Like when Sid said, "The best compilers make multiple passes over code, so should the best programmers", and I said, "If you use global variables to solve a problem and not think of alternate solutions, you're just being darn lazy and irresponsible!" And like Sid said, "Modularization is like Mother Teresa", and I said, "Treat variables with respect: they are your program's prized possessions."

During the session, we also drove across the message that in the industry, there is more to a project than just coding. We spoke of

  • the benefits of using IDEs
  • how we write unit tests (the students saw value in what we said and asked for examples of how to write unit tests, which we thankfully had)
  • basic concepts of version control and tools like Subversion and Git (to keep it at a level they could understand we paralleled the concept to "undo till infinity" and "many people eating off the same plate at the same time")
  • the idea of "refactoring" code into something more expressive
  • project conventions, especially those around naming
  • and more

Given the interest than some of the students showed (out of the 180 that attended), I believe we gave them something to think about and to take forward. Even the teachers and lab instructors who sat for the session felt the same. I guess the humour and energy that Sid and I were able to infuse in our session helped us connect. Sid and I had a fun time delivering the "lecture" as a pair, where we complemented each other, and also presented a balanced view about the topics we touched. Pairing in a session helps invoke an informal discussion-oriented atmosphere.

The two of us have been invited to do a similar session again next semester after the students have done some OOP.

I'm encouraged by such initiatives and hope that it'll lead to better-prepared programmers joining the industry fresh out of college.

Comments

Talk
Tags: technology:events, technology:thoughtworks, personal, general:education Last modified 04:35 Tue, 21 Oct 2008 by AmanKing. Accessed 523 times Children What Links Here share Share Except where expressly noted, this work is licensed under a Creative Commons License.