iProgramming for Creative Minds — Fall 2024


iProgramming for Creative Minds provides an introduction to programming for mobile and wearable devices with touch-sensitive surfaces, gyroscopes, cameras, and biometric interfaces. Typical examples of such devices are mobile phones (e.g., iPhone), portable multi-media devices (e.g., iPad), and wearable devices (e.g., Apple watch and Apple Vision Pro). The development platform in this course will primarily be Apple’s Software Development Kits (iOS, iPadOS, macOS, tvOS, visionOS, watchOS), with most applications written in Swift, Apple’s object-oriented programming language. The target devices for your programming projects will be the iPad, iPhone, Apple watch, and Apple Vision Pro (if available in Canada by Fall 2024).

You will learn how to program applications for these mobile “i-devices”, with focus on the special needs and constraints of mobile and wearable computing, such as reduced screen size, battery power management, graphics, touch-based user interfaces, sensors, GPS and map data integration, and gesture recognition. Beyond code development, key aspects of this course are user interface design, app evaluation, app marketing, and first steps towards commercializing your app.

This course has lectures, invited presentations, app demonstrations, peer evaluation sessions, and student presentation components. The course is mostly focused on team-driven programming projects, through which you learn how to develop innovative solutions for applications on touch interfaces with mobile devices, how to come up with marketing strategies for apps, and how to prepare your app for submission to the Apple App Store.

Note: Most programming for the Apple devices can and will be performed on software simulators. However, students who possess an iPad, iPhone, or Apple watch are encouraged to use their own devices.

To get the most out of this course, it is strongly recommended that you have your own Mac (e.g., MacBook, iMac). A limited number of Macs might be available to borrow for this course.

Prerequisites:  CPSC 217/219 or CPSC 231/233 and consent of instructor; recommended: CPSC 333 or equivalent software engineering course

If there is enough interest, a continuation of this course might be offered in the following Winter term. See this site for more information: Advanced iOS Programming.

Here is a happy moment captured at the end of term of a previous version of CPSC 575:

Christian Jacob (seated, left) and PhD student Timothy Davison (standing, on far left) with student teams and their apps on display in the background. Photo by Riley Brandt, University of Calgary

If you are interested in this course or want to sign up for it, please fill out the following form: