Lesson Summary

Summary

Students will be introduced to programming for the first time. They will learn about computer science, computing for good, some of the potential outcomes of programming, and the definition of abstraction.

Outcomes

  • Students will learn various creative and helpful purposes for programming.
  • Students will learn about abstraction.
  • Students will create Python code in Runestone.

Overview

  1. Getting Started (5 min)
  2. Guided Activities (40 min)
    1. Activity 1: Computing for Good [15 min]
    2. Activity 2: Coding with Python in Runestone [25 min]
  3. Optional homework: Read and write a tweet about one of the Seven things you should know if you’re starting out programming [10 min]

Learning Objectives

CSP Objectives

Common Core ELA:

  • RST 12.4 - Determine the meaning of symbols, key terms, and other domain-specific words and phrases
  • RST 12.10 - Read and comprehend science/technical texts
  • WHST 12.2 - Write informative/explanatory texts, including the narration of historical events, scientific procedures/experiments, or technical processes
  • WHST 12.9 - Draw evidence from informational texts to support analysis, reflection, and research

Key Concepts

Students must understand that stereotypes of computer programmers are not accurate, and that 'coding' is something everyone can learn to do. Computing can be a creative expression and used for good.

Possible misunderstandings: The term NGO is used in the article Programming for Good: The Story of Code for India, without explicitly defining it as Non-Governmental Organization. 

Abstraction is a tricky idea. Python allows us to describe what we want to do such as "print" and "input" because it provides the details that explain to the computer how to accomplish the task of taking many keypresses followed by a press of the Enter key to allow the computer to store the information we entered, and also knows how to take information stored in the computer's memory and cause it to appear as a series of recognizable dots on the screen using print. Computer programs use input, output, processing and memory.


Essential Questions

  • How can computing and the use of computational tools foster creative expression?
  • How does abstraction help us in writing programs, creating computational artifacts and solving problems?
  • How can computation be employed to help people process data and information to gain insight and knowledge?
  • What opportunities do large data sets provide for solving problems and creating knowledge?
  • How are programs developed to help people, organizations or society solve problems?
  • How are programs used for creative expression, to satisfy personal curiosity or to create new knowledge?
  • How does abstraction make the development of computer programs possible?
  • How does computing enhance human communication, interaction, and cognition?
  • How does computing enable innovation?
  • How do economic, social, and cultural contexts influence innovation and the use of computing?

Teacher Resources

Student computer usage for this lesson is: required

TEACHERS need to have the class and user accounts set up in Runestone to track student progress.

For the Students:

Note: If computer is not being used, students will need their own copies of the articles

Lesson Plan

Getting Started (5 min)

[use the Presentation on Programming Python in Runestone]

Journal Entry: What are some ways that writing programs is a creative endeavor? [ slide 2]

Share answers with your elbow partner. Then share answers with class

Note to the teacher: This lesson comes immediately after the practice Explore performance task. To provide more time for sharing and discussion, you may want to assign the reading and questions from Activity 1 as homework in addition or instead of the optional homework.

Guided Activities (40 min)

Activity 1: Computing for Good [15 min]

Open Discussion: What are some ways you know that computing has been used for “good?” [ slide 3 ]

Go to Programming for Good: The Story of Code for India

http://www.attendly.com/programming-for-good-the-story-of-code-for-india/

Read articles or selected text in pairs, with alternating pairs each reading one article. Pairs of pairs get together to share what they read and what they got out of the article.

In pairs, answer the following questions:

  1. How did the impact of Hurricane Sandy in 2012 begin the concept of Code for India?
  2. What is the reason for the Adopt-a-School app, and what is the result of its use?
  3. What is the reason for the Spotter app?
  4. What is the reason for the Bravehearts app, and what is its significance for public safety? Where else would this app be useful?
  5. If you were able to design an app “for good,” what problem would you try to solve?

Check for Understanding: Teams should share their answers to their instructor.

Activity 2: Coding with Python in Runestone [25 min]

Have students schetch the computer hardware architecture diagram in Python for Everybody Chapter See https://books.trinket.io/pfe/01-intro.html#computer-hardware-architecture.

Explain that computer processes guide the flow of information that is input, processed, stored or output. The processor (CPU) uses short term memory for doing calculations and temporary storage and long term memory if needed. Have students sketch the computer components diagram above.  Explain to students that they will learn to program to develop software using each of these components.

This could be review from a previous computer class.  If it is new to students assign one or both of the following.

Watch the video on how programs use input, processing, memory and output to run programs. https://www.youtube.com/watch?v=BSTrWhAGta8

Read Computer Hardware architecture by Dr. Severance.

https://books.trinket.io/pfe/01-intro.html#computer-hardware-architecture

 .

BE SURE YOU HAVE SET UP STUDENT ACCOUNTS

  1. [Use the Presentation on Programming Python in Runestone slides 4].  Open Runestone as was done in Unit 1 Lesson 6. Students use their accounts to access the eTextbook
  2. Read The Way of the Program and answer questions on the student handout.
  3. Go to the next section: Algorithms and check to see that all student answers are being correctly recorded in Runestone. Display answer results on the teacher screen. Have students continue to fill in answers on student handout. [ slide 5]
  4. Have students independently complete the next 3 sections (or finish them for homework) and fill in the student handout.
  5. Skip ahead to A Typical First program [ slides 7-13]
    1. Demonstrate how to run the program, change the code, add an input line, and display the value input in the print statement.
    2. Explain the idea of syntax, and the result of various mistakes.
  6. Discuss abstracting in coding. [ slide 14 ]

Homework: Seven things you should know if you’re starting out programming

Have students go to the article Seven things you should know if you’re starting out programming at

http://www.theguardian.com/info/developer-blog/2011/oct/07/programming-developer-journalist

Before dividing the students into groups for the next activity, it is important to address the paragraph at the beginning of the reading, which mentions the "coder stereotype" and includes a parenthetical note that the author believes this stereotype to be (largely) accurate.  Explain that because of the breadth of application areas of computing in today’s world, this stereotype is not an accurate view of the diverse field of computing – there are a wide variety of people in computing and a wide variety of applications of computing education. See videos at http://mcwic.github.io/htmlblocks/computerscientistlibrary.html#top

In pairs or groups of three, assign each group to read and summarize one of the seven programming principles in the article.

  1. Logic (not "math")
  2. Catch a shooting star (variables)
  3. Dictionary (data types)
  4. Russian Dolls (things within things, instances)
  5. Sausage (processes)
  6. The dog, the cat, and the fish (causation, event change)
  7. Pizza (abstraction) include why abstraction is "like making pizza," and what other kinds of activities might fall into that category.

Check for Understanding: Each person should write a 140 character tweet on their topic, next class the group should share their findings with the class.





Options for Differentiated Instruction

Oral reading strategies such as "popcorn reading" where students take turns reading a paragraph and then pass the reading off to another student in the class, or other reading strategies such as students reading together quietly in pairs, can be used for longer texts. 

Longer readings can be broken up by sections or paragraphs to speed the lesson up or keep students engaged.

Activity 1 could be assigned as homework from the day before as a step into this lesson to allow more time in class for the other readings:

Additional activity: Ask students to read the Preface (pages iii-iv) and Chapter 1 introduction and section 1.1 (pages 1-2) of Python for Everybody  and answer these questions:

  1. Why does the author think that Python is a better teaching language for beginning programmers than Java?
  2. Why does the author consider programming to be a creative activity?  
  3. What things are computers better at doing than people?
  4. What things are people better at doing than computers?
  5. What are some motivations for writing computer programs? List some responses not included in the selected reading.
  6. What do you think of the author's writing style?  Name some positive and negative aspects of the presentation in the text.

Evidence of Learning

Formative Assessment

Students will use several different strategies for reading and writing responses based on their readings.

Classroom discussions and student responses (written and oral) will allow instructors to check for understanding.

 


Summative Assessment

Summative assessment will be included in Part 2 on the use of the PyCharm IDE.

Student handout filled in

Tweet from optional homework assignment

Progress recorded in Runestone for the General Introduction