Lessons in Computational Thinking in English Language Arts

Thinking Like a Computer: Introduction to Computational Thinking

This lesson is meant to introduce students to the concept of computational thinking and get students interested and engaged in learning about computational thinking. In this lesson, students will get to see the power of computing through demonstrations and fun hands-on activities.

Abstract(ion) Art: Introduction to Abstraction

This lesson plan is designed for students who are just beginning their education in computational thinking. In this lesson, students will learn about abstraction through a blend of lecture, hands-on learning, and discussion. Teaching this lesson early on will help students better understand the concept of algorithms.

Learning Algorithms through Dystopian Novels

This lesson is meant to continue to bridge the gap between the English curriculum and Computational Thinking lessons. By focusing on algorithms, the students will delve more thoroughly into the computational aspect of the curriculum. This lesson relates heavily to the novels that the class had previously covered. 

Building your Story: Learning Algorithms

In this lesson, students should have an understanding of what an algorithm is and will apply this concept more in-depth. Students will review the parts of a story, such as a climax, falling action, resolution, etc., to create an algorithm of making a story. Students will then break off into groups to each work on an individual step of that algorithm and then meet back together to put the story together to introduce the concept of parallel processing.

Refine Time: Learning Inferences + Models

This lesson plan is designed to help students understand how to refine tasks/procedures through computational thinking concepts. In this lesson, students will optimize an existing procedure and learn vocabulary that helps describes how the refinement process works. Teaching this lesson early on will help students better understand the concept of functions.

How to FUNCTION in Day-to-Day Life

This lesson will serve as a branch into working with functions and will ultimately branch into a more technical lesson where the students will learn how to properly code functions. By learning the basics of what functions are and how they apply to their day-to-day lives, students will be able to gather a firm understanding of the subject before learning the coding aspect. This lesson plan can be implemented in any classroom by having the students create functions based on whatever subject is being taught: characters’ actions for an English class, math problems for a math class, etc. 

Saving Shakespeare: Learning Encoding

In this lesson, students are tasked with encoding Shakespeare’s A Midsummer Night’s Dream in an attempt to keep Shakespeare’s work more private. Students will use various techniques of computational thinking, such as decomposition and pattern matching, to figure out how pieces of Shakespeare’s work are encoded.

 

Learning Variables through Dystopian Novels

This activity will play onto the strengths of the English teacher since the students will be working with materials that they have already covered, and are comfortable and familiar with. They will use characters, themes, occurrences, and trends in the novels to categorize data based upon the types of variables. This lesson helps ease students into the computational thinking unit while keeping the teacher confident. 

Unpacking Variables: Learning Variables

In this lesson, students are given an introduction to three different types of variables - strings, integers, and booleans. The concept of a variable is related to how an envelope abstracts the letter inside, much like a variable abstracts the data stored. The activity that students will do is creating their own version of a popular Shakespearean sonnet by assigning values to variables.

 

EXCELent: Learning Data Tables

In this lesson, students will see a data table and will become familiar with the purpose and anatomy of data tables. We will show students how to refine data tables and store data in a standard way. Students will work with the teacher to identify variable types (integers, strings, booleans) and begin to appreciate the power of standardized data tables.

 

Addressing Variables

In this lesson, students are taught about memory addressing and how computers use memory addresses to find the value that variables are holding. This lesson also includes a quiz game that will review some of the computational thinking ideas learned in previous lessons.

 

Stacks and Queues

The focus of this lesson is for students to learn about data structures known as stacks and queues. Students will learn the formal definitions of each and learn about the differences between the two. They will be able to use this information to come up with examples in their daily lives for both types of data structures through activities in class.

 

A Brief Introduction to Compound Conditionals (if-else statements)

The focus of this lesson is for students to understand the logical flow of compound conditionals, specifically if-else statements. By the end of this lesson, students should be able to comprehend and implement if-else statements with real-life examples through several in-class activities. In this manner, students will learn how decision-making skills as explained by if-else statements are a vital component of computational thinking. 

 

A Brief Introduction to Coding in Java Script Using If-Else Statements

This lesson is an extension of the previous lesson about Compound Conditionals (if-else statements). Students will now be able to take if-else statements to the next level by applying it to coding. By the end of this lesson, students will have a fundamental understanding of coding and will even be able to answer some basic coding questions.

 

The Basics of Linked Lists 

This lesson focuses on students learning the basics of how Linked Lists work. By the end of this lesson, students will be able to understand what Linked Lists are and how storage collection of items is a helpful aspect of computational thinking and computer memory. At the end of the lesson plan, students will be asked to use their memory to do a fun activity and complete an exit quiz! 

https://drive.google.com/drive/folders/1Rq372N1Ts8SVG_2p-2DQqXNG87pb4sAr?usp=sharing