Syllabus for the first semester of a high school CS class based on iPads

This past year, I have been able to teach a course to a dual-enrolled group of high school students. It has been a blast, and this is a template for other teachers who hope to implement this kind of rigorous, multifaceted course for students.

The ultimate goal of the course is for students to create their own apps, on iPads, using Swift and Swift UI. These apps need to have varied input and output, a useful user-interface, and a purpose. Student projects have included simple card games, tip calculators, and shopping carts.

Here, I am going to describe the content for semester 1, and in separate post, semester 2.

The content is generally derived from four main sources. A lot of high quality unplugged content on the concepts of computational thinking and computer science is available from code.org. Second, Apple's Develop in Swift- Explorations contains a large number of lessons on using the tools of computer science (loops, conditionals, functions and more). Third, the Develop in Swift Tutorials are extremely useful for building Swift UI skills. Fourth, independent projects are spread throughout the course to facilitate students blending the user interface tools of SwiftUI with the programming skills they are building.

The course is a year long, and each semester is about 16 weeks.

Semester 1- 16 weeks

Introduction to Computational Thinking- 4 weeks


Introduction to Swift

Get started with code- 2 Days, then Anchor Activity

The Tools of Computer Science - From Develop in Swift Explorations


Playgrounds Basics.playground - 3 Days

Naming and Identifiers.playground - 3 Days

Simulation.playground - 2 Days, must be done as whole class, since it will not run on iPads.

Strings.playground - 2 Days

Constants and Variables.playground - 3 Days

After this introductory work on programming, I take a break for students to experiment with UI construction. They use shapes to create a self-portrait with stacks and shapes. This takes about one week.

With some UI skills such as making shapes done, we dive a little deeper into some other tools of computer science. We move on to Unit 2 of Develop in Swift Explorations, and seek to learn about building algorithms.

Functions.playground - 3 Days

Types.playground - 3 Days

Parameters and results.playground - 3 Days

Making Decisions.playground - 3 Days

It is important to note that most of the projects in Develop in Swift Explorations cannot be completed on iPads, because of libraries unavailable on iOS. So, we as teachers have to find suitable projects to engage students that synthesize the basics of Swift and Swift UI.

To start on this, I want to develop more student understanding of how Swift UI works. So, I then lead them through Chapters 2,3, and 4 of these Develop in Swift Tutorials. Chapter 1 does not apply to us, since the iPad does not support XCode. And, you must modify these resources or make students aware of how to accomplish all the steps in Swift playgrounds, not XCode. These take about 2 weeks total.

To conclude the semester, I want students to connect ideas about writing programs in Swift with making user interfaces in Swift UI.

Check out this blog post for two projects which help students connect these ideas. These projects take about 2 weeks total.

In the first, students create an app that evaluates text to see if it contains the word “quack”, and provides different output. In the second, students create a game where the computer randomly selects a number between 1 and 100, and the user plays “guess the number”, getting different feedback from the program, through the user interface. Students personalize this app through changes to Swift UI, modifications for outputs, or other programming changes. This is a great capstone to the semester.


0 replies