Accessibility Skip to Global Navigation Skip to Local Navigation Skip to Content Skip to Search Skip to Site Map Menu

COSC346 Object-oriented Programming and User Interfaces

Extended use of object-oriented programming, including class hierarchies, use of libraries, and the development of suitable user interfaces.

In this paper students will learn about Object-Oriented Programming and User Interfaces. Although the ideas apply across platforms, there will be a focus on software development for the Mac. We will be using Swift and the Xcode development environment. We will learn how to use the Foundation Framework for general purpose programming and the Application Kit Framework for application development. Along the way we will cover object-oriented design and user interface guidelines. At the end of the paper you should understand how to write object-oriented code, why it is good for graphical user interfaces and how to write and design applications for OS X on the Mac.

Paper title Object-oriented Programming and User Interfaces
Paper code COSC346
Subject Computer Science
EFTS 0.1500
Points 18 points
Teaching period Second Semester
Domestic Tuition Fees (NZD) $1,038.45
International Tuition Fees (NZD) $4,492.80

^ Top of page

COSC 242
Schedule C
Arts and Music, Science
Computer Science Adviser
Teaching staff
Lecturer: Dr David Eyers and Dr Stefanie Zollmann
Paper Structure
This paper is about design as it applies to user interfaces and object-oriented programs. For object-oriented programming, we will cover the design and analysis of object-oriented systems and the fundamental topics in object oriented programming (inheritance, polymorphism, design patterns, etc). For user interfaces, topics will include types of user interface, cognitive approaches to interface design, user profiling, interface design methodology and user interface evaluation.

  • Two 20% programming assignments 40%
  • Final exam 60%
Teaching Arrangements
There are two 1-hour lectures and one 2-hour lab per week, plus occasional tutorials as needed.
Jonathon Manning, Paris Buttfield-Addison, Tim Nugent (2014), Swift Development with Cocoa, O'Reilly Media, Inc.

Timothy Budd (2002), Object-Oriented Programming (3rd edition) Addison-Wesley.

Aaron Hillegass and Adam Preble, Cocoa Programming for Mac OS X, 4th edition, Addison-Wesley.

Jenifer Tidwell (2006), Designing Interfaces O'Reilly Media, Inc.
Course outline
View the course outline for COSC 346
Graduate Attributes Emphasised
Interdisciplinary perspective, Lifelong learning, Scholarship, Communication, Critical thinking, Information literacy, Research, Self-motivation.
View more information about Otago's graduate attributes.
Learning Outcomes
This paper will enable students to:
  • Program in Swift and make use of the Foundation framework and the AppKit framework for building OSX applications
  • Understand the differences between different object-oriented languages and understand that there is no "best" language
  • Understand the strengths and weaknesses of different object-oriented languages and techniques
  • Understand the fundamental techniques used in object-oriented design and programming, including: polymorphism, inheritance, design patterns, coupling and cohesion
  • Appreciate the usefulness of the model-view-controller paradigm, particularly within the development of software that provides a graphical user interface
  • Apply design principles to identify key positive or negative facets of user interfaces
  • Develop software that presents a graphical user interface using the MacOS Cocoa API

^ Top of page


Second Semester

Teaching method
This paper is taught On Campus
Learning management system

Computer Lab

Stream Days Times Weeks
Attend one stream from
Y1 Wednesday 10:00-11:50 28-34, 36-41
Y2 Wednesday 12:00-13:50 28-34, 36-41


Stream Days Times Weeks
L1 Tuesday 13:00-13:50 28-34, 36-41
Thursday 13:00-13:50 28-34, 36-41


Stream Days Times Weeks
Attend one stream from
T1 Tuesday 10:00-10:50 28-34, 36-41
T2 Friday 10:00-10:50 28-34, 36-41