Wednesday, April 11, 2007

State of the Course 1.25

I’m half way thru the first semester, second year of my university course (B.Sc. Professional Software Development) at Swinburne University, so I thought I would outline some of my thoughts on the subjects we’re covering.

Disclaimer: Aside from marrying my wife, selecting the PSD program is the best decision I ever made. Any and all critiques must be viewed in this context. Even a giant can benefit from “Standing up straight”.

Subject: Data Structures and Patterns
The pace started off a little frantic, but it’s beginning to find a good rhythm.
The material is solid, could use more comprehensive implementation examples of the patterns.

One thing that has impressed me about the lecturer, you get the feeling he takes care to keep his finger on the pulse of his class. I have him for another class and this same attention towards the overall state of his students is evident there as well. It’s refreshing, it tells me his head is in the game, at times a teacher can seem to be just blindly presenting information with little or no regard for their audience.

Subject: Object Oriented Programming in C++
Having already taken a subject on OOP, with C#, the design principles are familiar ground (This subject was a prerequisite for the games programming subject.). This is presented by the same lecturer as Data Structures and Patterns, and for the most part the academic situation is identical.

With that in mind my focus is primarily on the C++ language. Where C# and Java are so close in syntax and structure, almost annoyingly so, C++ seems to me a different animal altogether. There’s more moving parts here, offering greater complexity and flexibility proportionally. We’ve only scratched the surface so far and I’m looking forward to the challenges ahead. I reckon if I can get proficient at C++ it’s all down hill from there.

There is one technique we’ve been presented that seems powerful but disturbing, overloading the extraction and insertion operators. It gives you a highly adaptable way to present and set attributes of an object. However, when I use it I feel dirty, like I’m bypassing the get and set functions and violating encapsulation, or at least making a mockery of it.

Subject: Software Development Practices
This is a fascinating subject, very interactive and fluid. It primarily presents a technique for designing an application from the context of a client’s narrative. So far the technique seems comprehensive and effective, if slightly unrefined.

Some of the areas of analysis can bleed together; the ambiguity can bog down the process. In the end the finalized assessment does seem to give you a good base of operation from which you can launch your project.

Subject: Data Communications and Security
The actual subject matter is great. The lecturer is very enthusiastic about teaching, knowledgeable, and dedicated to the cause. However, the desire to express the entirety of a subject can sometimes obscure the fundamentals.

As Frederick the Great said “He who defends everything defends nothing”.

Two points:
1. If you find yourself consistently having to “speed up” to try and meet the objectives of a presentation, it may mean that the overall scope is too wide or too deep.

2. This is really subjective and just my personal opinion. A lab session should have a single objective that can be accomplished within the time span of that session (and maybe factor in some time for discussion and reflection). You can have some supplementary objectives for a student to “try at home”, but I honestly think they should walk away from the session having accomplished something.


The Professional Software Development course continues to deliver. I can honestly say I have never once regretted my decision to make it my number one choice. I highly recommend anyone considering their university options for a career in software to put any curriculum toe to toe with the PSD degree program.

The method for teaching software development should reflect the characteristics of software development. Creative, Structured, Challenging, Fun.

No comments: