Tuesday, January 19, 2010

The Paradox of Simplicity

CS3216 evolves over time.

We have had a lecture on "Principles of Software Engineering" since the first year.

The first year, it was guest lecture by Prof Stan Jarzabek. It was a good lecture -- but the non-programmers complained that it was too technical and they were completely lost.

Last year, Prof Stan was busy and so I did an abbreviated version of the lecture followed by a sharing session by three students, Zi Han, Wei Man and Justin. The sharing session was quite well-received but there were still complaints that the lecture was too technical.

So when it came to this year, I thought about what we should do and decided to keep the sharing session but do the lecture differently. Thanks Zi Han, Wei Man and Justin for coming down yesterday to do the sharing session.

What I had come to realize was that it's not very meaningful to cover the principles of software engineering that students are not likely to relate to in CS3216.

Software engineering is a complicated process and mostly relates to big systems. In CS3216, the focus is more on ideas and ideas, and while it would be preferable if students produce world-class and easily maintainable code, we have to be realistic about what can be accomplished in 13 weeks.

In this light, I decided to simplify and to focus on what is most likely relevant to the students here and now. I decided that it is important to talk about stuff that the students can relate to immediately even in their first assignment.

The simplification is evident on the number of principles we discussed in the lectures. Two years ago, there were six principles; last year, there were five; this year, I only talked about three of them. So much for dumbing down.

Some students seem to think that the stuff I mentioned: (i) modularity, (ii) abstraction and (iii) design for change are quite straightforward -- and they are right. It's mostly common sense actually.

The irony of life however is that many things are pretty simple and straightforward. Strangely enough, people often fail to do what is simple and straightforward.

For example, the following lecture on Time Management by Randy Pausch says pretty obvious things:

How many people can actually do it? Personally, I can't even manage some of those things.

In this sad state of affairs however is opportunity. Basically, this suggests that many people already know how to significantly improve their lives --- they just have to DO IT. :-)

Truthfully, one of the reasons why the lecture was the way it was is because of what I'd heard about how some of the groups are doing -- some groups were struggling to distribute the work, some groups didn't know how to start and others didn't know what to do with the non-programmers. It's a learning process for everyone. :-)

Sleep matters. Finally, I'm not always serious about everything I said in class. While it is true that people can do a lot more things if they don't sleep, I am not advocating that students should deprive themselves of sleep.

In fact, research has shown, and as Li Yen has kindly highlighted, sleep deprivation hurts performance.

In fact, it's more than just sleep. Some amount of balance and moderation is necessary for life in general. Many people focus exclusively on their careers to the detriment of the other parts of their lives (family, health, friends, etc.).

While I don't believe in well-roundedness and advocate focussing on developing one's strengths, I do believe that some amount of balance is necessary in leading our lives.

Our lives are pretty short. I should know. I actually feel quite old already. :-)

8 comments:

  1. "Sleep matters. Finally, I'm not always serious about everything I said in class. While it is true that people can do a lot more things if they don't sleep, I am not advocating that students should deprive themselves of sleep.

    In fact, research has shown, and as Li Yen has kindly highlighted, sleep deprivation hurts performance."

    I disagree. The past 40 hours have been one of the most creative and energetic periods of my life, and undoubtedly the most work-intensive part of my uni life so far. my performance actually shot through the roof.

    Of cos, if it's prolonged it will not be that good, but extreme amounts of stress in a short period of time can actually be more powerful than anything.

    ReplyDelete
  2. @Laurence,

    You sound a bit delirious. :-)

    ReplyDelete
  3. Man who sleeps 7 hours a day live longer.
    Man who sleeps 4 hours a day stay awake longer.

    ReplyDelete
  4. @prof:
    Taken from google dictionary
    Someone who is delirious is extremely excited and happy.

    Yeah, I think I am delirious =P
    I think I'm that all the time

    ReplyDelete
  5. I agree with the prof on sleep though. Sleep is important because you can't go on hyperdrive forever - 40 hours is possible, 48 or even more of soaring productivity is possible, but if you don't make up for that with proper amounts of sleep at some point I'm quite convinced that your overall performance on average will suffer. Also, I don't agree with people who sleep for 4 hours for extended periods of time because they want to get more done, because I'm quite convinced that it will eventually wear down on you, and your efficiency and creativity will really drop. It's better to work x hours at 100% efficiency than 2x hours at 40% efficiency.

    ReplyDelete
  6. "Man who sleeps 7 hours a day live longer.
    Man who sleeps 4 hours a day stay awake longer."

    Staying awake longer does not mean the person does more work or is more productive than the one who sleeps more

    ReplyDelete
  7. Hi Prof,
    My friend introduced to me a book called "Obvious Adams", which highlights the problems you mentioned - We often miss the obvious. It's told from a fictional character called Obvious Adams, who's kind of like a business consultant. His role is very simple - Make no assumptions about the problem, analyse the problem, point out the obvious, and how to solve it. Very short book, only 30 mins reading for your reading speed.

    Hmmm... I'm personally firmly in the camp of adequate sleep given work requirements. Too old already =) Maximize productivity and effectiveness..

    ReplyDelete
  8. @Ryan,

    Can you bring the book on Saturday? I will read it while you are going through the Workshop and have it returned to you before the day is over. :-)

    ReplyDelete