"Swift Playgrounds is a revolutionary app for iPad and Mac that makes learning Swift interactive and fun. It requires no coding knowledge, so it’s perfect for students just starting out. Solve puzzles to master the basics using Swift — a powerful programming language created by Apple and used by the pros to build today’s most popular apps. Then take on a series of challenges and step up to more advanced playgrounds designed by Apple and other leading developers." 

https://www.apple.com/ca/swift/playgrounds/

Teacher Resources

Apple's Everyone Can Code series supports teachers and students by learning to code in Swift Playgrounds. The content includes examples, Keynote lesson slides, answer keys, and assessment suggestions.  

These books are also available in French.  Search "La programmation pour tous" in the Books app.

Develop in Swift for Secondary Computer Studies and Programming Courses

Apple's Develop in Swift curriculum is intended for high school students to explore designing and building a fully functioning app of their own. As they develop new skills, students will master key coding concepts using Swift and Xcode.

Supporting teacher guides provide tools to deepen engagement with aspiring app developers, including curriculum units with guided app projects and support through the app design process. 

How do I get started with coding?

Getting Started with Coding

Tip Sheet

Assessment Ideas

Coding Journals

"Coding journals or learning logs can also be a powerful tool for learning programming, consolidating coding skills, and self-reflection.  

There are many benefits to support writing a coding journal. In addition to the basic journal writing learning objectives of improving written communication, coding journals can:

  • Articulate ideas
    Students write about their creative plans, list coding steps, document their work, and/or set realistic goals. Rather than jumping right in and starting to write code, journals can be a tool to plan and organize animations, stories, or games.

  • Build coding skills
    When natural language is used to express the actions that are to be translated into coding language, understanding and retention is enhanced. As they write in their own voice, students build a firm foundation for coding terminology. Listing both the plain text and the programming algorithms can become a personal ‘how to’ dictionary to be referenced as needed.

  • Problem solve
    Debugging is a routine part of learning to code. When students are stuck, they can turn to a coding journal to figure out a solution. Writing about the problem forces the programmer to slow down their thinking and use self-talk to describe the issue and trouble shoot. Each part of the code needs to be checked in a logical manner. This process has been referred to as rubber ducking. The term came from a programmer who carried a rubber duck around with him. Whenever he had a problem, he would explain it to the duck. In listing the code line by line, he would often find the error and fix it. In this case, the journal becomes the rubber duck to which the author is ‘speaking’.

  • Reflect and track progress
    A programmer can write down all the attempts made to solve a problem in a journal. When the journal is reviewed afterwards, it represents a progress report of all the knowledge gained and growth achieved. This is authentic evidence of learning. Written communication of ideas can make a student become more thoughtful about their new skills. A journal can be a form of self-assessment.

  • Express feelings
    The process of coding frequently leads to challenges and trouble shooting. In a coding journal, students can be encouraged to reflect critically on their feelings, whether it is hope and enthusiasm for new projects or detailing frustrations with algorithms that don’t ‘work’. Writing about obstacles can defuse the feelings and modify perspective.

  • Promote collaboration
    Instead of private writing, coding journals can be composed using social media. Blog posts and tweets encourage commenting. As students help each other they build responsible digital citizenship skills while developing programming skills at the same time. Positive support from peers and input from teachers forms connections, fosters teamwork, and boosts confidence."

https://www.technokids.com/blog/technology-skills/coding-journals-students/

Coding & Social-Emotional Learning

Learning to code is a process that requires students to become patient and persistent problem-solvers.  They will routinely make mistakes and have to find and resolve them.  This has the potential to frustrate and deter some learners.  As such, this is a great opportunity to focus on social-emotional learning and in particular, recognizing sources of stress and coping with challenges and maintaining positive motivation and perseverance.  Here are self-assessment tools you can use with your students for each of the SEL expectations.  

SEL Self Assessment for Coding

Monograph: Student Self-Assessment

Back to: