Unit 2. Developing Programming Tools
Revision Date: Oct 06, 2015 (Version 1.2)Summary
Students will learn about some of the potential outcomes of programming and learn the definition of abstraction.
Outcomes
Overview
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.
Student computer usage for this lesson is: optional
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
[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.
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:
Check for Understanding: Teams should share their answers to their instructor.
[use the Presentation on Programming Python in Runestone slides 4-end]
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.
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.
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 v-vi) and Chapter 1 introduction and section 1.1 (pages 1-2) of Python for Informatics http://www.pythonlearn.com/book.php and answer these questions:
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 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