My first programming module CS1101S Programming Methodology has officially started this week, this is supposed to a parallel module of CS1010 for people with good mathematical skills and wish to challenge themselves by learning more than just basics.
And indeed it is.
Level of commitment
The lecturer Prof Martin is a nice guy and all the TAs and are passionate about this course. Although we only have 94 students in total, the level of commitment displayed by the students has far suppressed any other modules that I take. The IVLE forum for the course already has more than 100 posts before week 1 ends.
I feel that this is the core of this module. JFDI Academy is an online judging system specifically designed for this module. However, unlike other judging systems, It is more like an online RPG game portal.
You can level up by doing missions that requires you write a program. There are more exciting side-quests and contests for you to challenge your skills and prove yourself. And you have done something remarkable, it will be recorded in the achievement system. To make the game more competitive, there are leader-boards for level and achievement. I can totally foresee that many of us will be striving to reach the top of the leader-board for the glory and pride.
This whole competitive and engaging environment makes me feel that I have definitely made the right choice to take CS1101S instead of CS1010.
One thing that I learnt from the week of this module is the idea of abstraction, i.e. recycling the previous results(functions) and make the later process easier. This is supposed to be a fundamental idea in programming but somehow I have not been paying enough attention to this before.
For instance, in mission 2 part 3, we should utilize the previous simple function in part 2 to get the more sophisticated function for part 3, however, I did not think of that and went straight to rely on my experience and wrote the function for part 3 from scratch. So I guess I am not good in making use of abstraction and I still have a long way to go in learning good habits of programming.
There are many other things in my agenda for this week.
I still study behaviors of groups of people, as a personal hobby. It gets interesting when I can predict their reactions towards certain events. I am also trying to identify traits that make individuals either suitable or unsuitable for certain groups, this is so far done on a case-by-case basis as each person is so different from another in terms of background, involvements in various activities and personality.