Course Outline 2012 (requires valid CSE login)
(I like the fact that Tuesday runs from 10am through 2pm. We can get a lot done in that time.)
When I started formally teaching Objective-C back in 2004, I chose it because it referred to object oriented design patterns that enabled students to quickly gain confidence in OO programming and then be able to focus on designing the user experience. Back then we couldn't predict that it would be the same technology that is at the heart of iOS development.
In 2012, we can't talk about designing user experience without considering mobility and gesture-based interaction. So I'm working through the ambitious goal of how we will explore both desktop and mobile development in COMP4511 this semester.
4511 not only gave me an appreciation for how real people use software in the real world, but changed the my career path. From a potential career of writing code and debugging day on day, I now get to work in a dynamic, creative environment where my job is to create solutions and make sure they work in the most user friendly way. 4511 helps to bridge that gap between designing for the requirements and designing for the user. It's a must-do course even if you want to pursue hardcore code development. You never know - it might be the precursor to that exciting first job ... it was for me.
COMP4511 is the fusion of the skills that we learn in Human Computer Interaction and Object Oriented design. In this hands on course you build two applications from the ground up. The first is an application with text, tables and buttons, as a minimum. This introduction helps you to familiarise yourself with the Objective-C and supporting frameworks. The second is an interactive application that incorporates vector graphics, mouse, keyboard and/or touch interaction plus support for copy, cut paste and undo. But given the stronger focus on iOS this semester, this won't be restricted to this set of parameters.
(Currently I'm talking with a commercial organisation about access to a web service on which we might build a desktop or mobile user experience. Early days on this, can't confirm yet if it will go ahead. Trying to fit this into a 12 week schedule is however a challenge and is really determined by the motivation, enthusiasm, time and skill of our class members).
The process doesn't start with coding, it starts with an understanding your users. You develop personas of your target audience and work through the design issues: What information are they going to be dealing with? What are the workflows? How are they going to interact with the application? What is the application going to look like?
As you learned in Human Computer Interaction, you have to conceptualise your design on paper and evaluate prototypes with users. Then you start on the design of your system, not focussing on just the code but also the object oriented design. You will build the code implementation iterating through both your object oriented design and your user interface design.
The real insights come when we usability test your application. Do your users really understand how to use your application? Does it work the way that they expect - not what you as a programmer expect. That's the challenge. What is the difference between a bug and a design flaw? Proper evaluation techniques will help you uncover both.
We teach a process that is relevant to industry. Preparing students for the real world challenges of user interface design. And face it, user interfaces are everywhere.
We will be running some combined activities with the School of Industrial Design, which in in the past has a valuable opportunity to understand user centred design from a different perspective. This also provides an opportunity to network with other students who are passionate about design.
Our students have taken the COMP4511 experience out into industry and are working for usability companies, media organisations, software development houses, telecommunications organisations and web companies. They are making the user centred design difference. They are playing on the world stage, not just locally.
The process is not just about putting buttons and text on screen. COMP3511 only touched the surface of what user interface design is all about. Are you up for the challenge of designing graphical user interfaces?
COMP3511 Human Computer Interaction is a pre-requisite and you need a credit or better (you are expected to start design, prototyping and designing usability tests in the first week). COMP4001 Object Oriented System Development has been removed as a co-requisite given the feedback from former students. You should have completed COMP2911 which introduces you to object oriented techniques, UML and design patterns.