Exercise – An Introduction to Computer Science
The exercise is to examine several examples of introductory courses in Computer Science, and then to
design our own “model” course.
Our task is complicated by the observation that the field changes over time, more so than other
disciplines, and especially so now, in light of the introduction of AI tools that can code better than the
average programmer.
We should consider the balance between concepts and skills, theory and practice. To what extent is the
course providing the “big picture”, and on the other extreme, is the main purpose to simply provide the
pre-requisite skills needed for the next course in the curriculum.
As a starting point, gather in small groups (of 3 students each) and consider the following foundational
questions:
"Introduction to iOS Development" (CSCI 245)
What is the title of the course?
Majors: Computer Science students.
What is the profile of the expected Prerequisites: Basic programming knowledge in Swift
audience? Majors? Non-majors? 1st- or prior completion of a fundamental programming
year students? course (e.g., CSCI 141 - Introduction to Programming).
Level: Intermediate (2nd or 3rd-year students).
iOS Development Environment (Xcode, Interface Builder)
What are the main topics that will be Swift Programming Basics & Advanced Concepts
covered? (keywords of CS) Model-View-Controller (MVC) & Introduction to MVVM
UIKit & SwiftUI Essentials
Working with Core Data & User Defaults
Networking & API Integration (URLSession, Codable)
CoreLocation & MapKit for Location-Based Apps
Gesture Recognition & Animations
App Lifecycle & Performance Optimization
Testing & Debugging iOS Applications
Deployment & App Store Guidelines
Hybrid Format (Online + In-Person)
What is the method of course Lectures & Hands-on Labs (Weekly coding sessions)
delivery? Lecture? Lab? Flipped Flipped Classroom (Pre-recorded videos, live discussions)
classroom? On-line? Hybrid? Adaptive Team-Based Capstone Project (Building a complete iOS app)
learning?
Explain core concepts of iOS development and app
What are the learning outcomes for architecture.
the course? (align with bloom’s Describe the role of different iOS frameworks in building
taxonomy) applications.
Develop iOS applications using Swift, UIKit, and SwiftUI.
Implement networking, persistence, and animations in iOS
apps.
Analyze and debug performance issues in iOS applications.
Create and deploy an iOS application to the App Store.
Exercise – An Introduction to Computer Science
How will you measure the
achievement of the learning Weekly Assignments (20%) – Coding exercises & conceptual
outcomes? That is, which assessment
quizzes.
methods will be used?
Midterm & Final Exam (30%) – Theory & practical coding
challenges.
Capstone Team Project (30%) – Design, develop, and present
a full iOS app.
Class Participation (10%) – Discussions, peer reviews, and
Q&A sessions.
Code Reviews & Debugging Exercises (10%) – Improving
code quality and efficiency.