The following resources are example lesson plans which allow students to demonstrate computational thinking using projects which are unique to them. These examples represent ways educators can satisfy and meet the following learning outcome:
- Instructors and students will be able to use the appropriate platform of expression to demonstrate their ideas and conclusions to satisfy competencies, curriculum and assignment outcomes
- The educators will demonstrate various strategies to use when experiencing struggles in understanding
- The educator will prepare routines and materials for student reflection, focusing on work habits, understanding, and confidence
Creative Computational Thinking Lesson Plans
The following lesson plans are part of the broader Introduction to Computer Science curriculum which I have implemented into my grade 8 classroom over the last two years. Introduction to Computer Science is an engaging course that explores a variety of basic computational thinking and programming concepts through a project-based learning environment. The curriculum is flexible and approachable, with lesson plans adapted from the UC Berkeley CS 10. The philosophy behind the lesson plans is that this introductory course is approachable and made for a wide range of high school students from diverse backgrounds.
The lesson plans advocate for hands-on, immersive learning; students learn through discovery, experimentation and application rather than lecture based learning. These lessons will suit an online, hybrid, or face-to-face teaching model in schools. Lessons are structure with a brief introduction of the concepts or terms, with a guided activity to allow students to practice with and experience the concepts covered in the lesson objective.
Accessibility to the lessons plans was a main focus during the design; these lessons do not depend on an specific technologies or resources in the classroom or home other than computers with reliable internet access. The lessons are also designed without homework assignments, as the focus is to have all the learning completed with the support of the educator. If learning is completed entirely remotely, it is assumed the student will be equipped with a computer and reliable internet. If the learning model is hybrid or entirely face-to-face, then these lessons are designed to be completed within the “classroom” with educational support. Lab work and projects can be explored at home, given the motivation of the student to pursue the learning further.
Lesson 1: Introduction to Algorithms and Order of Thinking
The purpose of this lesson is to introduce students to the concept of algorithms and relate this concept to every day routines such as getting dressed, making a sandwich, or cooking. Students are given the freedom to construct an example of an everyday algorithm which suits the learning outcome while representing their individual interests and ways of thinking and understanding.
This lesson can be executed without the use of SNAP! (a block-based coding program explained below), and can be completed either online entirely, delivered using a hybrid teaching model, or completely offline in the classroom.
At the end of the lesson, students will be able to:
- Define algorithm
- Construct algorithms for performing simple tasks
- Identify real-world examples of algorithms
Lesson 2: The Language of Computer Science and Programming
The purpose of this lesson is to explore the different types of programming languages used in computer science using a class-based discussion and a student led activity. Students will understand that computers use a sequence of instructions or steps, written in a language that can be understood by a computer, that will be used by the computer to complete a task or solve a problem. Students will then work through an Hour of Code activity that explores computer programming and its applications.
At the end of the lesson, students will be able to:
- Complete small coding tasks
- Hour of Code
- Explain why computer programs are written in specialized languages
Background Information on SNAP!
SNAP! Block Based Coding Platform
Basic block-based computer coding can be explored using SNAP!, an approachable, rudimentary visual block-based programming tool with a flexible tool set. SNAP! is free and is ideal for introducing students to coding for the first time.
The following resources are available to support use of Snap! in these lesson plans:
- The Snap! Reference Manual
- Snap! examples and extensions
- ScratchEd online community for Scratch educators:
- Beauty and Joy of Computing curriculum:
Download a local copy of SNAP! as a backup:
Snap! can be downloaded to run locally on a student’s computer, however the projects will not be able to be save to the cloud and will need to be exported and then imported to the cloud when Snap! becomes available.
- Run Snap! from browser
- Click on the Snap! logo in the upper-left of the app.
- Choose “Download source” from the menu
- Save snap.zip locally on your computer.
- Extract snap.zip.
- Open snap.html in a web browser.
Interested in working with Microsoft TEALS to bring computer science to your classroom?
Technology Education and Literacy in Schools (TEALS) is a Microsoft Philanthropies program that connects classroom teachers with tech-industry volunteers to create sustainable CS programs. Volunteers support teachers as they learn to teach CS independently over time.