stumbling through computer science

Category: Uncategorised

Lesson 1: Introduction to Algorithms

Learning Objectives

Students will be able to:

  • Define algorithm
  • Construct algorithms for performing simple tasks
  • Identify real-world examples where algorithms are used

Materials and Preparation

  • Computers if teaching online / hybrid
  • Internet access if teaching online / hybrid
  • Synchronous online meeting tool such as Zoom or Bluejeans if teaching online and completing the lesson with the class
  • Asynchronous such as Google Classroom if teaching online but recording the instructions for students to complete on their own
  • Large poster paper and markers for students to write out their ingredients
    • option to submit ingredients list via word doc, online whiteboard, google docs, etc.
  • Materials for the sandwich activity either at home or in the classroom
    • sandwich ingredients such as peanut butter & jelly
    • utensils such as a knife and spoon
    • plates
    • napkins

Word Wall

Terms introduced you may want to add to a classroom Word Wall either online or in person.

Word Definition
Algorithm A complete, well-defined sequence of steps for completing a task or solving a problem.
Computer An electronic machine that can solve different problems, process data, store & retrieve data and perform calculations.
Computer Science The study of the principles and use of computers.
Computer Program 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.
Debug A process of locating and removing computer program bugs, fixing errors or abnormalities.
Programming Language A vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks.

Lesson Plan Pacing for a 55 Minute Lesson

Duration  Description 
5 minutes Welcome, attendance, bell work, announcements
10 minutes Introductory discussion; present activity
10 minutes Students write first algorithms
5 minutes Sample algorithm execution
10 minutes Students debug/rewrite algorithms
5 minutes Second sample algorithm execution
10 minutes Debrief and wrap-up

Guiding Notes


    • Invite students to discuss what is a computer, what do they do, and what they think computer science is
    • Create a group document either online or in person defining the following terms (use the word wall as a guide)
      • algorithm, computer science, computer, program, programming language
    • Display these definitions in your classroom, either in person on a poster or online on a slide, for example, during the lesson
    • For some context and interest to grab students attention, you can talk about the fact that the first computers were actually humans, where they were people who made calculations with the aid of a calculating machine


Writing Algorithms

    • In pairs or small groups, students will attempt to develop an algorithm or an ordered list of instructions to teach a robot to brush their teeth, or to prepare a peanut butter and jelly sandwich (check for food allergies before performing this exercise). Specify to students that their algorithm must be complete and detailed enough for a “computer” (the teacher) to unambiguously follow the steps and achieve the desired result.
    • “Algorithms” or the steps should be written on paper or in the shared google doc or whiteboard to be shared and reviewed.

Sharing Algorithms

    • After groups have finished, choose a group and have them read their instructions. Act as a computer and follow each step as literally as possible. If there is ambiguity, or if a step is not possible to complete, point out the error.
    • When an instruction is ambiguous or impossible, interpret the algorithm in the most atypical (and hilarious) way possible. This will reinforce to students that many seemingly clear instructions can be taken many ways.

For the PB&J activity, common errors will include:

  • Failing to open a container before using what is inside
  • Response: Try (and fail) to access the inside in a humorous fashion (e.g. try to reach through the bag or jar, acting confused as to why you cannot reach the ingredient inside)
  • Failing to specify in which orientation or position to use something (e.g. “grab the knife” but not by the handle, “put down the bread” but not on the plate)
  • Response: use or place the ingredient in an obviously (and humorously) incorrect way (e.g. grab the knife (carefully) by the sharp end, put the slice of bread on the table next to plate, spread peanut butter around the crust instead of on the face)
  • Using instructions that are too broad (e.g. “pick up the bread” to mean a single slice, “put the peanut butter on the bread” to mean spreading a small amount)
  • Response: Ask for more detail, or interpret the instruction literally
  • Combining multiple steps into one instruction (e.g. “spread peanut butter on the bread” without specifically opening the jar, putting peanut butter on the knife, using the knife to spread, etc.)
  • Response: Ask for more detail

Most algorithms will fail. If there is time, repeat the process with one or two other groups.

Here is an example video of the PB&J activity and the hilarious attempts at writing algorithms

 Debugging / Fixing Algorithms

  • Spend a brief moment explaining that programming is the language of computers, and that, like writing in english, some errors are expected before the final product is produced. Fixing grammatical errors in computer programming is called “debugging”.
  • Have the students fix or “debug” their algorithms and attempt to fix all errors and vagueness.
  • Track changes or other visual editing techniques on Word or Google Docs will show the teacher the thinking process.
  • On paper, using a different colour pen to make changes will show their edits

Executing or Testing the Algorithm

  • Once students are done debugging, execute, or try the algorithm again
  • Hopefully, at least one group will have a functioning algorithm. If not, make changes on the fly and request a fix before proceeding. The goal is to create a sandwich before the end of class
  • Many algorithms will still have similar problems to the first iteration. Others will have too much detail (see below) or other, subtler problems (such as skipping trivial steps like putting the two slices of bread together). Try to take note of issues while circulating so you can address them quickly.


  • Ask students why there were problems in the first round, and how those problems were fixed. Encourage students to collaborate and add to a collective online document or poster. The use of computer science terminology (debugging, execution, algorithm, etc.) is encouraged
  • Have students discuss what lessons can be learned from this activity and how they can be applied to programming and computer science

Accommodations and Differentiation

  • Check for food allergies before letting students build their own sandwiches either at home or in the classroom
  • Instead of peanut butter, you can use cream cheese & jelly, toast with butter and jam, or a deli sandwich with mayo or mustard. Students do not have to make a physical sandwich, as the focus is on the order of instructions (the algorithm)
    • This is an option for students to make their “sandwich” out of clay, a cartoon drawing, or slips of paper with the words written. Be creative!
  • If students are struggling with the level of specificity, accommodate and allow for basic assumptions to be made to ease the process to enable all students to come away with an understanding of what an algorithm is
  • In the “debugging” round, some students may go overboard with the level of detail in an attempt to resolve all possible ambiguities. Remind these students that there are some basic instructions that can be easily understood by most people, and there is no need to go into further detail in those cases.
  • If you feel students can handle the discussion, you can draw a parallel to machine code and abstraction

Creative Computational Thinking

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:

Learning Outcome

Student Independence:

  • 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.

SNAP! Support

The following resources are available to support use of Snap! in these lesson plans:

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.

  1. Run Snap! from browser
  2. Click on the Snap! logo in the upper-left of the app.
  3. Choose “Download source” from the menu
SNAP! Download

SNAP! Download

  1. Save locally on your computer.
  2. Extract
  3. 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.

Background Check

Pedagogical Alignment

The model which is the most useful for incorporating technology into my classroom is the TPACK model because of how the lessons are developed and planned. First, instructor decides the learning outcomes of the lesson; this is the content. The second is which activities will be used in the lesson; this is the teaching pedagogy. The third is deciding which technology, from pens and paper to smartphones and videos, will be most effective in the activity for delivering the content. This model aligns with how I currently plan my lessons, so to be able to support my teaching methods with a model is very reassuring as a new educator. As a secondary trained teacher with a degree in science, it was a requirement when being hired as a teacher that I have a strong background in science and math. When teaching in a high school setting, your background knowledge in what you are teaching is critical in order to convey higher level thinking and complex topics to older students. The TPACK model prioritizes content and background knowledge, which is what has been my priority as an educator in my pedagogical development. Using pedagogy and technology to support content delivery is the basis for the TPACK model, which is how I structure my lessons and units in my science and math classes.

Background Knowledge

When examining the TPACK model, background knowledge and a high level of understanding of the content is required to simplify and present the material to students. I can relate to this through my teachings of computer science and biology to secondary students. During the summer, I completed the Introduction to Computer Science course with Microsoft, where I learned the basics of coding, programming, and simple game development using coding software. After completing the introductory course, I attended some workshops in Java script and Python coding in order to become proficient at those programs as well. Before starting the summer training, I had no previous experience using computer coding software, and I knew that I would not be able to effectively teach my students without having some background in this topic myself. Taking the Java and Python training courses allowed me to become more advanced in the course than I will be presenting to my students. It also provided an extensive knowledge base for me to draw on while working with my students. Reflecting on the TPACK model, I would have struggled to present more complex lessons in a simplified way in the introductory course had I not done the more advanced training. The TPACK model acknowledges that in order to simplify a concept for students, the instructor must have a higher level of understanding of the content. I believe this higher level of understanding also instills confidence in the instructor and encourages teachers to take on new courses that they may not have taught before. With this Java and Python training, I was also able to assess which coding software we would be using to best support the students learning. Without this further training and increased expertise in my field, I would not have been able to effectively decide which programs or technology would be best.

Supporting Inquiry Based Learning

In the new curriculum, each subject has a large inquiry based component, where students have the opportunity to explore a topic of interest to them within the subject. With inquiry based research, topics can expand far beyond the prescribed curriculum, and advanced questions can be explored. Without a teacher who has a well-developed background knowledge of the topic, the students research areas and questions could be limited. If the teacher leading the inquiry research has an extensive background knowledge of the topic, students can explore complex questions and broader subjects because of the teachers’ expertise in the field. The pedagogical insight for leading an inquiry based unit is highlighted, and the use of technology will be properly utilized because the teacher is aware of how to lead an inquiry unit based on a topic they are familiar with. Inquiry projects are best supported using the TPACK model, because it acknowledges the necessity of having a well balanced educator in the topics of teaching pedagogy, background content, and technology.

Technological Support

The TPACK model uses technology to support the content. In order to use the technology most effectively, it is critical to have a sound understanding on what you are teaching. This model favours the well-rounded individual and backs up lifelong learning. Teachers with a sound background in biology are able to go to a professional development conference to learn about a way to present the learning using a new technology and then present the lesson with that new technology in their classroom. They are not experts in the field of biology or technology, but their interest and experience in both fields allows them to blend the two worlds together to present the information to their students. This method reflects my method of teaching because I am actively looking for ways to present my information better. I have a sound understanding in both my subject areas of science and math, and technology – but I am not an expert in any of those topics. My skills as an educator and pedagogical background in teaching young adults, mixed with this technical knowledge background enables me to assess which technology to use for each lesson based on the content and learning outcomes for the student.

The Who and The What

The students and the learning environment are large components in the TPACK method, along with the technology and content. Who you are teaching to is as important as what you are teaching. While the content you are delivering to your students may be the same, the technology and teaching styles will vary based on which students you have in your class and how they are best able to learn. An example of this is while one math class may learn best through notes from a slideshow and guided practice, another class may learn best through videos and small group activities. The learning outcomes may be identical, but the technology and pedagogy behind the delivery is different depending on which group of students are being taught and their differing learning environments.


The SAMR model appeared to be much more regimented in terms of the steps used to implement the model in your teaching. While the TPACK model functions as more as a Venn diagram, integrated model, SAMR was more of a step by step guideline for using technology in place of traditional teaching, when appropriate. Substituting technology for pen a paper, enhancing your lesson by using technology such as internet links rather than textbooks, modifying your lesson to use technology when it is more appropriate, and assessing whether or not technology would make your lesson more valuable to your students. The augmentation portion of the SAMR model aligned most with my teaching beliefs where it is important to enhance your lesson with technology where appropriate, rather than doing it to tick a box or use the technology simply because it is there. The technology needs to have a purpose, whether it be replacing another resource of inferior technology, or supporting handwritten notes to deliver content, including graphic organizers such as Prezi. Currently, using my NewRow online classroom platform to deliver and moderate my computer science course, is an example of augmenting my unit to include technology. Instead of a traditional face-to-face model of teaching physically in the classroom, I have used NewRow to allow for computer science professionals in Vancouver to deliver the course content in a much more effective way to my students. Augmenting my unit and replacing face-to-face with online instruction enhanced the quality of my lesson, and follows the SAMR model process. While both models are effective and view technology as a supplemental, not essential part of education, the wholistic integration including pedagogy, knowledge background, and technology with the TPACK model resonates the most with my teaching philosophy.

1994: The World Wide Web Was Born

Book vs e Book reader published November 16, 2012 by Frederick Deligne

Before reading the articles on the Clark-Kozma media debate, I expected Clark to completely swear of technology, and for Kozma to embrace using technology entirely. I predicted that Clark would support no technology in the classroom whatsoever, and only use paper, pencils, and direct instruction in education and learning. Kozma, on the other hand, I thought would opt for entirely online, self-directed courses, using Smartboards, videos, and mediums like digital games to connect students learning without direct in-person instruction. A debate is usually black and white, with one side opting for no technology at all, and the other supporting it entirely for all learning. What I discovered, after reading and watching supporting videos regarding the Clark-Kozma media debate, is that it wasn’t really a debate at all, but rather an elaboration and continuation of the examination of the usefulness of technology in education.

Clark presented the point that technology and media do not need to be present in order for learning to occur, and that only certain medias are more effective for certain learners, learning goals, and tasks (Clark, 1994). I agree with Clark’s point that the media and technology aren’t necessary for the learning to occur; teachers and educators must be present in some form or some point of the learning to direct the students to the correct learning outcomes. There needs to be critical assessment from the teacher to ask “is this media supporting what the learning outcomes of the student are?” The media is the vessel or portal from which the content and lesson comes from, but the media or technology platform is not the source of content or material. In order for the media to be used effectively, there has to be a source of knowledge or information that is integrated into the technology. Let’s look at a Smartboard, for example: the Smartboard alone is not what the students are using to learn; they are learning the content that the teacher or educator has loaded onto that technology which is then presented through the Smartboard media in an integrated way that is captivating and experiential. Without the effort from the teacher to load the videos, whiteboard notes, slideshow animations and content, the Smartboard alone would not be the source of learning, it would just be a blank digital screen. The merging of content and media is effective because it delivers content in a dynamic, multimedia way which is engaging to learners.

The reason I feel that this Clark-Kozma media debate is less of a debate and more of an elaboration is because Kozma seems to take Clark’s points of replaceability, and the inability to learn from media alone, and find a space that media can be effectively used, despite its shortcomings. He acknowledges that media alone won’t deliver a lesson, but he does support the idea that media can be used to deliver a dynamic, engaging platform to deliver otherwise dull or difficult content. His argument that using media is a complementary process connecting the learner, content, and technology to allow for the information to be processes in a multitude of ways, including visually, audibly, and kinaesthetically, is one that I agree with. His perspective on technology comes across as an agreement to Clark’s perceptions of the shortcomings of technology and seems to offer a solution for where technology and media can be useful in education. That being said, if I had to pick a side in this loosely defined debate, it would be with Kozma because of his practical merging of technology, media, and learning.

It has been 25 years since the Clark article was written, and a lot has changed in terms of media and technology both inside and outside of the classroom. Smartphones were an inconceivable notion of the future, and just having one computer in the entire school was deemed as high tech. Students were taught using blackboards, paper, pens, and textbooks. Teachers taught at the front of the room in a face to face manner, and once they left the classroom the only way to connect was over the telephone or waiting until class the next day. I can relate to Clark’s views on technology because given the time when this article was written, there was skepticism on the new wave technology and how it would change the world we once new. Terms like “new-age”, “revolutionary”, “the computer of the future” were being tacked on to computers, calculators, and technology programs which gave the sense that it was hokey and a gimmick. I can imagine that teachers were not receptive and unsure about spending all of the school funds just to have a computer in their classroom which may become obsolete within the year. Technology was so new in schools and educators were not largely familiar with the programs or how to use the new multimedia devices, which meant they were not being properly integrated into the classrooms and learning. Computers were seen as a fun supplement to the learning and something to use for exploration and free-time after the real learning had occurred. In 1994, the World Wide Web was invented, so it is no wonder Clark did not see a connection between technology and learning… because it was such a new idea!

Flash forward 25 years later, with over 45 billion web pages existing and everyone owning their own smartphone with endless internet access in their own hands, technology has changed quite dramatically since the release of Clark’s article. It takes a few generations for new ideas to become integrated into large social groups, and the same goes for integrating and finding useful ways for technology to become part of education.

The new BC curriculum has suggestions for technology in every subject, and courses around media design, computer science and digital literacy have been created as a response to the changing job market, and presence of technology, electronics, and media in today’s society. What was once a flashy new invention is now an everyday, completely integrated existence. While Kozma’s article was also published in 1994, his views on the integration and supportive opportunities for technology and learning apply to our education system and student needs in our schools today. I am supporting my students through an introduction to computer science course, where they are learning the basics of coding, algorithms and computer literacy. The entire course is run through an online classroom, where instructors based in Vancouver are leading the course from their offices remotely. The instructors are experts in computer science, and have developed a curriculum to support the students learning of basic computer science. From Kozma’s perspective, the online classroom is not the source of the learning, but rather the support and platform through which the learning process occurs. The use of videos, digital whiteboards, coding games, and programs like SNAP! are used to transfer the instructors knowledge of computer science and coding to the students. Without the media, this learning could not occur, or would be much less effective, because the communication of ideas and theories revolving around computer science could not be as accurately demonstrated or taught.

There are implications for the misuse of technology in the classroom. The first is with students taking advantage of the media in ways which are not productive to the learning process, such as texting on their phones or playing games on the computer when they are supposed to be using their phones or computers for research or watching a movie. Technology and media redirect the control of the teacher, and it may be harder to manage a class when the technology is being used. It is difficult to manage a course when the instructors are online and not in person, or when students are asked to watch a movie about space travel, rather than learn about it from the teacher on the board at the front of the room. Direct, face-to-face instruction, with limited supplies is the easiest teaching situation to manage in terms of staying on task and classroom management, but that isn’t what learning and education should be about. Students need to have opportunities to explore new technology, outlets for learning, and be given a chance to learn though a multitude of ways. There is a time and place for media just as much as there is a time and place for teaching a lesson at the front of the room with students using pencils and paper. In this day and age, technology has come a long way and it is important to harness its potential to support the learning of our students.

Education is such a broad subject, with many different aspects involved in learning and students. There will always be new technology, fads, and initiatives developed which claim to be the next best thing in education. These new ideas and initiatives being introduced all the time include technology, programs, methods, and curriculum. Each new idea will spark debate amongst educators, because we work in a passionate field where everyone aims to provide the best learning experience for their students. With new fads and studies coming out, debates will form over which ones work the best for students. There will be topics or tools that I will disagree with, or see as impractical, but in order to deal with conflicting opinions, it is important to keep in mind that educators will always have their students best interests in mind and that we are all working towards the same goal of creating educated citizens of the future.

© 2023 Techtrovert

Theme by Anders NorenUp ↑