stumbling through computer science

Category: edci565

Lesson 2: The Language of Computer Science

Learning Objectives

Students will be able to:

  • Complete small coding tasks
    • Hour of Code
  • Explain why computer programs are written in specialized languages

Materials and Preparation

  • Computers with Internet Access
  • 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
  • Work through at least one of the coding activities on your own before the lesson:

World 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
5 minutes Introductory discussion
35 minutes Coding activities
10 minutes Debrief and wrap-up

Guiding Notes

Introduction

  • Introduce the concept of a 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
  • Play this Introduction to Programming Video by Khan Academy
  • Ask the group what aspect of programming might be the most challenging and what skills are the most useful
    • Sample guiding questions:
      • What are the steps required to write a computer program:
        • This is essentially developing an algorithm for writing a program!
      • What knowledge might make writing a program easier?
      • What might you need to do when writing a computer program that you have never or rarely done before?
      • What parts of programming are most intimidating or scary?
      • What are you good at that might help you be a good programmer?

Activity

  • Allow students to struggle with the activities if needed, stressing the importance of patience and persistence in programming.

Debrief

  • Guide students in a discussion about the activities including strengths, surprises and struggles
    • What was most challenging?
    • Explain that programming is a language and required editing and problem solving for a correct “sentence” or program to run and make sense
    • What was different about solving these computer program problems than other problems in school, other subjects, or in your every day life?
    • Why can instructions not be given in simple English? Why must we be limited to certain operations for building solutions?
    • If some students are interested, this can be an opportunity for a conversation about the difference between high-level programming languages and machine languages (assembly code). This video explains the difference between the two.

Accommodations and Differentiation

  • Let students struggle! Avoid the urge to show students the answer right away, and encourage them to try many approaches and develop partial solutions. This develops creativity in their expression of answers, as well as grit and determination when problem solving.
  • Do not let students skip out on certain steps, disengage or copy from a partner. The focus here is for individual expression of learning and demonstration of understanding. You can decide which students can work together, but only if collaboration and teamwork is part of your assessment.

Picking a program that is right for your students

  • LightBot Hour of Code is more challenging, but not substantially so, and is more game-like, which often leads to greater engagement. LightBot is recommended if students seem capable of handling the challenge.
  • SNAP Hour of Code is simpler, and has easier goals which take a shorter amount of time to accomplish. This task can be completed with the assistance of a guardian at home or with a teaching support in the classroom for students with specific learning accommodations.
  • It is unlikely that students will finish both activities in one class period. On the rare occasion some do, encourage them to explore SNAP! on their own or to try the full version of LightBot 2.0

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

Introduction

    • 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

Activity

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.

Debrief

  • 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 snap.zip locally on your computer.
  2. Extract snap.zip.
  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.

Critical Self Expression

This post provides a rationale for the three resources I curated to assist students with self expression when submitting assignments and demonstrating their understanding of content within the remote teaching model.

The 2019/2020 school year was drastically changed with the COVID-19 pandemic. The Ministry of Education in British Columbia directed school districts to employ an online method of emergency teaching, with a hybrid model coming into place for some schools in June. The plan for online and hybrid teaching brought about various challenges for educators, students, and educational planners. One aspect of the online and hybrid model is examining student independence and accessing platforms to demonstrate learning.

This blog post will highlight and examine tools which promote independent learning and expression from students during this time of online and remote teaching.

The resources listed in the above blog support independent learning and expression. My rationale post will look at the integrity and reliability of these resources.

Digital Media

VoiceThread
https://tlt.cofc.edu/2016/05/31/faculty-guest-post-incorporating-voicethread-into-hybrid-and-flipped-classes/

https://tlt.cofc.edu/2016/05/31/faculty-guest-post-incorporating-voicethread-into-hybrid-and-flipped-classes/

VoiceThread meets the needs of personalized demonstration of learning and unique expression of understanding of a topic. This program offers a variety of platforms to creating presentations and projects for students to explain their research, demonstrate their understanding of a topic or use original ideas and drawings to show the progression of a historical event or retell the major components in a story or novel. For older students, this VoiceThread is an ideal platform for developing digital portfolios and curating artifacts of learning when considering applications into post-secondary education programs.

Photo by Mark Fletcher-Brown on Unsplash

Photo by Mark Fletcher-Brown on Unsplash

As students progress and add more artifacts and creations to VoiceThread, their collection grows over time. This long-term collection allows for teachers to support student growth in digital literacy and also content knowledge to support assessment and demonstrate learning while students are learning remotely. Collaboration is a key feature, with students being able to co-create resources as well as comment and critique the works of their peers. They can collaborate and each add their own choice of media, such as video, drawing, images or audio to create a polished, diverse product demonstrating each contributing members voice and understanding.

Photo by Jakob Owens on Unsplash

Photo by Jakob Owens on Unsplash

In regards to privacy and protection of information, students can choose to make their projects public or private by adding their projects to a public gallery to be viewed by all, or sending a unique URL to the teacher over email. This does require students to be prepped on online safety, protection of personal information and plagiarism guidelines when using online content and assigning the appropriate contributions when referring to other peoples’ ideas and content.

Photo by Brooke Lark on Unsplash

Photo by Brooke Lark on Unsplash

When sharing a URL privately, it means that students will need to have an email and understanding of email to be able to submit projects only the teacher can view. The embed function allows for users to share projects on school websites or their own. While this is great for responsible curators, teachers will have to be mindful of who they give access to for their class website and make sure to monitor what content is being shared and created. Parent participation is needed for this resource, as it might be challenging for students to work with some of the new content and figure out how to share, send and comment on the work of their peers. Collaboration and flexibility in terms of expression and accessibility makes this VoiceThread a strong resource for remote teaching and individual student expression of knowledge.

Digital Cartoons

Toontastic 3D
https://apps.apple.com/us/app/toontastic-3d/id1145104532

https://apps.apple.com/us/app/toontastic-3d/id1145104532

Toontastic 3D is a user-friendly resource geared at younger audiences who want to display creativity in story telling, using a more structured and self-guided approach to animation. This app is approachable because the steps to story-telling are integrated into the program and guide users, even very young, through the creation process at every point along the way.

Students are given the creative liberty to create and direct stories in a manner which is personal and easy to use. From the start, the interface may be a bit challenging as students get used to moving their characters around and interacting with the set, but the overall approach to designing the set and characters, narrating the story using audio and other customization features are easy to use. If a student did have mobility issues, this would not an accessible app and does demonstrate limitations for this program. It is meant for students who are able to read written instructions, apply those instructions to their own project and have the mobility skills to use their hands to move the characters and the voice to record and narrate the story. If a student did have audio or mobility limitations, they could work with a parent or older sibling to use this platform, but it does take away from the individual creativity.

Photo by Benjamin Catapane on Unsplash

Photo by Benjamin Catapane on Unsplash

The program is offered as a free app on Android, iOS and Chrome, which does imply that data is used from user interaction for targeting advertisers and marketers for product placement and ads when using the app. The information required for creating an account is limited, with no personal information needed, which reduces the concern about privacy somewhat. Teachers assigning this as a learning tool are assuming the student has access to a device at home which support this app and parental support in case they struggle with the instructions and applying the tips to their own project. Assessment and submitting their project is challenging, as the teacher can only access this project if the student texts or shows the teacher in person. This app would be a constructive supplemental learning tool, but not necessarily effective for formal assessment. Language could also be a barrier, as students need to record their own audio for the narration of the story. This is an app geared at elementary school aged students, but it allows for creative demonstration of story ideas in a unique and engaging way.

Audio Response / Podcast

Anchor Podcast App
www.anchor.fm

www.anchor.fm

Two major components of the core competencies from K-12 are speaking and listening. Demonstrating learning through a podcast recording offers demonstration of those two skills. There are opportunities for cross-curricular learning, such as recording a podcast episode about a scientific topic to satisfy language arts and science content; language arts will be intertwined if a podcast is used in any other subject because students need to write, narrate and record their podcast episode about the topic. It engages students and teachers to expand their digital skills, modify their communication techniques for different audiences (incorporating humour into your episode to engage a wider audience, for example) and learning skills to tell stories or demonstrate ideas in an engaging way.

Photo by Jason Rosewell on Unsplash

Podcasting for demonstration of knowledge is accessible to students as they do not need access to fancy recording equipment or expensive programs; this app reduces the need for technical knowledge as the app walks the user through the recording, audio editing and publishing components to complete an episode. The ability to stop recording on one device and pick it up later for editing or continued recording increases accessibility as students can work on this at home if school is not in session or partially in session. Collaboration in person or within the app allows students to connect and co-create episodes even if they are not able to be together in person. Barriers to this app would be the assumption that students have a safe, quiet place to record their podcast, the device to record it on outside of school, and the support from their parents if they run into issues.

Photo by Hadis Malekie on Unsplash

Photo by Hadis Malekie on Unsplash

As the app is free, there are limitations and concerns about privacy. Within the app, the editing functions are limited and students can do some basic trimming and editing, but they are unable to re-record parts once the episode has been strung together. The episode is recorded in a single file which makes editing or trimming middle portions impossible. If students have issues in the middle of the episode, there could be frustration and conflict when editing, leading to a disappointing end result.

Photo by Nick Fewings on Unsplash

Photo by Nick Fewings on Unsplash

In terms of digital literacy and safety, the app has some flaws. The first is that any podcast is public and can be accessed by anyone using the app. Personal information, depending on what is required of the user when they are creating the account, is displayed publicly. While this public access to podcasts can be an issue, with the right background preparation and insight of the teacher, students can be informed on how to keep their identities anonymous, respect other podcasters personal information when recording and episode, and maintain somewhat private on a public domain. The trade-off for a free app with in app purchases is that the data is collected and used for third-party marketing and advertising.

While I can’t see a school district embracing this app entirely, it does offer an easy option for students to explore the world of podcasting, digital media, and self-expression.

© 2020 Techtrovert

Theme by Anders NorenUp ↑