Skip to content

CSC 496: iOS App Development

General Information

  • Semester: Spring 2025
  • Class Meeting Time: TR 9:30AM-10:45AM.

  • Instructor: Linh B. Ngo

  • Office: UNA 138
  • Office Hours:
    • Monday, Wednesday, Friday: 11:00AM - 11:45AM
    • Monday, Wednesday: 1:30PM - 2:45PM
    • Wednesday: 6:00PM - 7:00PM
  • Email: lngo AT wcupa DOT edu
  • Phone: 610-436-2595

Course Description

This course will focus on iOS development tools, basic programming concepts, and industry best practices. Building on this foundation, you’ll work through practical exercises, creating apps from scratch, and building the mindset of an app developer.

Learning Objectives

Course Student Learning Outcomes (CSLO)

  1. Understand fundamental concepts of iOS app development.
  2. Be able to develop iOS app.
  3. Understand the app life cycle.
  4. Understand the MVC pattern.

CS Program Objectives (CSPO):

  1. Be able to apply theory, techniques, and methodologies to create and/or maintain high quality computing systems that function effectively and reliably in the emerging and future information infrastructure (CSLO 1, 2, 3, 4).
  2. Be able to work in teams, demonstrate ethical professionalism in their work, and grow professionally while engaging in life-long learning (CSLO 1, 2).

CS/ABET Program Outcomes (ABET):

  1. ABET 1: Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions (CSLO 1).
  2. ABET 2: Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline (CSLO 2, 3).
  3. ABET 5: Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline (CSLO 2).

Required Learning Materials:

  • There is no textbook requirement for this class.
  • The Swift Programming Language
  • Reference Books: Ahmad Sahar, Swift Cookbook, ISBN 978-1839211195
  • A computer with MacOS which can connect to the Internet. We will use the iMacs in Room 147.

Assessments and Grading:

Method of Evaluation

Assessment % of Final Grade CSLO CSPO ABET
Labs 40% 1,2,3,4 1,2 1,2
Projects 40% 1,2,3,4 1,2 1,2,5
Class Participation 20% 1,2,3,4 1 5

Grade Scale:

Grade Quality Points Numeric Interpretation
A 4 100-93 Excellent
A- 3.67 92-90 -
B+ 3.33 89-87 Superior
B 3 86-83 -
B- 2.67 82-80 -
C+ 2.33 79-77 Average
C 2 76-73 -
C- 1.67 72-70 -
D+ 1.33 69-67 Below Average
D 1 66-63 -
D- 0.67 62-60 -
F 0 <= 60 Failure

Assessments:

  • Class participation: Being present means being on-time, handing in your assignments on time, and demonstrating effort and engagement with the class and group work.
  • Labs: Be able to work on in-class programming practices.
  • Projects: Be able to carry out an end-to-end development and deployment of a tinyML application on a microcontroller.

Lateness Policy:

Late assignments will be accepted for no penalty if a valid excuse is communicated to the instructor before the deadline. No credit for unexcused late assignments.

University Policies

Academic & Personal Integrity

It is the responsibility of each student to adhere to the university’s standards for academic integrity. Violations of academic integrity include any act that violates the rights of another student in academic work, that involves misrepresentation of your own work, or that disrupts the instruction of the course. Other violations include (but are not limited to): cheating on assignments or examinations; plagiarizing, which means copying any part of another’s work and/or using ideas of another and presenting them as one’s own without giving proper credit to the source; selling, purchasing, or exchanging of term papers; falsifying of information; and using your own work from one class to fulfill the assignment for another class without significant modification. Proof of academic misconduct can result in the automatic failure and removal from this course. For questions regarding Academic Integrity, the No-Grade Policy, Sexual Harassment, or the Student Code of Conduct, students are encouraged to refer to the Department Undergraduate Handbook, the Undergraduate Course Catalog, the Ram’s Eye View, or the University Website.

Accomodations for Students with Disabilities

West Chester University is committed to providing equitable access to the full WCU experience for Golden Rams of all abilities. Students should contact the Office of Educational Accessibility (OEA) to establish accommodations if they have had accommodations in the past or if they believe they may be eligible for accommodations due to a disability, whether or not it may be readily apparent. There is no deadline for disclosing to OEA or for requesting to use approved accommodations in a given course. However, accommodations can only be applied to future assignments or exams; that is, they can’t be applied retroactively. Please share your letter from OEA as soon as possible so that we can discuss accommodations. If you have concerns related to disability discrimination, please contact the university’s ADA Coordinator in the Office of Diversity, Equity, and Inclusion or 610-436-2433

The University’s Americans with Disabilities policy is available on the website. If you encounter an area of this course that is not accessible to you, please contact me.

University-Excused Absences Policy

Students are advised to carefully read and comply with the University-Excused Absences Policy, including absences for university-sanctioned events, contained in the WCU Undergraduate Catalog. In particular, please note that the responsibility for meeting academic requirements rests with the student, that this policy does not excuse students from completing required academic work, and that professors can require a fair alternative to attendance on those days that students must be absent from class in order to participate in a University-Sanctioned Event.

Reporting Incidents of Sexual Violence

West Chester University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to comply with the requirements of Title IX of the Education Amendments of 1972 and the University’s commitment to offering supportive measures in accordance with the new regulations issued under Title IX, the University requires faculty members to report incidents of sexual violence shared by students to the University's Title IX Coordinator. The only exceptions to the faculty member's reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred to the person designated in the University Protection of Minors Policy. Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence is set forth at the WCUPA Sexual Misconduct website.

Inclusive Learning Environment and Anti-Racist Statement

Diversity, equity, and inclusion are central to West Chester University’s mission as reflected in our Mission Statement, Values Statement, Vision Statement and Strategic Plan: Pathways to Student Success. We disavow racism and all actions that silence, threaten, or degrade historically marginalized groups in the U.S. We acknowledge that all members of this learning community may experience harm stemming from forms of oppression including but not limited to classism, ableism, heterosexism, sexism, Islamophobia, anti-Semitism, and xenophobia, and recognize that these forms of oppression are compounded by racism.

Our core commitment as an institution of higher education shapes our expectation for behavior within this learning community, which represents diverse individual beliefs, backgrounds, and experiences. Courteous and respectful behavior, interactions, and responses are expected from all members of the University. We must work together to make this a safe and productive learning environment for everyone. Part of this work is recognizing how race and other aspects of who we are shape our beliefs and our experiences as individuals. It is not enough to condemn acts of racism. For real, sustainable change, we must stand together as a diverse coalition against racism and oppression of any form, anywhere, at any time.

Resources for education and action are available through WCU’s Office for Diversity, Equity, and Inclusion (ODEI), DEI committees within departments or colleges, the student ombudsperson, and centers on campus committed to doing this work (e.g., Dowdy Multicultural Center, Center for Women and Gender Equity, and the Center for Trans and Queer Advocacy).

Guidance on how to report incidents of discrimination and harassment is available at the University’s Office of Diversity, Equity and Inclusion.

Emergency Preparedness

All students are encouraged to sign up for the University’s free WCU ALERT service, which delivers official WCU emergency text messages directly to your cell phone. For more information, visit https://www.wcupa.edu/wcualert. To report an emergency, call the Department of Public Safety at 610-436-3311.

Electronic Mail Policy

It is expected that faculty, staff, and students activate and maintain regular access to University provided e-mail accounts. Official university communications, including those from your instructor, will be sent through your university e-mail account. You are responsible for accessing that mail to be sure to obtain official University communications. Failure to access will not exempt individuals from the responsibilities associated with this course.

Course Topics and Schedules (subject to change)

Week Date Topic Assessment
1 01/20 Introduction -
- - Swift Fundamentals: Operators, Control Flow, Xcode -
2 01/27 Introduction to SwiftUI - Pokedex version 1 -
- - Swift Fundamentals: Arrays, Loops, Strings, Optional Type -
3 02/03 Swift Fundamentals: Functions -
- - Swift Fundamentals: Structs, Computed Property -
4 02/10 Pokedex version 2 and Lab 1: Pokemon Fight Game in SwiftUI -
- - Lab 1: Pokemon Fight Game in Swift UI -
5 02/17 Lab 1: Assignment Session -
- - Swift Fundamentals: Classes (1) -
6 02/24 Swift Fundamentals: Classes (2) - Inheritance and Polymorphism -
- - Swift Fundamentals: Enums -
7 03/03 Swift Fundamentals: Closures -
- - Fetching data from APIs -
8 03/10 SPRING BREAK -
- - SPRING BREAK -
9 03/17 Lab 2: Pokedex version 3 -
- - Lab 2: Assignment Session -
10 03/24 Concurrency and Threading, Asynchronous Programming -
- - Beyond the Standard Library -
11 03/31 Lab 3: Build an app with API and third-party library -
- - View in SwiftUI and Lab 3: Assignment Session -
12 04/07 SpriteKit (1): Create Basic Scene and Player -
- - SpriteKit (2): Create Collectable Items -
13 04/14 SpriteKit (3): Work with Physics and Collision Detection -
- - Lab 4: Create a Mini-Game using SpriteKit -
14 04/21 Lab 4: Assignment Session & PokemonChat Demo (WebSocket) -
- - SpriteKit (4): Use of Scene Editor -
15 04/28 SpriteKit (5) Handling Collisions and Contact Events -
- - SpriteKit (6) Collectible and Physics COmponent -
16 05/05 Final Project: A 2D RPG Pokemon Game -