All Prior Classes
Table of Contents
Thread 4
- Day 15 - Saturday, June 15, 2024
- Day 14 - Friday, June 14, 2024
- Day 13 - Tuesday, June 11, 2024
- Day 12 - Monday, June 10, 2024
- Day 11 - Friday, June 7, 2024
- Day 10 - Wednesday, June 5, 2024
- Day 9 - Tuesday, June 4, 2024
- Day 8 - Monday, June 3, 2024
- Day 7 - Saturday, June 1, 2024
- Day 6 - Friday, May 31, 2024
- Day 5 - Tuesday, May 28, 2024
- Day 4 - Monday, May 27, 2024
- Day 3 - Friday, May 24, 2024
- Day 2 - Wednesday, May 22, 2024
- Day 1 - Tuesday, May 21, 2024
Thread 3
- Day 13 - Friday, April 19, 2024
- Day 12 - Thursday, April 18, 2024
- Day 11 - Wednesday, April 17, 2024
- Day 10 - Tuesday, April 16, 2024
- Day 9 - Friday, April 12, 2024
- Day 8 - Thursday, April 11, 2024
- Day 7 - Wednesday, April 10, 2024
- Day 6 - Tuesday, April 9, 2024
- Day 5 - Friday, April 5, 2024
- Day 4 - Thursday, April 4, 2024
- Day 3 - Tuesday, April 2, 2024
- Day 2 - Wednesday, March 6, 2024
- Day 1 - Tuesday, March 5, 2024
Thread 2
- Day 13 - Wednesday, January 31, 2024
- Day 12 - Tuesday, January 30, 2024
- Day 11 - Friday, January 26, 2024
- Day 10 - Thursday, January 25, 2024
- Day 9 - Wednesday, January 24, 2024
- Day 8 - Tuesday, January 23, 2024
- Day 7 - Friday, January 19, 2024
- Day 6 - Thursday, January 18, 2024
- Day 5 - Wednesday, January 17, 2024
- Day 4 - Tuesday, January 16, 2024
- Day 3 - Friday, January 12, 2024
- Day 2 - Thursday, January 11, 2024
- Day 1 - Tuesday, January 9, 2024
Thread 1
- Day 15 - Thursday, November 16, 2023
- Day 14 - Tuesday, November 14, 2023
- Day 13 - Tuesday, November 7, 2023
- Day 12 - Monday, November 6, 2023
- Day 11 - Thursday, November 2, 2023
- Day 10 - Wednesday, November 1, 2023
- Day 9 - Tuesday, October 31, 2023
- Day 8 - Monday, October 30, 2023
- Day 7 - Saturday, October 28, 2023
- Day 6 - Thursday, October 26, 2023
- Day 5 - Tuesday, October 24, 2023
- Day 4 - Monday, October 23, 2023
- Day 3 - Thursday, October 19, 2023
- Day 2 - Wednesday, October 18, 2023
- Day 1 - Tuesday, October 17, 2023
Thread 4, Day 15 - Saturday, June 15, 2024
Agenda
- End of Course Interview
- Here is the order of interviews for this morning:
- Lewis
- Quin
- Lawrence
- Justin H
- Tom
- David
- Justin W
- Morgan
- Please wait on the chair outside room 36 when your interview is next.
- For example, Quin will wait outside room 36 while Lewis completes his interview, and so on.
- At some point this morning, please complete the course feedback form.
- This form is anonymous.
- Your constructive feedback is valued – thank-you in advance for your time with this.
- You can also continue to fine-tune your portfolio on Notion.
- Here is the order of interviews for this morning:
You will be dismissed at 11:30 AM. Please wait until I come out to dismiss you. Until then, to minimize traffic and noise in the academic block, please stay in Hadden Hall, with the exception of essential trips to the washroom.
Thread 4, Day 14 - Friday, June 14, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- First, please make a copy of this template
- Then, immediately submit a link to your interview slides
- We will now discuss the prompts in the slide deck, and how to prepare for tomorrow's interview.
- Here is the order of interviews for tomorrow morning (as generated live in class):
- Lewis
- Quin
- Lawrence
- Justin H
- Tom
- David
- Justin W
- Morgan
- Second, one member of your group must generate the final version of your group's directed graph, and submit the resulting file to this form.
NoteYou will use the
GraphGeneratorapp included with the CYOA template project to generate your group's directed graph.Recall that nodes (pages) must have at least one edge connecting them to other nodes, unless they are an ending node (page).
All nodes (pages) that represent endings must be categorized so that your group can produce a directed graph that has it's endings accurately tallied.
Categorize a node (page) as an ending by populating the
ending_contextandending_type_idcolumn for a given page.For example:

- Third, with any time remaining, up until 10 PM this evening, you and your group members can continue to work on code to improve your group's CYOA app.
- Remember to use the approach described here to co-ordinate your efforts with source control.
- First, please make a copy of this template
Things to do before our next class
-
- Summarize the progress that you personally made within your group's effort today.
Thread 4, Day 13 - Tuesday, June 11, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Today we make our final visit to Lakefield District Public School to share your finished products with the students there.
Things to do before our next class
-
- Summarize the progress that you personally made within your group's effort today.
Thread 4, Day 12 - Monday, June 10, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- This is the final working period for the culminating task.
- As you work today with your peers, please be sure to use the approach described here for organizing your coding efforts.
- Remember that you have access to resources such as SwiftUI Views Mastery which is very useful for understanding how to change the appearance and functionality of your group's app.
- Be certain you have some functioning version of your app ready to show to your partner's for tomorrow's visit.
- This is the final working period for the culminating task.
Things to do before our next class
-
- Summarize the progress that you personally made within your group's effort today.
Thread 4, Day 11 - Friday, June 7, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- This is the second-last working period for the culminating task.
- We have one more working period on Monday; we visit our friends at LDPS for the final time on Tuesday.
- As you work today with your peers, please be sure to use the approach described here for organizing your coding efforts.
- Remember that you have access to resources such as SwiftUI Views Mastery which is very useful for understanding how to change the appearance and functionality of your group's app.
- This is the second-last working period for the culminating task.
Things to do before our next class
-
- Summarize the progress that you personally made within your group's effort today.
Thread 4, Day 10 - Wednesday, June 5, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- To begin today's class, Mr. Gordon will guide each group with enabling source control.
- Then, work with your partners to extend the CYOA template that was provided so that it is customized, improved, and tailored to the interests of your partners at LDPS.
NoteIf needed, use the
GraphGeneratorapp included with the CYOA template project to analyze your group's directed graph and correct any problems with your group's story, such as nodes (pages) without any edges connecting them to other nodes.As well, all nodes (pages) that represent endings must be categorized so that your group can produce a directed graph that has it's endings accurately tallied. Categorize a node (page) as an ending by populating the
ending_contextandending_type_idcolumn for a given page. For example:
Things to do before our next class
-
- Summarize the progress that you personally made within your group's effort today.
Thread 4, Day 9 - Tuesday, June 4, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Today, we visit Lakefield District Public School for the third time, to meet again with our partners and collect feedback on your minimally viable product – the MVP – of your group's CYOA app.
NoteBe certain you are taking careful notes from your partner(s) feedback.
Your eventual grade on this task relies in part on clear evidence that you implemented story and game elements based on the requirements and input received from your partner(s) at LDPS.
Things to do before our next class
-
- Share the photographs of the notes that you made today.
Thread 4, Day 8 - Monday, June 3, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Today your group will use the CYOA Template to get started on your group's CYOA book.
- One member of your group will assume the project manager role and create your group's primary repository, with guidance from Mr. Gordon.
- The other group members will fork this repository; all contributions must be made according to the team source control workflow you used earlier this year.
- Your group will need the database starter script.
- A different member of your group will assume the database manager role and create your group's database at Supabase, with guidance from Mr. Gordon.
- Use today's class to get your project set up and your database populated.
- The goal for tomorrow's visit to LDPS is to have your group's story ready to try out.
- Later this week group members will work to add customizations to your group's CYOA app.
- Today your group will use the CYOA Template to get started on your group's CYOA book.
Things to do before our next class
-
- Summarize your progress with authoring your part of the story.
Thread 4, Day 7 - Saturday, June 1, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- With the spreadsheet you made in our prior class, use today's class to finish authoring your part of the narrative for your group's Choose Your Own Adventure story.
Tip
Optionally, you may use large language model software (ChatGPT, Gemini, et cetera) as a "co-intelligence" for writing. Put another way, do not have the model write the entire story for you, but use it as a creative partner to generate ideas that you flesh out. Have fun with this exercise of creative writing.
- With the spreadsheet you made in our prior class, use today's class to finish authoring your part of the narrative for your group's Choose Your Own Adventure story.
Things to do before our next class
-
- Summarize your progress with authoring your part of the story.
Thread 4, Day 6 - Friday, May 31, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Today, your group moves from planning the narrative for your Choose Your Own Adventure story to authoring the narrative.
- Each group member is required to make a copy of this spreadsheet and then immediately add a link to their copy of the spreadsheet in their portfolio entry for today on Notion.
- Work with your group members to assign a range of node ID's to each group member. For example, one member may use the range of id's from 1 to 100, the next from 101 to 200, and so on.
- So long as node ID's do not overlap, each group member can work in their own spreadsheet to author the narrative.
- In a future class, the data in these spreadsheets will be imported into a shared database hosted at Supabase.
- In turn, that database will be used by your group's app.
TipOptionally, you may use large language model software (ChatGPT, Gemini, et cetera) as a "co-intelligence" for writing. Put another way, do not have the model write the entire story for you, but use it as a creative partner to generate ideas that you flesh out. Have fun with this exercise of creative writing.
Things to do before our next class
-
- Summarize your progress authoring your part of the story.
ImportantBe sure you include a link to your copy of the spreadsheet provided above.
Thread 4, Day 5 - Tuesday, May 28, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Today, we visit Lakefield District Public School for the second time, to meet again with our partners and build out the narrative you have started to develop.
NoteBe certain you are taking detailed notes regarding what story elements your partner(s) are asking for.
Your eventual grade on this task relies in part on clear evidence that you implemented story and game elements based on the requirements and input received from your partner(s) at LDPS.
Things to do before our next class
-
- Share the photographs of the additional plans and notes that you made today.
Thread 4, Day 4 - Monday, May 27, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- First, form your groups for the culminating task – maximum of three in a group, please.
- Groupings could be based on shared interests of your partner(s) from Lakefield District Public School, but does not have to be.
- A Choose Your Own Adventure story can be large enough to encompass a variety of interests from your LDPS partners – even if those interests don't overlap.
- Groupings could be based on shared interests of your partner(s) from Lakefield District Public School, but does not have to be.
- Second, begin planning your narrative using the chart paper and the markers provided.
- Use a directed graph to make a high-level plan.
- Use point form to make plans for what happens at each node.
- Optionally, one person in your group may have a computer open to make use of a large language model such as ChatGPT if that helps you to get an idea for an interesting and entertaining narrative.
- Near the end of class, take clear photographs of the plans you made on paper with your group.
- Then, hand in your sheet(s) of chart paper to Palmer before you leave class.
- Be sure each group member's name is written at the top of each page of chart paper.
- First, form your groups for the culminating task – maximum of three in a group, please.
Things to do before our next class
-
- Share the photographs of the plans you made today.
- Give one-paragraph summary of the story that will be told in your group's Choose Your Own Adventure narrative.
We will return to LDPS tomorrow; you will then continue planning out the narrative with your partners in Mme. Zmozynski's class.
Thread 4, Day 3 - Friday, May 24, 2024
Agenda
- Exemplar: A Choose Your Own Adventure App
- What type of features might a CYOA story delivered in app form be able to offer that a book cannot?
- Discussion: Directed Graphs
- A look at what a directed graph is formally defined as, and how that can help organize the data behind a CYOA story.
- Here is an example of a particularly epic CYOA narrative developed by a group from last year's Grade 12 Computer Science class.
TipIn Monday's class, you will organize into groups and begin developing a CYOA narrative on paper.
- Culminating Task: Building an App for an External Audience
- Today, we visit Lakefield District Public School for the first time, to meet our partners and learn more about them and their interests.
- This will help each of you, as the consultants, determine what narrative or theme might work for a Choose Your Own Adventure app built for the students at LDPS, who are your clients.
Things to do before our next class
-
- Share clear photographs of the notes you took today.
- Write a brief summary of what you feel you learned about the interests of your partners at LDPS.
Thread 4, Day 2 - Wednesday, May 22, 2024
Agenda
- Group Software Projects: Staying Organized
Important
Work completed for a project must be tracked within issues and on the kanban board for your team.
- Be sure to use the approach described here for managing source code commits.
- Here all the project links:
- GradientMaker (source code / kanban board)
- Lakefield History (source code / kanban board)
- Check In (source code / kanban board)
- Mailroom Assistant (source code / kanban board)
- Musicals @ LCS (source code / kanban board)
- Tutorial: Using a Cloud-Hosted Database
- Please finish up these two tutorials today in class:
In our next class we will travel to Lakefield District Public School to meet our partners there and determine their interests and what curriculum topics they want to build a Choose Your Own Adventure story around.
Things to do before our next class
-
- Share your progress in one or more updates on Notion.
Thread 4, Day 1 - Tuesday, May 21, 2024
Agenda
- Culminating Task: Building an App for an External Audience
- Understand the parameters of the culminating task for this course, which accounts for the final 30% of your grade.
- Tutorial: Using a Cloud-Hosted Database
- Whether with your group building out one of our five projects currently on the go:
- GradientMaker (source code / kanban board)
- Lakefield History (source code / kanban board)
- Check In (source code / kanban board)
- Mailroom Assistant (source code / kanban board)
- Musicals @ LCS (source code / kanban board)
- ... or within your culminating task group, you will need to know how to persist data within a cloud-hosted database and use the MVVM design pattern.
- Between today and tomorrow's class and Evening Study each day, please complete these two parts of the tutorial:
- Whether with your group building out one of our five projects currently on the go:
Things to do before our next class
-
- Share your progress in one or more updates on Notion.
Thread 3, Day 13 - Friday, April 19, 2024
Agenda
- Module 3 Test
- This will be graded and returned to you via Edsby later today or this weekend.
Things to do before our next class
None – it's the end of the module.
Enjoy your Quiet Weekend! 💤
Stay tuned for details about a potential optional study session in advance of the AP CSP exam on May 15.
Thread 3, Day 12 - Thursday, April 18, 2024
Agenda
- Parallel and Distributed Computing
- When can a problem can be broken up into parts and solved in parallel, and when is this helpful for solving problems more quickly?
- You now have in-class time to complete the module on Parallel and Distributed Computing and its related formative quizzes.
- Quiz: Encryption, Algorithms, Heuristics, Parallel and Distributed Computing
- Check your knowledge of new topics we've looked at this week.
Things to do before our next class
-
- Topics for the unit test include all the topics we have learned about in this module.
Upcoming events
- Tomorrow – Friday – in class...
- Module 3 test
Thread 3, Day 11 - Wednesday, April 17, 2024
Agenda
- Sorting: Comparing Bubble, Selection, and Insertion Sorts
- Bubble Sort (explanation, animation)
- Selection Sort (explanation, animation)
- Insertion Sort (explanation, animation)
- Reviewing the real-world performance of these algorithms.
- What conclusions can we draw?
NoteIf you wish – not required – you can experiment with the sorting algorithms yourself by using this Xcode project.
- Searching: Comparing Linear vs. Binary Search
- Linear Search (explanation, animation)
- Binary Search (explanation, animation)
- Discussion of the pros and cons of each
- Algorithms Summary
- A summary of the major algorithms and when they are useful.
- Heuristics and Undecidable Problems
- What do we do when a problem cannot be solved in a reasonable amount of time?
Things to do before our next class
- Complete the exercises given for today's topics:
Upcoming events
- Tomorrow – Thursday – in class...
- Quiz (short answer, multiple choice)
- High-level topics are:
- Encryption, Algorithms, Heuristics, Parallel and Distributed Computing
- How to prepare:
- Complete all assigned Study tasks since our last quiz.
- High-level topics are:
- Quiz (short answer, multiple choice)
Thread 3, Day 10 - Tuesday, April 16, 2024
Agenda
- Quiz: Data, User Authentication, Simulations, Compression, Crowdsourcing, Digital Divide, Citizen Science
- Check your knowledge of topics we looked at last week.
- Computational Complexity of Algorithms
- Analyzing the theoretical performance of algorithms
- A visual summary of algorithm time complexity
- Data Encryption and Secure Internet Protocols
- How is data kept private on our massively distributed public Internet?
Things to do before our next class
Thread 3, Day 9 - Friday, April 12, 2024
Agenda
- Data: Analog vs. Digital
- What is analog data?
- What is digital data?
- How can digital data approximate analog data?
- Crowdsourcing and Citizen Science
- Digital Divide
Things to do before our next class
Upcoming events
- Tuesday, in class...
- Quiz (short answer, multiple choice)
- High-level topics are:
- Data, User Authentication, Simulations, Compression, Crowdsourcing, Digital Divide, Citizen Science
- How to prepare:
- Complete all assigned Study tasks since our last quiz.
- High-level topics are:
- Quiz (short answer, multiple choice)
Thread 3, Day 8 - Thursday, April 11, 2024
Agenda
- AP CSP: Diagnostic Exam Follow-up
- Take 5-10 minutes to self-grade your results on the diagnostic exam.
- Use this answer key – if you have your physical copy of the 5 Steps to a 5 book with you, you can use that instead (pages 29 to 34).
- As you check answers, complete the Diagnostic Exam Inventory to determine what big ideas you need to focus most on learning.
- Take a photo of your exam results and inventory and share that photo in a portfolio post on Notion.
- Take 5-10 minutes to self-grade your results on the diagnostic exam.
- Data: Lossy vs. Lossless Compression
- How is color represented digitally?
- How can data be compressed to use less storage space?
If you did not have time for this yesterday, be sure to review the lesson on Simulations and try the related exercises.
Things to do before our next class
Thread 3, Day 7 - Wednesday, April 10, 2024
Agenda
- AP CSP: Diagnostic Exam (In-class)
- You already know most, but not quite everything, you need to write the exam.
- We will use today's class to complete a diagnostic exam.
- You will self-grade results in Thursday's class.
- This diagnostic will give you a roadmap to what topics you need to focus on to fill in gaps in your own knowledge before the end of this module.
- Simulations
- Review the lesson.
- Complete the exercises given on the final slide.
Things to do before our next class
Thread 3, Day 6 - Tuesday, April 9, 2024
Agenda
- Debrief: Effects of Computing Innovations
- We will use the Text Rendering Experience protocol to construct some meaning from our reading or listening from yesterday's class.
NoteHere are the sentences, phrases, and words shared by participants in this conversation today in class.
- Abstraction and Binary Numbers
- With software, we can re-organize and summarize vast quantities of data.
- Complete this activity to take a deeper dive into this idea, and gain knowledge for AP CSP Big Idea #2.
- Safe Computing: User Authentication
- What is a strong password?
- What is a password manager?
- Multi-factor authentication
Things to do before our next class
Thread 3, Day 5 - Friday, April 5, 2024
Agenda
- Quiz: Data, Networks, Impact of Computing, Safe Computing
- Check your knowledge of topics we looked at this week.
- Extracting Information From Data
- With software, we can re-organize and summarize vast quantities of data.
- Complete this activity to take a deeper dive into this idea, and gain knowledge for AP CSP Big Idea #2.
Things to do before our next class
Thread 3, Day 4 - Thursday, April 4, 2024
Agenda
- Safe Computing: Personally Identifiable Information and Data Tracking
- As a class, we will explore what personally identifiable information (PII) is and how to control access to your PII
- For the remainder of the class and for Study this evening, please complete these tasks
- Please also share full-screen screenshots of your results on Quizzes 1 and 2 from these sections on Notion.
Things to do before our next class
Upcoming events
- Tomorrow, in class...
- Quiz (short answer, multiple choice)
- High-level topics are:
- Data, Networks, Impact of Computing, Safe Computing
- How to prepare:
- Complete all assigned Study tasks given so far in this thread of study.
- High-level topics are:
- Quiz (short answer, multiple choice)
Thread 3, Day 3 - Tuesday, April 2, 2024
Agenda
- Assessment and Evaluation for Thread 3
- Discussion of how your progress will be assessed and evaluated
- Packet Posting: A Hands-on Activity
- We'll jump on to Zoom to do some role play and to experience the meaning of some of these key terms
- Here are the slides that contain the summary of key networking terms from this activity.
- We'll jump on to Zoom to do some role play and to experience the meaning of some of these key terms
- The Internet
- Learn how the physical layers (Ethernet, WiFi, fibre optic cable, et cetera), protocols (IP, TCP, HTTP, and others), work together to connect people around the world.
- To be completed via self-paced study: Khan Academy AP CSP portal
- This is another decent option for building and checking general knowledge
- Some time will be given now, in class, to get an account set up and to start using this
- Computing Innovations: Harmful and Beneficial Effects
- What is a computing innovation?
- How can an innovation have both beneficial and harmful effects?
- How can an innovation's effects be both intended and unintended?
- What can be done to avoid bias in the development of computing innovations?
- What is a computing innovation?
Things to do before our next class
-
- From Ruined by Design, read the excerpt titled "All the White Boys in the Room"
- Listen to episode 363 of the podcast 99% Invisible, titled "Invisible Women" (30 minutes)
- ... then respond to the prompts given and post your responses on Notion.
Thread 3, Day 2 - Wednesday, March 6, 2024
Agenda
- Activity: Standup Meetings
- Ultra-brief status check-in.
- Working Period: Time to Complete Assigned Project Task(s)
- Progress, or clear documentation in each issue of what was attempted, is expected.
- An ultra-brief Notion post with a link to issue(s) you contributed to is required.
Things to do before the end of class
Have a restful, fun, and safe March Break! 😎 See you in April! 🌷
Thread 3, Day 1 - Tuesday, March 5, 2024
Agenda
- Activity: Standup Meetings
- Ultra-brief meetings to assign issues within a team.
- Working Period: Time to Complete Assigned Project Task(s)
- Progress, or clear documentation in each issue of what was attempted, is expected.
- An ultra-brief Notion post with a link to issue(s) you contributed to is required.
- Here is each group's project page:
TipBookmark the project page for your app for faster lookup in the future. In most browsers you can make a bookmark with the Command-D keyboard shortcut.
Things to do before our next class
Thread 2, Day 13 - Wednesday, January 31, 2024
Agenda
- Activity: Set Project Priorities
- Each project team will meet with the project manager and finish setting up our Kanban boards.
- Project home pages:
- Working Period: Time to Complete Assigned Project Task(s)
Things to do for Evening Study
- Ensure that your portfolio has captured all the work you completed in this module.
- Deadline for portfolio additions to be reviewed for the next report card is this Saturday at 11 PM.
Thread 2, Day 12 - Tuesday, January 30, 2024
Agenda
- Activity: Prototype Demonstrations
- For teams that have a user they can speak with, today will involve showing your prototype to that user and collecting feedback.
- Activity: Creating Project Kanban Boards
- For each project, we will meet as a team and create your Kanban board based on the user stories you wrote and the user feedback you received from prototypes.
- A Kanban board is a way of organizing project priorities.
- Here is one example of a live Kanban board for the Obsidian Digital Garden plugin, which is used to build this very website.
- Working Period: Time to Complete Assigned Project Task(s)
Things to do for Evening Study
- You have been assigned an issue from your team's Kanban board; you are to make clear progress on that issue, or complete it if possible.
Thread 2, Day 11 - Friday, January 26, 2024
Agenda
- Concept: Source Control Within a Team
- Learn the theory of how to contribute to a team effort using the fork and branch source control model.
- Task: Create Forks of Project Repositories
- The project manager has created primary repositories for each project.
- Create your fork of your project repository.
- Complete the first issue that has been assigned to you, using the workflow we just examined.
- Activity: Time to Work on Prototypes
- For any time remaining in class, work with your partner to refine the Keynote-based prototypes of your app.
- In our next class, you will collect feedback from potential end-users about your prototype.
Things to do this weekend
- As needed, co-ordinate with your partner to finish this first prototype of your app.
Thread 2, Day 10 - Thursday, January 25, 2024
Agenda
- Setup: Install Keynote
- Please install or update Keynote if you have not done so already.
- Activity: 60 Second Prototyping
- Review this completed prototype file in Keynote.
- Using these iOS Design elements, adapt the completed prototype file to instead be a prototype for your app.
- With your partner, use this working period to develop a prototype for your assigned app in Keynote.
Things to do for Evening Study
- As needed, co-ordinate with your partner to make progress on a first prototype of your app.
Thread 2, Day 9 - Wednesday, January 24, 2024
Agenda
- Discussion: App Dev Teams
- Activity: User Stories
- Setup: Install Keynote
- Activity: 60 Second Prototyping
- Review this completed prototype file in Keynote.
- Using these iOS Design elements, adapt the completed prototype file to instead be a prototype for your app.
- In our class on Friday, Mr. Gordon will demonstrate how to use the most important features of Keynote for building prototypes.
- You will then have a working period with your partner to develop a prototype in Keynote.
Things to do for Evening Study
- Finish the user stories for your team's app, being sure to submit your work as described.
Thread 2, Day 8 - Tuesday, January 23, 2024
Agenda
- Concept: Software Development Lifecycle
- A comparison of "waterfall" and Agile approaches.
- Here is an example of a status board for a project on GitHub being developed using an Agile methodology.
- This is for the Digital Garden software that Mr. Gordon uses to publish this website.
- Video: How We Start Apps: Behind the Scenes of Kino
- A look at how a well-regarded iOS development company launched a new app.
- Activity: Discuss Group Software Development Opportunities
- As a class, we will decide what initiatives to pursue.
Things to do for Evening Study
- Make a post on Notion. Identify the top three app projects you would most be interested in working on, and why. Be sure to link to each app idea.
Thread 2, Day 7 - Friday, January 19, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Important
A link to a draft of your written responses for the AP Create Task must be posted on Notion.
- If you have not already, submit your AP Create Task.
- Tutorial: Using Observable Classes, Part 2
- Finish the build of the improved To-do list app.
- Learn how to apply
SwiftDataframework to easily persist data within an app.
Things to do this weekend
Thread 2, Day 6 - Thursday, January 18, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Important
A link to a draft of your written responses for the AP Create Task must be posted on Notion.
- If you have not already, submit your AP Create Task.
- Concept: Structures vs. Classes
- Take your time reading through this lesson.
- Make notes regarding your observations.
- Then draw conclusions when prompted to understand how classes are handled differently from structures in the Swift programming language.
ImportantShare your notes in a portfolio post on Notion; Mr. Gordon will provide feedback.
- Tutorial: Using Observable Classes
- Learn how to use the
Observationframework to easily share data between views within a SwiftUI app.
- Learn how to use the
Things to do before our next class
Thread 2, Day 5 - Wednesday, January 17, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Important
A link to a draft of your written responses for the AP Create Task must be posted on Notion.
- If you have not already, submit your AP Create Task.
- Tutorial: Creating Pie Charts and Donut Charts
- Learn how to create bar charts and line charts using the
Chartsframework andSwiftUI.TipYou can follow this tutorial by creating either an iOS or macOS application in Xcode – both work equally well – however, on some computers, macOS projects will compile and run faster.
- Learn how to create bar charts and line charts using the
- Exercise: Create a Pie or Donut Chart
- Using what you learned in the tutorial above, select either a pie chart or a donut chart.
- Create data structures that you can model using the chart type you selected.
- Then make a chart to visualize the data.
- For deeper learning, if you have time, make both types of charts using your own data.
Example
Here is an example using made-up data regarding the proportion of students in each house at Lakefield College School:

Here is a silly example, but it is good practice with making charts:

Things to do before our next class
Thread 2, Day 4 - Tuesday, January 16, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Important
A link to a draft of your written responses for the AP Create Task must be posted on Notion.
- If you have not already, submit your AP Create Task.
- Tutorial: Creating Bar Charts and Line Charts
- Learn how to create bar charts and line charts using the
Chartsframework andSwiftUI.TipYou can follow this tutorial by creating either an iOS or macOS application in Xcode – both work equally well – however, on some computers, macOS projects will compile and run faster.
- Learn how to create bar charts and line charts using the
- Exercise: Create a Bar or Line Chart
- Using what you learned in the tutorial above, select either a bar chart or a line chart.
- Create data structures that you can model using the chart type you selected.
- Then make a chart to visualize the data.
- For deeper learning, if you have time, make both types of charts using your own data.
Example
Here is an example using "student" grades data:

Things to do before our next class
Thread 2, Day 3 - Friday, January 12, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Tip
It is recommended that you author a draft of your written responses for the AP Create Task before submitting your work to the College Board.
- If you have not already, submit your AP Create Task.
- Recap: Develop in Swift Tutorials
- If you are finished your AP Create Task, this is an opportunity to further consolidate concepts you have learned in the past, and a way to learn a little more about features of Xcode you may not be aware of.
- Chapters 1, 2, and 3 are all good choices to try.
Note
Mr. Gordon was an unpaid technical reviewer for these tutorials; they were authored by a team at Apple.
Things to do before our next class
Thread 2, Day 2 - Thursday, January 11, 2024
Agenda
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Tip
It is recommended that you author a draft of your written responses for the AP Create Task before submitting your work to the College Board.
- If you have not already, submit your AP Create Task.
- Recap: Optionals
- Understand how the Swift programming language handles cases where a value may not exist for a variable or constant.
Things to do before our next class
Thread 2, Day 1 - Tuesday, January 9, 2024
Agenda
- Setup: Update Xcode and Simulators
- A key bug that impacts battery life has reportedly been resolved in the latest version of Xcode.
- Be sure to complete this update.
- Discussion: Rubber Duck Debugging
- Solving logical errors and syntax errors can be frustrating, but everyone deals with it, even experienced programmers.
- Pairing with a friend to describe what you are trying to do with your code, line by line, can be helpful.
- Often during this process, you will realize the source of the problem you are having.
- When a friend is not nearby, use your duck! 🦆
- Activity: College Board Digital Portfolio
- If you have not already, submit your AP Create Task.
Tip
It is recommended that you author a draft of your written responses for the AP Create Task before submitting your work to the College Board.
- If you have not already, submit your AP Create Task.
- Recap: Optionals
- Understand how the Swift programming language handles cases where a value may not exist for a variable or constant.
Things to do before our next class
Thread 1, Day 15 - Thursday, November 16, 2023
Agenda
- Activity: College Board AP Classroom
- Learn how to join our section on the AP Classroom website.
- Activity: College Board Digital Portfolio
- A look at how to submit your Create Task.
- Discussion: Module 1 Test Solutions
- Here is the 1-minute video to review.
- Here is the full program code.
- You can now check your answers against these solutions.
- Here is the rubric used to score your responses.
Things to do before our next class
-
- Please use
@Russell Gordonto notify me if your portfolio is modified; I have just reviewed portfolios (as of this past Wednesday).
- Please use
Thread 1, Day 14 - Tuesday, November 14, 2023
Agenda
- Activity: Module 1 Test
Things to do before our next class
-
- We will look at how to hand in the task to the College Board in our next class.
- If necessary, you can hand in your Create Task to the College Board at a date later than this Thursday's class.
Thread 1, Day 13 - Tuesday, November 7, 2023
Agenda
- Activity: Module 1 Practice Test
- Color Selector Exemplar
- Here is the 1-minute video to review.
- Here is the full program code.
- Please answer the questions provided to you on paper.
Note
You can now check your answers against these solutions.
- Color Selector Exemplar
Things to do before our next class
-
- Be sure to carefully review the exemplar responses and ask questions on Notion if you are looking for clarification on anything at all.
- Please use
@Russell Gordonwhen asking questions so that you will get a more prompt reply from Mr. Gordon.
- Please use
- Be sure to carefully review the exemplar responses and ask questions on Notion if you are looking for clarification on anything at all.
Thread 1, Day 12 - Monday, November 6, 2023
Agenda
- Discussion: Module 1 Test Date
- OUAC mark submission deadline means a modest change is needed.
- Activity: AP Create Task
- Continue working on your task.
Things to do before our next class
-
- This is a firm requirement – please do not forget to do this.
Thread 1, Day 11 - Thursday, November 2, 2023
Agenda
- Activity: AP Create Task
- Continue working on your task.
Things to do before our next class
-
- This is a firm requirement – please do not forget to do this.
Thread 1, Day 10 - Wednesday, November 1, 2023
Agenda
- Activity: AP Create Task
- Begin working on your task.
- Mr. Gordon is available to discuss ideas.
- Possibly helpful:
- a curated list of remote endpoints that offer useful data in JSON format
- free image assets
- This is where Mr. Gordon got the food images used for the Spelling app we built in recent classes.
- Possibly helpful:
Things to do before our next class
-
- This is a firm requirement – please do not forget to do this.
Thread 1, Day 9 - Tuesday, October 31, 2023
Agenda
- Discussion: Rubber Duck Debugging
- Solving logical errors and syntax errors can be frustrating, but everyone deals with it, even experienced programmers.
- Pairing with a friend to describe what you are trying to do with your code, line by line, can be helpful.
- Often during this process, you will realize the source of the problem you are having.
- When a friend is not nearby, use your duck! 🦆
- Activity: Building a Create Task Exemplar
- Finishing an app that meets requirements for the AP CSP Create Task.
Tip
You can view the history of commits here.
You can click the links at right for a given commit to see changes made for that step:

Have a look at the changes for each commit and that should help you understand how the app was developed.
- Finishing an app that meets requirements for the AP CSP Create Task.
- Activity: Authoring Create Task Responses
- Here are requirements given for this year's Create Task.
- Here are last year's writing prompts.
- We will work together to develop good responses to the prompts.
Things to do before our next class
Thread 1, Day 8 - Monday, October 30, 2023
Agenda
- Activity: Building a Create Task Exemplar
- We will build an app that meets requirements for the AP CSP Create Task.
- The app's audience is elementary school students.
- It's beneficial effect, or purpose, is to help young children to spell and to accurately identify food items.
- Fork and clone this repository to get started with developing the app.
NoteIf you were absent for today's class, you can view the history of commits made as we developed the app today in class.
You can click the links at right for a given commit to see changes made for that step:

Have a look at the changes for each commit and that should help you understand how the app was developed.
- Compare the completed app to the requirements given for this year's Create Task.
- Begin generating responses to last year's prompts.
- We will build an app that meets requirements for the AP CSP Create Task.
Things to do before our next class
-
- We will then discuss and compare responses in our class tomorrow morning.
Thread 1, Day 7 - Saturday, October 28, 2023
Agenda
- Activity: Generative Art (SwiftUI) – Part 3 of 3
- Finishing our implementation of these rules using SwiftUI.
- Discussion: AP Computer Science Principles
- An initial discussion about the exam and formal Create Task requirements.
- Activity: Review your Grade 11 Culminating Task
- Use time in this class to revisit your culminating task from grade 11 and compare it to the Create Task requirements.
- Begin considering ideas for a new app that will meet requirements.
- In our next class, we will build an exemplar app together in just one period that meets requirements.
Things to do before our next class
-
- sorting algorithms (operations with lists of data)
- generative art (working with control structures)
- Magic 8 Ball (building interfaces and using lists in SwiftUI)
- generative art (in SwiftUI)
- layout in SwiftUI
Thread 1, Day 6 - Thursday, October 26, 2023
Agenda
- Warmup: Defining Custom Shapes
- Revisit your understanding of how to define custom shapes.
- Attempt to define a path in the
Arrowstruct so that you can have an app that has this functionality. - First create a new Xcode project named Rotating Arrow.
- Then you can use this code to get started – all you need to do is fill in the
Arrowstructure'spathfunction.
- Activity: Generative Art (SwiftUI) – Part 2 of 3
- More progress on our implementation of these rules using SwiftUI.
- Exercise: Create a "Bento-Box" Layout
- Marketing teams must be able to convey new features in a concise manner to an audience.
- In recent years, Apple has used "Bento-Box" graphics to do so.
- Try to reproduce this image using SwiftUI, or use it as inspiration to design a bento-box themed view related to something you care about.
- Use SwiftUI Views Mastery as a reference.
Hint
Some keywords to look for examples of:
- foregroundStyle
- cornerRadius
- gradient
- Image
Also: the keyboard shortcut
Option-Shift-Kproduces the Apple logo.
Things to do before our next class
-
- sorting algorithms (operations with lists of data)
- generative art (working with control structures)
- Magic 8 Ball (building interfaces and using lists in SwiftUI)
- generative art (in SwiftUI)
- layout in SwiftUI
Thread 1, Day 5 - Tuesday, October 24, 2023
Agenda
- Activity: Generative Art (SwiftUI)
- How can we implement these rules using SwiftUI?
Things to do before our next class
-
- sorting algorithms (operations with lists of data)
- generative art (working with control structures)
- Magic 8 Ball (building interfaces and using lists in SwiftUI)
- generative art (in SwiftUI)
Thread 1, Day 4 - Monday, October 23, 2023
Agenda
- Portfolio: Sharing Long Blocks of Code
- Share code, not screenshots of code.
- Please continue to use screenshots to show the results of code being run.
- Portfolio: Handling Comments on Posts
- Do not mark comments as resolved in Notion so that the record of our conversation is preserved and easy to see at a glance.
- Discussion: Productive Use of Generative AI
- Looking at an example of when we might use a large language model to advance learning in this course.
- Discussion: How to Obtain Your Electronic Textbooks
- How to get your copies of SwiftUI Views Mastery and Working with Data in SwiftUI
- Activity: Implementing a Sorting Algorithm
- Complete this activity to solidify your understanding of core programming concepts (loops and selection statements) and begin to build your understanding of sorting algorithms.
- Be sure to make a portfolio post on Notion after completing the activity.
- Activity: Magic 8 Ball
- Complete this activity to review the implementation of a simple user interface using SwiftUI.
Things to do before our next class
-
- sorting algorithms (operations with lists of data)
- generative art (working with control structures)
- Magic 8 Ball (building interfaces and using lists in SwiftUI)
Thread 1, Day 3 - Thursday, October 19, 2023
Agenda
- Activity: Generative Art
- As a vehicle to review key topics from prior courses, we'll briefly explore generative art.
- First, on paper, then, by looking at several ways to implement this in code.
Things to do before our next class
Thread 1, Day 2 - Wednesday, October 18, 2023
Agenda
- Source Control: GitHub Account
- If necessary, creating an account
- Setting up a new access token
- Source Control: Ignored Files
- Some Xcode setup to ensure files that should not go under source control are ignored.
- Xcode: Creating a Command-Line Project
- Activity: Implementing a Sort Algorithm
- Here is an improved version of the code we developed together in class.
- This can be copy-pasted into your playground, as needed.
Things to do before our next class
-
- Post on Notion to share your progress, regardless of whether you were able to successfully finish the task.
Thread 1, Day 1 - Tuesday, October 17, 2023
Agenda
- Update Operating System
- Update your computer to macOS Sonoma if you have not done so already.
- Install Xcodes
- If you do not have this application installed just yet, please install it now.
- The app makes it easier to manage installation of Xcode versions.
- Install Xcode 15
- Use Xcodes to install Xcode 15.
Tip
Do not install Xcode via the App Store, as using this method means that it will automatically get upgraded when a new version is released (which is not always ideal).
- Use Xcodes to install Xcode 15.
- Course Outline
- Distribute Course Materials
- Please sign the form being distributed to authorize charges to your family's account at LCS for required reference books.
- Portfolio: Creating a Notion Account
- Please create a bookmark for your portfolio page in Notion.
- Activity: Developing a Sorting Algorithm