Use Sophia to knock out your gen-ed requirements quickly and affordably. Learn more
×

Introduction to Computer Programming - Commands, Repeat Loops and If Statements

Author: Chris Boe

Project Overview

As a computer science teacher, I work with students who are users of technology but do not understand how technology works. Therefore, the purpose of this mini-unit is to introduce new computer science students to basic computer programming concepts in a fun and safe manner. The mini-unit will utilize the "Minecraft Hour of Code" tutorial at https://code.org/mc integrated with three "unplugged" activities. At the end of the mini-unit, the students will design and create their own Minecraft project.

Theoretical Approach

My goal for this project was to identify a fun and safe method
to introduce computer programming concepts to students who may or may not have a strong foundation in problem solving skills. In addition, I did not want to reinvent the wheel or establish the need to submit a procurement request as my school district has limited resources.

Unfortunately, there was not a single resource with a mini-unit
(3-5 lessons) which would satisfy my school’s classroom standards as well as provide a learning opportunity for young students. Code.org has established 5 courses: Course 1 for ages 4-6, Course 2 for ages 6-18, Course 3 for ages 8-18, Course 4 for ages 10-18 and the Accelerated Course for ages 10-18. Each course is designed to be completed in 20 hours. Code.org has also created 9 games (or story lines) which do not incorporate lessons but progressively allow a student to create their own game or story line utilizing prominent themes such as Star Wars or Angry Bird. After deliberately reviewing the courses and games, I decided that Course 1 and 2 were too simple for high school students. However, the other courses neglected some key concepts incorporated into Course 1 and 2. In addition, all of the courses are designed to last 20 hours and I wanted a 3-5 hour mini-unit. The games such as Star Wars or Minecraft are exceptionally engaging. However they do not integrate the learning of computer programming concepts so that a student may be evaluated in order to determine if the concepts have been grasped.

Therefore, I integrated and repurposed different aspects of
Code.org’s resource with the goal of creating a mini-unit which may be taught in one week and thoroughly hooking in the world of computer programming. 

Source: Code.org

Design Process

Project Implementation - Part 1a

Unplugged lesson plan for Commands from Code Studio allows students to learn concretely and then apply abstractly to Minecraft puzzles.

Integrate with Minecraft Hour of Code (1st 4 Puzzles) which introduces Commands such as "Move Forward", "Shear" and "Destroy Block to students.

Lesson will be differentiated depending on the demographics of the class. For example, ELL students will benefit from the vocabulary section but the section may be simplified with a word wall for more advanced students.

/

Implementation Part 2a

Unplugged lesson plan for Loops from Code Studio allows students to learn concretely and then apply abstractly to Minecraft puzzles.

Integrate with Minecraft Hour of Code (5th-11th Puzzles) which introduce Loops to students.

Lesson will be differentiated depending on the demographics of the class. For example, ELL students will benefit from the vocabulary section but the section may be simplified with a word wall for more advanced students.

/

Implementation Part 3a

Unplugged lesson plan for Conditionals from Code Studio allows students to learn concretely and then apply abstractly to Minecraft puzzles.

Integrate with Minecraft Hour of Code (12th-13th Puzzles) which introduce Conditionals to students.

Lesson will be differentiated depending on the demographics of the class. For example, ELL students will benefit from the vocabulary section but the section may be simplified with a word wall for more advanced students.

/

Project Implementation - Parts 1b, 2b, 3b and 4

Minecraft Hour of Code - 14 Puzzles (https://code.org/mc)

  • Lesson Part 1b)
    • 1st 4 Puzzles
    • Introduces Commands such as "Move Forward", "Shear" and "Destroy Block to students
    • Students will complete unplugged lesson for Commands prior to applying concrete ideas to Minecraft
    • CSTA K-12 Computer Science Standards (from online version of unplugged lesson):

      • CPP.L1:3-04 - Construct a set of statements to be acted out to accomplish a simple task.

      • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

      • CT.L1:6-01 - Understand and use the basic steps in algorithmic problem-solving.

      • CT.L1:6-02 - Develop a simple understanding of an algorithm using computer-free exercises.

      • CT.L2-03. Define an algorithm as a sequence of instructions that can be processed by a computer.
      • CT.L2-06. Describe and analyze a sequence of instructions being followed.
  • Lesson Part 2b)
    • 5th through 11th Puzzles
    • Introduces the concept of Loops to students
    • Students will complete unplugged lesson for Loops prior to applying concrete ideas to Minecraft
    • CSTA K-12 Computer Science Standards (from online version of unplugged lesson):

      • CT.L1:3-03. Understand how to arrange information into useful order without using a computer.

      • CT.L1:6-01. Understand and use the basic steps in algorithmic problem-solving.

      • CT.L1:6-02. Develop a simple understanding of an algorithm using computer-free exercise.

      • CT.L1:6-05. Make a list of sub-problems to consider while addressing a larger problem.

      • CPP.L1.3-04. Construct a set of statements to be acted out to accomplish a simple task.

      • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

      • CT.L2-03. Define an algorithm as a sequence of instructions that can be processed by a computer.

      • CT.L2-06. Describe and analyze a sequence of instructions being followed.

  • Lesson Part 3b)
    • 12th and 13th Puzzles
    • Introduces the concept of Conditional statements to students
    • Students will complete unplugged lesson for Conditionals prior to applying concrete ideas to Minecraft
    • CSTA K-12 Computer Science Standards (from online version of unplugged lesson):

      • CT.L1:3-03. Understand how to arrange information into useful order without using a computer.

      • CT.L1:6-01. Understand and use the basic steps in algorithmic problem-solving.

      • CT.L1:6-02. Develop a simple understanding of an algorithm using computer-free exercise.

      • CT.L1:6-05. Make a list of sub-problems to consider while addressing a larger problem.

      • CPP.L1.3-04. Construct a set of statements to be acted out to accomplish a simple task.

      • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

      • CPP.L1.3-04. Construct a set of statements to be acted out to accomplish a simple task.

      • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

      • CT.L2-03. Define an algorithm as a sequence of instructions that can be processed by a computer.

      • CT.L2-06. Describe and analyze a sequence of instructions being followed.

      • CT.L3A-03. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.

  • Lesson Part 4)
    • 14th Puzzle
    • Students are allowed to create something unique applying the tools and ideas that they have learned
  • All of the lessons also incorporate Common Core Mathematical Practices
    • 1. Make sense of problems and persevere in solving them.
    • 2. Reason abstractly and quantitatively.
    • 3. Model with mathematics.
    • 4. Attend to precision.
    • 5. Look for and make use of structure.
    • 6. Look for and express regularity in repeated reasoning.

Demonstration of Competency Mastery

Competency: Design Instruction using a variety of 1:1 computing models

  • Sub-Competency 1: Design a mini unit (3-5 lessons) to reflect the changing roles of the student and the teacher and analyze how the approach enhances the design
    • Mini-unit incorporates 21st technology (in a 1:1 classroom) and traditional classroom activities in order to integrate concrete and abstract concepts of computer programming
  • Sub-Competency 2: Apply constructivist theory and Problem Based Learning to the design of a mini unit (3-5 lessons) and analyze how the approach enhances the design
    • Minecraft tutorial allows and encourages student choice which supports constructivist and Problem Based Learning
      • Each puzzle which involve learning a concept contains the opportunities for student choice and discovery of multiple solutions
      • The final puzzle is completely student in the design and creation of the student project.
    • Minecraft tutorial provides immediate feedback to students in a positive and safe learning environment
  • Sub-Competency 3: Create a mini unit (3-5 lessons) using BYOD or 1:1 approach in Blended Learning Environment
    • Minecraft tutorial in 1:1 classroom blended with traditional classroom activities
  • Sub-Competency 4: Reflect on the experience of changing the role of the teacher and student and designing instruction using these models.
    • Available resources for learning are virtually limitless in the digital age. Teachers are responsible for setting guideposts and the frameworks from which students may explore during the learning process. For example, I have only referenced three online resources for computer programming. However, there are multitude of others such as codeacademy.com and codecombat.com. Teachers are responsible for helping young learners navigate the digital age as they become lifelong learners.

Project Components

All project components referenced above are elements of Code.org websites https://code.org or https://studio.code.org/. Code.org is a non-profit dedicated to expanding access to computer science.

Project Findings

Teaching Computer Science is a new endeavor as I have been trained and certified to teach mathematics. While I have a computer programming background in a prior career, I find teaching Computer Science concepts a different struggle. Unfortunately, I have not had the opportunity to implement this mini-unit. However, I understand from my mathematics education training the importance of young learners learning through the discovery process.

I believe that this mini-unit offers students who may or may not be proficient at mathematical concepts the opportunity to learn computer programming concepts through the discovery process of Problem Based Learning.