Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Institute of Business Administration Karachi

School of Mathematics and Computer Science

CSE 450: Application Development for Mobile Devices


(Tentative Course Outline and Syllabus)

Fall 2023
Institute of Business Administration, Karachi
School of Mathematics and Computer Science

Course Outline

Course title Application Development for Mobile Devices

Class timings 11:30 am to 12:45 am (Friday - Saturday)

Classroom MAC Lab (City Campus)

Instructor Muhammad Adil Saleem

Instructor email adilsaleem@iba.edu.pk

Office Robotics Lab, Ground floor, Tabba Building, Main Campus

Office hours On appointment

Teaching assistant -

Teaching assistant email -

Course Objective

• To cultivate a comprehensive understanding of iOS app development using the Swift programming
language.
• To proficiently navigate the Swift programming language, encompassing its syntax, data types, control
structures, and modularization techniques, setting the foundation for effective iOS app development.
• To unravel the art of crafting user interfaces using UIKit, unravelling the mechanisms behind Interface
Builder, Auto Layout, and responsive design principles to create visually appealing and functional user
experiences.
• To foster a problem-solving mindset in the context of iOS app development, encouraging students to
tackle complex challenges by employing a combination of Swift skills, creative thinking, and resourceful
exploration.

Program Learning Outcomes

• PLO-1. Design and Develop Solution – Students will showcase their creativity and problem-solving skills
by designing and implementing innovative iOS applications that incorporate advanced features and
optional frameworks where applicable, reflecting their ability to create sophisticated solutions.
• PLO-2. Modern Tool Usage - Create, select, adapt, and apply appropriate techniques, resources, and
modern computing tools to complex computing activities, with an understanding of the limitations.
• PLO-3. Individual and Teamwork - Function effectively as an individual and as a member or leader in
diverse teams to develop an iOS application.
Course Learning Objectives

• CLO1 (Create): Translate conceptual ideas into well-defined project proposals that articulate the vision,
objectives, and potential impact of the proposed application.
• CLO2 (Apply): Effectively employ modern computing techniques, including Swift programming, UIKit,
and frameworks such as SwiftUI and CoreData, in the development of iOS applications.
• CLO3 (Communicate): Communicate ideas, requirements, and progress effectively through written,
verbal, and visual means within the team.

CLO to PLO mapping

PLO-1 PLO-2 PLO-3


CLO-1 ✔
CLO-2 ✔
CLO-3 ✔

Assessments

CLO-1: Assessment of the application developed (thrice during various stages of the project lifecycle)

1. Ideation
2. Development
3. Completion

CLO-2: Tool usage for:

1. Development
2. Testing
3. Source Control

CLO-3:

1. For team – Assessment using commit history for the final project
2. For individual – Assignments’ completion above set threshold

Learning Strategies

• Demonstrations
• Lectures
• Assignments and Quizzes
• Final Project
Reference Books / Materials

• The Swift Programming Language Book (https://docs.swift.org/swift-book/documentation/the-swift-


programming-language/)
• Apple’s Human Interface Guidelines (https://developer.apple.com/design/human-interface-guidelines/)
• UIKit Documentation (https://developer.apple.com/documentation/uikit)

Assessment Strategy

Assessment Method Percentage


Final Exam 15%
Midterm Exam 10%
Project 50%
Assignments 15%
Quiz/CP 10%

• Class participation includes weekly quizzes (best n-of-m)


• Assignments will be assigned individually
• Final project will be assigned to a group

Make up policy

IBA make up policy applies.

Attendance policy

IBA attendance policy applies

Weekly breakdown of classes

Week Topics

Introduction
• Navigating Xcode
• Swift Playground
1
• Assets, PLists and App Delegate
• Development Lifecycle
• Simulator
Swift Basics
2
• Data Types
• Loops
• Control Flow
• Collections
• Functions
• Optionals
• Enumerations
• Closures
• Classes & Structs
More Swift
• Extensions
• Protocols
3 • Generics
• Opaque Types
• Access Control
• Memory Safety and Automatic Reference Counting
Creating Layouts
• Storyboard
4
• Layout Constraints
• AutoLayout
UIKit
• Labels
• Text field and Text views
5
• Images
• Switch
• IBOutlets and IBActions
App Architecture
• Model View Controller (MVC)
6
• ViewController and ViewController Lifecycle
• NavigationController and other view controllers
Handling errors
• Source Control
7 • Try, catch and defer
• Debugging through XCode
• Testing using XCTest
Displaying multiple items
• ScrollView
8 • TableView
• CollectionView
• StackView
9 Common iOS Design Patterns
• Delegate Pattern
• Singleton Pattern
• Observer Pattern
Concurrency
• Grand Central Dispatch
10
• Animations
• Completion Handler
External Dependencies
• XCWorkspace
11
• Cocoapods
• Custom Views
Accessing the web
• Networking
12
• Data and Codable
• Core Data (optional)
Declarative iOS
13
• Swift UI (optional)
Miscellaneous
• File Manager
• Notifications
14
• Test Flight
• Other Core Libraries (optional)
• Firebase (optional)
Presentations
15 • Guest Lectures
• Project Presentation

You might also like