[frog] M206

Computing: an object-oriented approach . . .

... or, How I went from a tadpole to frog in eight months.

The first few weeks I found the course work rather woolly and there was no immediate start to hands-on programming as there was in MT262. In fact, it was quite a large adjustment to make. However, as the weeks progressed I found I enjoyed Smalltalk programming (although not as much as C++) even though there is a lot of debate in the student conferences about how useful Smalltalk really is. Smalltalk is a true Object-oriented language, and as such is excellent for getting across those principles. However, I feel it may be replaced by a Java course in future years. At the moment of writing, M206 has another 2 years to run before being replaced!

The course is split into seven blocks, each consisting of a number of chapters (there are 53 chapters in total, eleven of which are TV programs). The Blocks are entitled as follows:

  • Block I - Foundations
  • Block II - Basic Smalltalk
  • Block III - Smalltalk Classes
  • Block IV - Collections
  • Block V - Software Development: Modelling a System
  • Block VI - Software Development: Detailed Design and Implementation
  • Block VII - Computing and Networks

M206 also has TV programs associated with it, which are non- examinable. I have seen most of these so far. Notes and transcripts are given on the M206 pages and most of the programs have been interesting. Just remember to set your video!

Block I

To quote from the M206 website: " Block I introduces a range of ideas and concepts that are central to the course - ideas and concepts in object-oriented technology, human-computer interaction and network computing for example."

There are eight chapters in Block I - it isn't until chapter 4 that you encounter Learning Works, the user interface devised to teach Smalltalk. Chapter 5 is concerned with human-computer interaction, and introduces three design concepts: Visibility, affordance and feedback. It may take awhile to get used to these terms and what they mean. You're given some practice in the Learning Book sessions, and later on will have to criticise a user-interface design using the concepts learned here.

Chapter 6 introduces object concepts, so it is here that you begin to be introduced to Smalltalk and find out what objects, messages and classes are, and you are introduced to Frogs, Toads and Hoverfrogs in the Learning Book. These are the frogs about which you have probably heard so much! A lot of people seem to be irritated or annoyed by the amphibians, but they amuse me, and I've found the Learning Book sessions essential to understanding the long-winded explanations in the course material. The amphibians are used to get across the ideas of classes and objects, and how messages are sent. There is a visual World where you can see icons representing the frogs and how they can be moved about in the World by sending them messages, or have their colour changed, etc.

Chapter 8 introduces the Bank Account class, something more realistic for those amongst you who prefer that.

Block II

Chapters 9 and 10 add more concepts about Smalltalk and it can become rather confusing getting to grips with all the terminology. Accessor pairs, reference variables, assignment, for example. Don't worry if it doesn't all go in on the first (or second) read - I think it takes time to assimilate such ideas. Also, I don't believe it is necessary to make copious notes. I did so for MT262 (C++ programming) but in the end didn't find them useful. Practice is what is needed, so that you become ever more familiar with the ideas.

Chapter 12 is the first experience of group-work in the course. It is your first chance to discuss software issues with others in your online tutorial group. In Learning Book 12 you'll find an example of some software which you must criticise. You'll post your findings to the group conference where others may then comment on what you have said (and you'll comment on other people's postings, and so on).

Chapters 13 to 16 expand your knowledge of Smalltalk. The work becomes more difficult and you need plenty of practice make the principles sink in.

Block III

This Block takes one up to chapter 22. More new concepts were introduced, so programming is more challenging. Chapter 21 in particular was rather dry as it described all the classes and subclasses in the Magnitude hierarchy, which is where Integers, Real numbers, Fractions, etc are located. The frogs are still very much in evidence in the LB - no escape from them as yet!

Block IV

The first chapter (23) concerns collections of objects: sets and dictionaries to name two new classes. There is a lot to take in and I've printed out a section of the LB plus examples, which is a first. Chapter 24 describes Arrays and Strings (which are fixed size collections), Chapter 26 talks about ordered and sorted collections. By the way, Chapter is a TV program.

Chapter 27 is mainly optional, in the sense that there are parts of it you can do at a later date. As we were meant to study both chapters 26 and 27 in one week (adding up to an estimated 26 hours of study!) I opted for the optional parts only. These covered testing programs to see if they work according to their specifications, and some other implementation issues.

Chapter 28 is the second Group Project, which is now half-way through, and Chapter 29 is a revision chapter on the Collection classes. The crazy thing is that you begin work on TMA 05 Q.1 (the group work question) before you've even finished TMA 04!

Block V

Well, talk about an abrupt change of direction! You can put Learning Works away for most of this Block, as it is all paper-based work. This may well be a relief for some of you. This Block concerns Software Design and Analysis, and commences with what many have found to be a rather dry and indigestible chapter where UML (Unified Modelling Language) is introduced. The Hospital Admissions and Treatment system and the Video Library system make their first appearance. I have a feeling they will be around for quite a lot of the remainder of this course.

At first I found this Block to be difficult and not very inspiring. However, once I began to do the exercises and figure out what was actually going on, my understanding began to improve and I am gradually getting into it more and (amazingly!) beginning to enjoy it. So, don't despair if at first you hate this Block!

Block VI

This Block still continues on with Analysis and Design. By the last chapter you get to implement the HAT system you've been working on for the past month or so - there's some satisfaction to see how it comes together at last. AND you get to use Learning Works again after quite a break, which is good after all that theory.

There are a lot of concepts to understand and you really shouldn't expect to master it, as that would take much more practice and time. I think the object of this part of the course (no pun intended!) is that you should gain an understanding of the stages involved in designing a big software application. Having said that, you'll still need to master enough of it to do an initial structural model, as this is what the third (and last) Group Project is about.

Block VII

Well, this part of the course is quite different from what has gone before. The course book was taken down from the shelf and dusted off, not having been looked at since the first weeks of the course! This block is about network computing, the Internet, databases and security. There's also a tiny section on files. Three TV programs, too, so the workload is considerably lighter. I enjoyed this last block of the course, as it was a welcome relief from the A & D that preceded it.

TMAs

I have completed all seven TMAs. All but one consisted of 4 questions which are made up of many sub-questions. You will need to use Learning Works for most of the TMA questions (but not for Block V or VII). My policy has always been to study the chapter then to complete the relevant TMA question while it's fresh in the mind. Don't forget to make use of the First Class conferences if you've got questions about Smalltalk problems. Many other students will be having similar problems and often can help you out. Or you can help some of them out!

TMA 03 - the going gets tough.

TMA 03 is the first TMA to have a group work component. This consists of, once again, criticising a piece of software according to its visibility, affordance and feedback criteria. This work is posted to a special conference but also is included in your TMA. Next you must read other people's postings and comment on 3 criticisms and state whether you agree/partly agree/disagree and why, with supporting evidence. This must be included in your TMA. The group work is the easy part of this TMA!

The remaining 2 questions of this TMA were difficult for many people - so much so, that for some it has been too much and they have dropped out of the course. Sad, really, as this is a central course in the computing and IT degree, so giving it up if you had planned to do this degree must be heartbreaking. I am resolved to carry on, no matter what the next TMA throws at us, and I believe TMA 04 is the hardest!!

TMA 04 - hardest yet?

Well, I've just finished this TMA and found most of it acceptable. However, I did get hung up on one part of a question which has taken me days to sort out! Overall I found this TMA easier than the last, but still time-consuming. I have now received my marked TMA and was pleasantly surprised at the result - I am averaging 88 percent so far, which is pretty respectable.

TMA 05 - the going gets easier??

I only found one question tricky. The first question was the second Group Project (straightforward; just remember to post by the required deadlines). The last two questions were short and relatively painless. Perhaps the worst is over!

TMA 06 - the one with design and analysis

Not bad at all IMHO. However, not everyone found it straightforward. The four questions all concerned aspects of design and analysis, with some Smalltalk coding required here and there. Also necessary is to be able to draw Class Diagrams which can be a bit tricky. There are various resources available to help you draw these more easily, or instructions as to how to do it in Word (provided on the Course website).

TMA 07 - last one!

Half the marks are for the Group Project which involves formulating an initial structural model based on the negotiated statement of requirements (NSR) given. Before you start thinking - hey, how can I do all that?? bear in mind this is a GROUP project and you work with other people in your tutorial group to arrive at the solution. There are only 2 other questions on the TMA which are based on the course book, and I found them pretty easy to do. A nice TMA to finish up on.

Revision

A fellow student on this course, Tammy Heywood, has created a revision Learning Book which contains many quiz questions. You can aid your revision by downloading this excellent new LB from her site.  Tammy's Quiz.  There are also other sites (see links in side bar) which have many questions and answers available for practice. All I can say is, get as much practice in as possible!

The Dreaded Exam!

Done at last! The paper was divided into 45 multiple choice questions (which should take around 90 mins) and then Part 2 which had a Software section (you must do one out of the two questions) and an Analysis & Design section (again you must do one out of two questions). This second section again should take about 90 mins. I found the paper reasonable, although there were quite a few complaints in regional conferences about the level of difficulty. This year's exam took a new format from previous years, so was almost certainly going to be a tough one. The results came through on 18th December: I have passed with a Grade 2 pass, so my efforts have paid off! Good luck to all of you in future.

TOP