New Course Proposal : User Interface Software Design



Wed May 28 2003


Course Title: User Interface Software Design

Proposer: Daniel Woo



Why is the new course being proposed?

At present we do not have a course that extends what has been taught Human Computer Interaction (COMP3511/COMP9511), nor do we have a course that specifically concentrates on user interface design, programming and evaluation in an integrated manner. Given the standard of user interfaces seen in many fourth year thesis projects and comments from recent graduates, it is clear that many students do not have an appreciation for user interface design and implementation issues.


Academic Objectives

- Extend knowledge presented in Human Computer Interaction (COMP3511/9511) into applied skills to implement software systems that are predominantly graphically based

- Understand the process of developing user interfaces from conceptualisation through to implementation

- Reinforce the notion of design before implementation.

- Understand the role of measuring and logging in order to quantify user interaction performance. This includes the introduction of scientific method to interface evaluation.

- In depth understanding of how windowing systems, event loops, notifications, messaging relate to the design of user interface software.

- Exposure to real design tools for generating user interfaces.

- Practical use of software development tools cvs, gdb, compilers.

- Internationalisation of software

- Introduction to collaborative software design (computer supported co-operative work).

- Awareness of other issues such as accessibility, speech recognition and design for small devices.Use of graphics and multimedia in applications.


Which programs/stage(s) does it serve?

Level 4.


What proportion of students do you expect to come from which program?

Percentage-wise the enrolments would be similar to current undergraduate enrolments for COMP3511. Unlike COMP3511, fewer external Faculty enrolments would be expected given the programming pre-requisites.


Why can the same objectives not be achieved with existing courses?

Human Computer Interaction provides and introduction to the user centred design process is intended not to be an in-depth software development course.


Given the current amalgamation of COMP3511 and COMP9511, the programming experience of the postgraduates is not of a level suitable for this course.


It would be recommended that this course be a partner course to courses that require students to implement user interfaces. The principles proposed here should be adopted in all other courses that are involved with user interface implementation.



Human Computer Interaction introduces students to the principles and process of user centred design and raises their awareness to other multidisciplinary aspects of software development. It does not cover in depth software development of user interfaces.



Some overlap with COM3141 (eg. Qt GUI tools) but very different underlying objectives.


Stakeholders and Consultation

Who are the potential stakeholders, who was consulted about the proposal (inside the School as well as outside), what was the result of that consultation?


School Office - Chu

Database design - jas

Web Databases - Boualem

Object Oriented - John Potter

Graphics - Tim Lambert

Multi-language applications - John Plaice

Thesis - Steve Matheson

Postgraduate implications - jas/billw

Software Engineering - Ken Robinson

Java and Internet Programming - Nandan Parameswaran

Computer Systems - Gernot

CSG - John Albani, Chris Petrov

Ethics (user testing) Arthur Ramer

Software Construction Andrew Taylor


HCI Tutors and Teaching Staff

Susan Wolfe

Nadine Marcus

Joji Mori

Daniel Heckenberg


Future student interest may come from:

Industrial Design

School of Media and Communication

Digital Media @ COFA


Preliminary discussions have been held with

Nadine Marcus

Joji Mori

Daniel Heckenberg

Gernot Heiser

John Shepherd


Current and former thesis students (trialling some content)

Recent graduates of HCI course

Enrolment Impacts

Likely enrolment (with justification), and impact on enrolments of other courses.

With COMP3511 enrolments on the increase we would anticipate reasonable enrolments


It is anticipated that the course will only take 20 students in the first intake in order to trial the course.


If 30% of undergraduate enrolments were to pursue this topic then we would see 75 enrolments.

Justification of Prerequisites (or lack thereof)

Human Computer Interaction COMP3511/COMP9511: students will need to understand the user centred design.


COMP1021: C Programming. Students will need to be able to good quality write software.


COMP2041 Software Construction. Underlying software development principles are taught in this subject.


Students with object oriented programming experience would be required. COMP4001 could be a co-requisite.


Any Courses this is Replacing, and Why?





Delivery and Assessment

Anything noteworthy about delivery mode, assessment (with justification).

In the first year, the course lectures will be delivered in the CHI Laboratory to explore the concept of interactive teaching methods. Limiting the enrolments initially to 20 in start up.


Part of the assessment proposed will be based on the results of usability testing of software.


Laboratory work will be assessable.


Students will complete a major multi-part user interface design project (possibly group) that demonstrates paper-based design, software development and user testing.



Handbook Entry



User Interface Software Design

Course contact: Daniel Woo

UOC 6 3Lec 2Lab S1


Concentrates on the design and software development of user interface software. Provides practical object oriented programming knowledge about the underlying elements of a graphical user interface and associated development process, extending principles introduced in Human Computer

Interaction. Based around the Aqua User Interface in Mac OS X. Special topics include: speech, accessibility and mobile devices.



Garfunkel and Mahoney, Building (2002) Cocoa Applications, O’Reilly and Associates Inc.

Preece, Rogers, Sharp (2002) , Interaction Design, John Wiley & Sons Inc.

Apple Computer Inc (2003), Aqua Human Interface Guidelines, available electronically.

Apple Computer Inc. (2002), The Objective-C Programming

Language, available electronically.


Apple Computer Inc., (2001), Learning Cocoa, O’Reilly and Associates Inc.


Shalloway and Trott (2002), Design Patterns Explained, Addison-Wesley.

Gamma, Helm, Johnson and Vlissides (1997), Design Patterns, Addison-Wesley.



Indicative syllabus / overview of contents (at a level of detail well beyond that of the handbook entry)


Introduction to User Interface Design

Review of HCI Principles

Software Development Tools

Introduction to Objective C

Foundation Libraries


Application of the Model View Controller Design Pattern


Windows & Views - The View Hierarchy

Event Loops

Messages and Notifications


Mouse and Keyboard Tracking

In depth Controls


In depth Objective C


Persistent Storage, Serialisation and Archiving

Representing data in Tables and Graphs


Measuring the User Interaction

Developing for Usability Testing






Case Studies of other GUI Environments


Special topics:

Designing for Accessibility

Speech recognition

Designing for smaller devices


Other References



Effect on School Resources:


Who is proposed to teach the proposed new course, and what impact would this have on their planned/current allocation?

Daniel Woo


Teaching resources could be an issue with HCI moving to two sessions per year in 2004.


What sort of tutorial component is proposed, if any?

Laboratory component proposed.

What is the likely impact on lab utilisation (this relates to assignment and project work as well as scheduled labs?


Will need to look at CHIL usage especially in light of HCI moving to 2 sessions. This should reduce the load on CHIL making room for the subject.


Any other resource needs? E.g. special print/disk quota, access to servers, access to special machines, special labs.

CHIL (Mac lab) will be used.


This course is proposed around Mac OS X and the Aqua User interface since it is quite mature having been derived from NeXTStep.

Increased home quota would be required for storing default Mac OS X home directory information.