Exploring Computer Science v3
Exploring Computer Science v3
Joanna Goode
University of Oregon
Gail Chapman
Computer Science Equity Alliance
© Computer Science Equity Alliance, 2010
Acknowledgements
Contributing Writers
George Benainous, Hollywood High School, Los Angeles, California
Robb Cutler, Tutor Crossing, Inc., Santa Clara, California
Judy Hromcik, Arlington High School, Arlington, Texas
Michelle Hutton, The Girl’s School, Mountain View, California
John Landa, South East High School, South Gate, California
CONTENTS
Course Overview
Goals
Exploring Computer Science is designed to introduce students to the breadth of the field of computer science.
The goal of Exploring Computer Science is to develop in students the computational thinking practices of
algorithm development, problem solving and programming within the context of problems that are relevant to
the lives of today’s students. Students will also be introduced to topics such as interface design, limits of
computers and societal and ethical issues of software engineering.
This curriculum has been developed for a culturally, linguistically, and socially diverse group of students in Los
Angeles Unified School District. District-wide, student ethnicities include .3% American Indian, 3.7% Asian, .4%
Pacific Islander, 2.3% Filipino, 73.0% Latino, 10.9% African American, 8.8% White, and .6% Other or multiple
responses. Over 38% of students are English-language learners, with most English language learners students
speaking Spanish as their primary language. Furthermore, 74% of students qualify for free or reduced lunches.
Standards
The standards used for the Exploring Computer Science curriculum are based on the topics and goals outlined in
A Model Curriculum for K-12 Computer Science developed by the ACM K-12 task force curriculum committee.
Most of the objectives in the course align with the Level III course, Computer Science as Analysis and Design,
while some objectives are necessarily aligned with the Level II course, Computer Science in the Modern World, in
order to provide appropriate background knowledge for the more advanced topics.
Hardware
An ideal laboratory environment for this course would include one computer for each student in the class.
These computers can be either Macintosh or PC depending on availability. A networked system would make
installation of software easier for the teacher.
Software
Each computer in the classroom should have a web browser installed that allows students to perform searches
and make use of a variety of websites and internet tools. Teachers will need to download and install the Scratch
programming language available at http://www.scratch.mit.edu and the Python programming language
available at http://www.python.org.
Prerequisites
This course will be considered a college preparatory elective for California students, geared towards 11th and
12th graders, and will require Algebra as a course prerequisite. Thus, the course should provide a rigorous, but
accessible, introduction to computer science. No previous computer science course is required to take this
course.
This curriculum builds off of learning theories that view learning as a social and cultural process that does
not only occur in a vacuum at school; that is, students bring to school bodies of knowledge from their
lives, culture, and communities. Building from students’ prior knowledge, the collection of problem
solving skills, everyday “algorithmic thinking”, and social and ethical knowledge of computer-related
problems will result in a more student-centered curriculum. Each unit connects students’ informal
knowledge, technology skills, and beliefs about computing to the theoretical and foundational tenets of
computer science. Students will become members of a “computing community of practice” in the
classroom where they will be introduced to the behavior, language, and skills of computer scientists.
Furthermore, the interdisciplinary nature of computing allows for the incorporation of subject-matter
topics across disciplines into the computing curriculum.
The Nine Principles of Learning from the Institute for Learning provide the theoretical foundation of
research-based instructional practices that provide the foundation for the Secondary Redesign
Comprehensive Plan. These nine principles underscore the beliefs of the Los Angeles Unified School
District; they are integrated throughout and explain the pedagogy used in the course.
2. Clear Expectations
If we expect all students to achieve at high levels, then we need to define explicitly what we expect
students to learn. These expectations need to be communicated clearly in ways that get them "into the
heads" of school professionals, parents, school communities and, above all, students themselves.
Descriptive criteria and models of work that meets standards should be publicly displayed, and students
should refer to these displays to help them analyze and discuss their work. With visible accomplishment
targets to aim toward at each stage of learning, students can participate in evaluating their own work and
setting goals for their own efforts.
4. Recognition of Accomplishment
If we expect students to put forth and sustain high levels of effort, we need to motivate them by regularly
recognizing their accomplishments. Clear recognition of authentic accomplishment is the hallmark of an
effort-based school. This recognition can take the form of celebrations of work that meets standards or
intermediate progress benchmarks en route to the standards. Progress points should be articulated so
that, regardless of entering performance level, every student can meet real accomplishment criteria often
enough to be recognized frequently. Recognition of accomplishment can be tied to an opportunity to
participate in events that matter to students and their families. Student accomplishment is also recognized
when student performance on standards-based assessments is related to opportunities at work and in
higher education.
6. Accountable Talk
Talking with others about ideas and work is fundamental to learning but not all talk sustains learning. For
classroom talk to promote learning it must be accountable to the learning community, to accurate and
appropriate knowledge, and to rigorous thinking. Accountable talk seriously responds to and further
develops what others in the group have said. It puts forth and demands knowledge that is accurate and
relevant to the issue under discussion. Accountable talk uses evidence appropriate to the discipline (e.g.,
proofs in mathematics, data from investigations in science, textual details in literature, documentary
sources in history) and follows established norms of good reasoning. Teachers should intentionally create
the norms and skills of accountable talk in their classrooms.
7. Socializing Intelligence
Intelligence is much more than an innate ability to think quickly and stockpile bits of knowledge.
Intelligence is a set of problem-solving and reasoning capabilities along with the habits of mind that lead
one to use those capabilities regularly. Intelligence is equally a set of beliefs about one's right and
obligation to understand and make sense of the world, and one's capacity to figure things out over time.
Intelligent habits of mind are learned through the daily expectations placed on the learner by calling on
students to use the skills of intelligent thinking, and by holding them responsible for doing so, educators
can "teach" intelligence. This is what teachers normally do with students from whom they expect
achievement; it should be standard practice with all students.
8. Self-management of Learning
If students are going to be responsible for the quality of their thinking and learning, they need to develop
and regularly use an array of self-monitoring and self-management strategies. These meta- cognitive skills
include noticing when one doesn't understand something and taking steps to remedy the situation, as well
as formulating questions and inquiries that let one explore deep levels of meaning. Students also manage
their own learning by evaluating the feedback they get from others; bringing their background knowledge
to bear on new learning; anticipating learning difficulties and apportioning their time accordingly and
judging their progress toward a learning goal. These are strategies that good learners use spontaneously
and that all students can learn through appropriate instruction and socialization. Learning environments
should be designed to model and encourage the regular use of self-management strategies.
9. Learning as Apprenticeship
For many centuries most people learned by working alongside an expert who modeled skilled practice and
guided novices as they created authentic products or performances for interested and critical audiences.
This kind of apprenticeship allowed learners to acquire complex interdisciplinary knowledge, practical
abilities, and appropriate forms of social behavior, Much of the power of apprenticeship learning can be
brought Into schooling by organizing learning environments so that complex thinking is modeled and
analyzed, and by providing mentoring and coaching as students undertake extended projects and develop
presentations of finished work, both in and beyond the classroom.
The units in Exploring Computer Science contain individual lessons that taken together as a unit fit the
construct for inquiry-based learning outlined in the following chart adapted from the “5 E Model”.
Program
Asks questions such as, Why did this Creates interest. Generates curiosity.
happen? What do I already know about Raises questions and problems. Elicits
this? What can I find out about this? How responses that uncover student
Engage
can I solve this problem? Shows interest in knowledge about the concept/topic.
the topic.
Thinks creatively within the limits of the Encourages students to work together
activity. without direct instruction from the
teacher. Observes and listens to
Tests predictions and hypotheses. Forms students as they interact. Asks probing
new predictions and hypotheses. Tries questions to redirect students'
Explore alternatives to solve a problem and investigations when necessary.
discusses them with others. Records Provides time for students to puzzle
observations and ideas. Suspends through problems. Acts as a consultant
judgment. Tests idea for students.
Checks for understanding among peers. Refers students to existing data and
Answers open-ended questions by using evidence and asks, What do you know?
Program
observations, evidence, and previously Why do you think...? Observes
accepted explanations. Demonstrates an students as they apply new concepts
understanding or knowledge of the and skills. Assesses students'
concept or skill. Evaluates his or her own knowledge and/or skills. Looks for
progress and knowledge. Asks related evidence that students have changed
questions that would encourage future their thinking. Allows students to
investigations. assess their learning and group process
skills. Asks open-ended questions such
as, Why do you think...? What
Evaluate evidence do you have? What do you
know about the problem? How would
you answer the question?
Whenever possible, real-world problems are presented in the context of socially-relevant issues
impacting urban communities (housing, safety, poverty, health care, access to equal rights, educational
opportunities, improving social services, translation services, transportation, etc.)
Student have opportunities to work on problems that they help define and can individualize – i.e.
selecting their own content for Web sites; creating original, not pre-scripted, problem-solving strategies,
etc.
Activities are designed to encourage students to work in a variety of collaborative settings: peer-
programming, group research projects, etc. which encourage conversations around computing topics.
Students will experience a variety of ways to communicate their answers – academic writing, writing a
letter to a friend or companion, using presentation software, developing graphics or animation, listing
algorithms, drawing illustrations, oral presentations, etc.
Units incorporate examples of careers in computing as they arise in the curriculum. Students will be
given hypothetical opportunities to act as a professional to take on the behavior and skills to solve a
given problem.
Though using technology is a core component of this curriculum, using computers is not necessarily
embedded in the curriculum on a daily basis.
All of these strategies contribute to developing the problem solving skills and algorithmic thinking processes that
are emphasized throughout the course.
It is important to note that each unit focuses on different instructional strategies; this is purposeful. In some
cases, it is because the particular subject matter lends itself more successfully to a particular set of strategies,
but this was also done to highlight the wide variety of possible strategies that can be used effectively in teaching
this course. We encourage teachers to experiment by trying strategies that work well for them in a variety of
different places in the curriculum. For example, the peer review process utilized in Unit 4 could be adapted for
use in other units; the idea of an “elbow” partner can be used in all units. Journal responses and blog entries
can be used by students to communicate about their work in any of the units. There are many other possibilities
to consider.
Assessment
With the exception of the final projects, there are no specific assessments listed in the lesson plans. There are
also very few specific “homework” assignments. Differences in grading policies, types of assessments required,
and student schedules make it difficult to gauge the best combination of assessment tools to use in a particular
environment. Teachers are encouraged to determine which class activities might lend themselves to some
research outside of class and which might make useful assessments. Additional assessment instruments can be
developed by individual teachers or teacher teams. All forms of assessment should meet the criteria outlined in
the Nine Principles of Learning.
Following the Scope and Sequence is an overview of each unit that includes the unit description and overall
objectives of the unit. There is also a table that indicates the topics for each instructional day of the course.
Finally, are the daily lesson plans with detailed student activities and teaching strategies for each day. Each
lesson has been built on a 55 minute class period. In schools where class periods are shorter or longer (or on
varying block schedules) adjustments will need to be made; such adjustments may include combining lessons
(for longer class periods) or assigning parts of the lesson for homework (for shorter class periods).
An attempt was made to provide enough detail to the teaching strategies sections to give teachers clear
guidance as to the activities involved and the types of questions that might need to be asked to prompt
discussion. At the same time, an effort was made not to be prescriptive.
Each unit includes supplementary materials, a final project, and a sample rubric for the final project.
There are many technological tools that enable people to explore concepts and create exciting and personally
relevant artifacts that impact society. In this course, programming is used as one of the tools, but not the only
tool. Students are asked to be creative in designing and implementing solutions as they translate ideas into
tangible forms. As students actively create, they will also discuss the broader implications of computing
technologies.
Throughout the course students will gain experience in employing the following computational practices.
As students design and implement solutions using abstractions and models, they will analyze the processes they
and their peers use to arrive at solutions, study the effects of their creations and learn how computing concepts
connect explicitly and implicitly to other disciplines. Students will learn about the collaborative nature of
computer science by working in teams and communicate the results of their work in writing and orally
supported by graphs, visualizations and computational analysis.
Overview Chart
3-4 “Demystify” and learn the function of the parts of a personal computer by
dissecting a real computer. Learn the terminology of hardware
components necessary for the purchase of a home computer.
5-6 Computer Buying Project
7-9 Explore the world wide web and search engines. Experiment with a
variety of search techniques, internet resources, and Web 2.0,
applications. Evaluate websites.
10 Explore how computers are used for communications.
11-14 Explore how computers are used as a tool for visualizing data, modeling
and design, and art in the context of culturally situated design tools.
15 Field trip
16-17 Introduce the concept of a computer program as a set of instructions.
18-20 Explore the idea of intelligence—especially as it relates to computers.
Explore what it means for a machine to “learn”. Discuss whether
computers are intelligent or whether they only behave intelligently.
21-22 Final projects and presentations
2-4 Apply the problem solving process. Use different strategies to plan and
carry out the plan to solve several problems.
10-11 Convert between binary and decimal numbers in the context of topics that
are important to computer science.
12-13 Introduce the linear and binary search algorithms.
14-16 Explore sorted and unsorted lists and various sorting algorithms.
17-18 Introduce minimal spanning trees and how graphs can be used to help
solve problems.
Exploring Computer Science Page 17
Version 3.0
6-7 Explore image editing for the web using Photoshop or an image editor of
choice.
8-10 Introduce basic css.
11-13 Explore the concept of separating style from structure by keeping separate
html and css files.
17-19 Practice using style tables, lists and css in the context of a web page
creation project.
20-21 Introduce several web user interface elements combining javascript, html,
css, and Photoshop.
22 Implement advanced functionality with javascript libraries. Create
accordion menus based on the mootools implementation.
23-24 Further explore the use of javascript library effects, including lightbox
slideshow and sliding image puzzles.
25-28 Final projects and gallery walk
28 Explain final project and the rubric for the final project.
Write Scratch programs for either My Community or Game project. Peer
29-33 reviews will be conducted.
10-14 Program the robot using the Mindstorm Robot Educator Software
tutorials.
15 Introduce RoboCup real life robotic competition and write instructions for
tic-tac-toe.
16 RoboTic-Tac-Toe Tournament and introduction to RoboCupJunior Dance
Challenge.
3-5 Create a program to draw a dream house or car using the concept of pair
programming.
6 Introduce the use of Dialogs in Python.
15-17 Practice the use of conditionals and functions through the creation of a
Choose Your Own Adventure program.
18 Introduce while loops in Python.
21-25 Practice the use of loops, conditionals, and list through the creation of an
opinion poll program.
26-30 Final project
Topic Description:
The student will be introduced to the major components of the computer, including: input, output, memory,
storage, processing, software, and the operating system. Students will consider how Internet elements (e.g.
email, chat, WWW) are organized and will engage in effective searching. They will explore a variety of web
applications. Fundamental notions of Human Computer Interaction (HCI) and ergonomics are introduced.
Students will learn that “intelligent” machine behavior is not “magic” but is based on algorithms applied to
useful representations of information. Students will learn the characteristics that make certain tasks easy or
difficult for computers, and how these differ from those that humans characteristically find easy or difficult.
Students will gain an appreciation for the many ways (types of use) in which computers have had an impact
across the range of human activity, as well as for the many different fields in which they are used. Examples
illustrate the broad, interdisciplinary utility of computers and algorithmic problem solving in the modern world.
Objectives:
Topic Description:
This unit covers the basic steps in algorithmic problem-solving, including the problem statement and
explanation, examination of sample instances, design, coding, testing, and verification. Tools for
expressing design will be used. This unit also focuses on the connections between mathematics and computer
science. Students will be introduced to selected topics in discrete mathematics including (but not limited to)
Boolean logic, functions, and graphs. Students will be introduced to the binary number system. Students are also
introduced to searching and sorting algorithms and graphs. Suitable exercises are presented that illustrate the
value of mathematical abstraction in solving computing problems.
Objectives:
Topic Description:
This section prepares students to take the role of a developer by expanding their knowledge of programming
and web page design and applying it to the creation of web pages, programs, and documentation for users and
equipment. Students will explore issues of social responsibility in web use. They will learn to plan and code their
web pages using a variety of techniques and check their sites for usability. Students learn to create user-friendly
Web sites. Students will apply fundamental notions of Human Computer Interaction (HCI) and ergonomics.
Objectives:
Correctly use HTML tags to create web pages, apply styles to HTML documents to
control presentation, and express the design of a web site using standard tools.
Create user-friendly and functional web sites that apply good HCI practices.
Prepare documentation.
.
Program design
Programming constructs
Topic Description:
Students will be introduced to some basic issues associated with program design and development.
Students design algorithms and programming solutions to a variety of computational problems using Scratch.
Programming problems include control structures, functions, parameters, objects and classes, structured
programming and event-driven programming techniques.
Objectives:
Topic Description:
This unit introduces robotics as an advanced application of computer science. Students explore how to integrate
hardware and software in order to solve problems. Students will see the effect of software and hardware design
on the resulting product. Students will apply previously learned topics to the study of robotics.
Objectives:
Identify the criteria that describe a robot and determine if something is a robot.
Describe the steps that happen when a computer processes an instruction.
Match the actions of the robot to the corresponding parts of the program.
Build, code, and test a robot that solves a stated problem.
List and explain ways in which different hardware designs affect the function of a
machine.
Identify multiple ways to program the robot to achieve a goal and explain why one is
better than another.
Limits of Computing
Principles of Software Engineering
Applications of Computing
Topic Description:
This unit provides an elementary introduction to computational complexity theory to encourage an appreciation
for the relative efficiency of various algorithms. Students are introduced to examples of computationally “hard”
problems, computationally unsolvable problems, and problems that are made difficult by the complexity of the
realities they attempt to model (air traffic control, human intelligence, weather). Students are introduced to
software engineering concepts and team-oriented approaches for solving problems. They learn the essential
methods of the software development life cycle and use these methods in one or more group projects involving
large data sets.
Objectives:
List activities in which humans excel over computers and activities in which
computers excel over humans.
Calculate the number of steps required to execute a given algorithm.
Describe and run computationally intensive problems.
Describe at least one problem computers cannot solve.
Describe at least one computationally hard (NP) problem.
Name the different phases of the software development process.
Use a software process model (such as the waterfall, RAD, incremental, or XP) to
solve a problem.
Complete a project as a software design team with assigned roles and responsibilities
for each member.
Complete programs using pair programming.
Topic Description:
The proliferation of computers and networks raises a number of ethical issues. Technology has had both positive
and negative impacts on human culture. Students will be able to identify ethical behavior and articulate both
sides of ethical topics. Students study the responsibilities of software users and software developers with
respect to intellectual property rights, software failures, and the piracy of software and other digital media. They
are introduced to the concept of open-source software development and explore its implications. Students
identify and describe careers in computing and careers that employ computing. Information is provided about
the required technical skill set, soft skills, educational pathways, and ongoing training required for computing
careers. Students also explore how computers are used in other career choices. Finally, students are made
aware of which additional secondary-level courses might be needed in preparation for various careers.
Objectives:
Distinguish between ethical and legal issues in a case study by listing the issues that can
be resolved through the legal system and those issues that cannot be legally resolved.
Defend an ethical stance given a controversial or ethically ambiguous situation in a
debate.
List and explain at least two positive and negative effects of one technological innovation
on human culture.
Define intellectual property and state the impact of provisions to protect it.
Identify at least two benefits and two drawbacks of using commercial, public domain,
open source, and shareware.
Demonstrate behavior in the use of technology that conforms to school and local code.
Define intellectual property, explain the rights of owners and end users, and provide
rationale for the need to protect owners and end users.
Define software piracy and discuss its effect on software company profits and the price of
software to the consumer.
List at least two ways in which software (and other digital media) is protected and state
at least one current law to protect software and the makers of software.
Describe the responsibilities of software professionals to society and to each other.
List the advantages and disadvantages of open-source software.
List five careers related to computers.
List three or more skills needed to succeed in at least three computer-related careers.
State the level of education and ongoing training needed for at least three careers.
Unit 1:
Human Computer Interaction
Introduction
Computers and other computing technology have become an integral part of our society. Because of that it is
easy to forget that not every student will come to this course with the same background and skills. For many
students this course will be the first opportunity they have to become facile with using the keyboard and
navigating the internet.
The topics in this unit are designed to allow all students to gain familiarity with computers and computing in the
context of activities that give students an opportunity to work at their own pace, work in groups where they can
learn from each other and generally gain an overview of the many and varied ways in which computers and
computing are used.
Exploring the concepts of computer and computing by investigating computer hardware components
and a variety of internet resources (Days 1-9)
Exploring the use of computers in a variety of fields (Days 10-15)
The computer as a machine that needs to be “told what to do” (Days 16-20)
The goal is for all students in the class to reach a level of comfort in using the computer and understand that the
computer is not magic. The fact that for a computer to accomplish its tasks it needs to be given precise
instructions motivates the need for the problem solving techniques that will be addressed in Unit 2.
Specific topics for each instructional day are listed in the overview chart on the next page.
11-14 Explore how computers are used as a tool for visualizing data, modeling
and design, and art in the context of culturally situated design tools.
15 Field trip
Topic Description: What is a computer? In this lesson the concepts of computer and computing are explored
through examples of each.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Topic Description: Students explore the functionality of various parts of a personal computer by dissecting a
real computer. The correct terminology for computer hardware components is discussed.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Dissection of a computer.
o Have the students work in teams (the number of students per team depends on the number of
computers you have) to carefully take apart a computer.
o Emphasize the importance of safety when working with electronics and tools of any type.
o During the dissection, students should label the parts. One student in each group should search
the web for the part based on the Computer Components Webquest.
o Circulate the room and answer questions.
o Note: If there are no computers available for dissection, there are other options. For example,
Have one computer for the entire class to dissect
Students complete the Computer Components Webquest with their elbow partner and
label the advertisements that they brought to class and then present to the remainder
of the class.
Review the main parts of the hardware of a personal computer.
o Ask the students if they better understand the “technical jargon” that appears in the ads.
Challenge them to think about what features they might want if they were purchasing a home
computer (i.e., large screen, fast, attractive color, etc.).
Resources:
Several old personal computers (working or non-working) that can be taken apart by the students. These
computers can often be found at garage sales or may be destined for the garbage heap by a school or
local business. If possible, get several different types of computers that have a variety of components.
Do not use school computers or computers which need to remain in working condition!
Various screwdrivers (both slotted-head and phillips-head)
Computer Components Webquest
Wikipedia has more detail about all of the hardware terminology listed: http://www.wikipedia.org
Your job is to use the internet to investigate the different components (parts) of a computer. Rather than search
for each part individually, you may find it easier to do a search for computer hardware components. There are
many sites with images and descriptions.
Topic Description: Students complete a project related to choosing appropriate components for a personal
computer.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
You will be given a scenario for someone that wants to buy a new computer. Your task is to give them at least 4
options and then give them advice on which one to buy. Your project will be presented to the class.
Student Grouping:
You will be in a group of up to 4 students.
Scenario #1
I play lots of games. I play them in my room so I can have the tv on while I play. Whenever a new game comes
out, I buy it. I need the games to run as fast as possible with the best graphics and sound. My parent’s are
buying the computer so I don’t care how much it costs.
Scenario #2
I take the bus to work everyday. I need a computer that I can use on the bus. I make financial reports and
charts using Powerpoint and Excel. My budget is $1500.
Scenario #3
I am a writer. I need to write books wherever inspiration hits me. Sometimes I write at the beach. Other than
that, I use the computer for the internet sometimes. I haven’t sold a book yet, so I only have about $900 to
spend on a computer.
Scenario #4
I am dad that takes lots of videos of my kids. I want to be able to save them on my hard drive. I also want
professional software that will help me edit the videos. I want to be edit the movies quickly and make dvds for
my entire family. My budget is $3000.
Scenario #5
I am teacher that needs a computer that I can use at home and take to work. I’ve used a lot of Apples in the
past and like the fact that they are really easy to use. I only need basic office software. My budget is $1500.
Scenario #6
I collect music from all kinds of bands. I need a computer that can store all the music and videos I have of my
favorite bands. I only want to use my computer at home. Other than that I just surf the internet. My budget is
$1000.
Scenario #7
I am a graphic designer. I use Adobe Photoshop and Illustrator. I need a computer that can allow me to quickly
edit large pictures. My budget is $2000. I only work at home.
_______________________ _______________________
_______________________ _______________________
Scenario is described 10
Presentation
Present your project 15
Present all required parts of project 15
Extra Credit
Project exhibits creativity above and beyond Up to 10
TOTAL: 100
Topic Description: Search engines and how they work are explored through trying various internet search techniques.
A selection of Internet resources that are useful for finding information are introduced as well as a selection of Web 2.0
applications. Several websites are evaluated by using a rubric to determine if they are “good” websites.
Objectives:
Perform searches and explain how to refine searches to retrieve better information.
Identify resources for finding information in addition to ranking based search engines.
Differentiate between ranking based search engines and social bookmarking (collaborative) search engines.
Use a variety of Web 2.0 applications.
Develop and use a rubric to evaluate websites.
Student Activities:
Teaching/Learning Strategies:
Journal Entry: List at least three ways in which you currently use the internet.
o Have students share their responses with their elbow partner.
Have the students explore by trying out and refining various searching techniques.
Other resources for finding information
o Have the students work with their elbow partner to identify at least three other resources (other than
search engines) that they use to find information on the internet along with advantages (or
disadvantages) over a general search engine.
Resources:
Authority
Does the author have appropriate qualifications with respect to the Yes No Unsure
information being presented?
Purpose
Coverage
Accuracy
Objectivity
Does the author avoid the use of emotional or inflammatory Yes No Unsure
language?
Does the author avoid trying to sell something or persuade the Yes No Unsure
reader of a particular viewpoint?
Currency
Appearance
Instructional Day: 10
Topic Description: The use of computers for communications and the impact this has had on society is
discussed.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: List as many computer-based communications mechanisms as you can.
Identification of communications mechanisms
o Volunteers provide examples from their journal entry. Post the responses.
o Prompt students as necessary with examples.
Internet-based communication (email, chat, facebook, Internet telephony)
Telephone-based communication (cell phones, texting, “landline” telephone service)
News and information “on demand”
Impact of changes to communications on society
o Divide class into groups of 3-4. Assign each group 1 or 2 of the mechanisms on the list
depending on the size of the class and number of items on the list. Ask the groups to do the
following:
Imagine life without some or all of the computer-based communications mechanisms
that we now take for granted.
List some of the consequences of an absence of technology (for example, without cell
phones, the ability to instantly reach anyone goes away).
Based on these consequences, draw conclusions about the impact of the presence of
the communications mechanism. (For example, if the absence of cell phones means the
absence of the ability to instantly contact anyone, then the presence of cell phones
means that we now have the ability to instantly contact anyone. One conclusion we can
draw is that we have less privacy than we used to.) Consider each of the following
broad categories of societal change:
Privacy
Safety
Globalization
Connectivity (keeping in touch with people)
Permanence of historical information
Discuss whether these consequences have a positive or negative impact on society and,
if negative, how these consequences can be minimized.
Groups share a summary of their discussions with the class.
o Challenge the students to predict what communications will be like in 5 years, 10 years, and 25
years.
Resources:
Topic Description: In this lesson, students learn how computers can be used as a tool for visualizing data,
modeling and design, and art in the context of culturally situated design tools. Connections between the design
of the tools and mathematics will be explored.
Objectives:
Explain how computers can be used as tools for visualizing data, modeling and design, and art.
Identify mathematical connections in the output of the tools.
Edit an image using Photoshop Express.
Research on the cultural background associated with the design tool. (25 minutes)
Design tool tutorials (30 minutes)
Creation of designs using the design tools (65 minutes)
Online presentation on how to get started using Photoshop Express (15 minutes)
Design editing (30 minutes)
Preparation of presentations (40 minutes)
Group presentations (15 minutes)
Student Activities:
Groups do research on the cultural background information associated with the design tools they are
assigned.
Groups prepare and deliver brief presentations on the cultural aspects of their design tools.
Students complete design tool tutorials.
Groups create designs using the design tools.
Watch an online presentation on how to get started using Photoshop Express.
Edit images created with the design tools.
Groups prepare presentations.
Groups deliver presentations.
Teaching/Learning Strategies:
Students divide into groups to work on the tool of their choice. Group sizes will depend on the size of
the class. You may need to have more than one group per tool.
Each member of the group should go through the entire cultural background section individually.
o Answer any questions posed in the section in their journal.
o Look for and write down the mathematical connections.
All group members discuss the section.
o Resolve answers to questions and mathematical connections.
Each member of the group completes the tutorial.
o Students should go through the tutorial at their own pace, but discuss with other member as
questions arise. (Note: The bead loom tutorial is online; the other two are not. The print
versions included here have been adapted from the bead loom tutorial.)
o Encourage students to record in their journal points that they want to remember.
Groups create designs using the design tool software.
o Each person should choose one of the goal pictures for practice and discuss any issues with the
other group members.
o Groups decide whether they want to create one design as a group or have multiple designs for
their presentation.
o Groups work on design/designs—these should be their own creations rather than a mimic of
one of the preloaded designs.
Edit designs with Photoshop Express.
o Have students watch the online tutorial and create an account.
o Edit the design.
Prepare presentations to include:
o Culture
o Math connections
o Demo of software
o Display of designs
Groups deliver presentations.
Resources:
.
Tutorial 1
The Virtual Bead
Loom simulates the
same grid pattern
as the traditional
bead loom. Users
place colored
circles in columns
(the Y-axis) and
rows (the X-axis).
There are several tools for placing beads on the virtual loom. In each
case you use the "tab" key or the mouse to move your cursor to the
field for entering the coordinates, then you enter them, and then press
the button for the shape tool. The point tool places a single bead:
The line tool places lines of beads. You specify the two endpoints of the
line. Diagonal lines tend to be jagged, but resizing the grid can help
that (see "Options menu" on next page).
The rectangle tool fills in a rectangle of beads. You specify two vertices
(lower right and upper left). The rectangles of this tool are always
aligned with the axes.
Tutorial 2
The triangle tool fills in a triangle of beads. You specify
the three vertices.
Tutorial 3
There are also controls that apply to all the tools. "Clear"
deletes everything. Normally "Create" is selected, so that
your tools will fill their specified shape with beads. "Remove"
will erase all beads in the specified shape, so if you make an
error use "undo" not "remove." The color button allows you
to select the bead color. Clicking on the little square in the
upper right of the screen will give you a list of all the colors
you have selected so far. The "Save" menu allows you to
save the work on your hard drive and edit the design later.
Make sure your file name is only letters, not spaces or
numbers, and that you go back to the same computer when
you want to edit your work.
.
Tutorial 1
The Virtual Basket
Weaver simulates
the same grid
pattern as the
traditional basket
weaving loom.
Users place colored
circles in columns
(the Y-axis) and
rows (the X-axis).
There are several tools for placing wefts on the virtual loom. In each
case you use the "tab" key or the mouse to move your cursor to the
field for entering the coordinates, then you enter them, and then press
the button for the shape tool. The point tool places a single weft:
The line tool places lines of wefts. You specify the two endpoints of the
line. Diagonal lines tend to be jagged, but resizing the grid can help
that (see "Options menu" on next page).
The rectangle tool fills in a rectangle of wefts. You specify two vertices
(lower right and upper left). The rectangles of this tool are always
aligned with the axes.
Tutorial 2
The triangle tool fills in a triangle of wefts. You specify
the three vertices.
Tutorial 3
There are also controls that apply to all the tools. "Clear"
deletes everything. Normally "Create" is selected, so that
your tools will fill their specified shape with wefts. "Remove"
will erase all wefts in the specified shape, so if you make an
error use "undo" not "remove." The color button allows you
to select the weft color. Clicking on the little square in the
upper right of the screen will give you a list of all the colors
you have selected so far. The "Save" menu allows you to
save the work on your hard drive and edit the design later.
Make sure your file name is only letters, not spaces or
numbers, and that you go back to the same computer when
you want to edit your work.
.
Tutorial 1
The Virtual Rug
Weaver simulates
the same grid
pattern as the
traditional rug
loom. Users place
colored circles in
columns (the Y-
axis) and rows (the
X-axis).
There are several tools for placing wefts on the virtual loom. In each
case you use the "tab" key or the mouse to move your cursor to the
field for entering the coordinates, then you enter them, and then press
the button for the shape tool. The point tool places a single weft:
The line tool places lines of wefts. You specify the two endpoints of the
line. Diagonal lines tend to be jagged, but resizing the grid can help
that (see "Options menu" on next page).
The rectangle tool fills in a rectangle of wefts. You specify two vertices
(lower right and upper left). The rectangles of this tool are always
aligned with the axes.
Tutorial 2
The triangle tool fills in a triangle of wefts. You specify
the three vertices.
Note that this tool has two colors -- some traditional rug
work shifts color in each iteration. This allows you to
select the starting color and ending color; the software
does the shifting for you.
Tutorial 3
There are also controls that apply to all the tools. "Clear"
deletes everything. Normally "Create" is selected, so that
your tools will fill their specified shape with wefts. "Remove"
will erase all wefts in the specified shape, so if you make an
error use "undo" not "remove." The color button allows you
to select the weft color. Clicking on the little square in the
upper right of the screen will give you a list of all the colors
you have selected so far. The "Save" menu allows you to
save the work on your hard drive and edit the design later.
Make sure your file name is only letters, not spaces or
numbers, and that you go back to the same computer when
you want to edit your work.
_______________________ _______________________
_______________________ _______________________
Design is original 10
Design has been edited with Photoshop Express 10
Presentation
Present your project 15
Present all required parts of project 15
Extra Credit
Project exhibits creativity above and beyond Up to 10
TOTAL: 100
Instructional Day: 15
Topic Description: Students participate in a field trip to a local business or host a guest speaker.
Objectives:
Student Activities:
Teaching/Learning Strategies:
A field trip may not be able to be arranged this early in the year, but at some point the teacher should
arrange for students to visit a local business that uses computers or invite a guest speaker.
Encourage students to ask questions.
Resources:
Topic Description: This lesson introduces the concept of a computer program within the context of a set of
instructions for completing a common activity.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Following directions
o Distribute copies of Following Directions Quiz to each student face down in front of them. Each
student should have a blank piece of paper and a pencil as well.
o Give the students five minutes to do the quiz. Make note of how many students stand up and
shout “hooray.”
o Collect the papers when time has expired.
o Point out that a perfect paper is one which has only the word “December” written in the top left
corner. (The directions said to read all parts of the test before doing anything and step 14 says
to only complete step #3.)
o Give students about 10 minutes to complete the Drawing Pictures Activity.
Ask volunteers to show their pictures and explain why they drew the pictures as they
did.
After the first volunteer, ask if someone drew it differently.
o Ask the students what following directions has to do with computers. Prompt them as
necessary that a computer follows a specific set of directions (or instructions) called a computer
program and must follow all of the directions precisely.
Designing a program
oAsk the students to write down a set of instructions for a computer to make a peanut butter and
jelly sandwich. Give them 5-10 minutes to write down these instructions.
o Collect the instructions.
Running a program
o Take out the bread, peanut butter, jelly, and knife and put them on your desk. Pick a set of
instructions for making a sandwich (best to pick one which is not too detailed).
o Read each instruction and carry it out—literally. For example, if the first instruction is “put the
peanut butter on the bread,” take the jar of peanut butter and put it on the loaf of bread. If an
instruction says to “spread the peanut butter on the bread,” use your fingers rather than a knife.
If an instruction says to “cut the sandwich in half,” be creative and cut it between the two slices
of bread. In other words, your goal is to show that instructions need to be very precise.
o Repeat the process with another set of instructions.
Being more precise with instructions
o Clearly, no matter how precise they tried to be, the instructions for making a peanut butter and
jelly sandwich were open to interpretation. Ask the students to brainstorm how we could
overcome this problem so that a computer could follow the instructions and make a perfect
sandwich each time.
o Guide the students toward the idea that we need a better “language” than English for describing
the instructions. This is, in fact, the idea behind many computer programs. There is a limited
set of instructions which define very precisely what the computer does. For example, we can
have a computer turn on a “dot” of a specific color in a specific location on the screen. By
having the computer turn on many different dots in different colors, we can have the computer
draw a picture. Note though that we don’t have an instruction for the computer to “draw a
picture of a house” as that’s much too general and too open for interpretation.
Resources:
http://www.justriddlesandmore.com/direct.html
The basis for the “following directions” quiz (the quiz was modified slightly.)
Following Directions Quiz
Drawing Pictures Activity
Bread, peanut butter, jelly, and a knife.
Directions: You have a 5 minute time limit to complete the parts of this test. Carefully read all of the parts of
the test before doing anything. In order to ensure the accuracy of this exam, you should not use more than
the allotted time of 5 minutes. Good Luck!!
1. Write today's date--month-day-year in the top right hand corner of your test paper.
2. Write the answer to the following multiplication problem directly underneath the date on your test paper--6
X5=?
3. Write the name of the month that begins with the letter "D" in the top left hand corner of your test paper.
4. Add 15 to the answer you got in part #2, and write this new total directly underneath your answer for part
#3.
5. In the lower left hand corner of your test paper, write the names of your favorite singer and your favorite
group.
6. Just above your answer to part #5, write "This test is very easy."
7. In the lower right hand corner of your test paper, draw a rectangle and inside the rectangle draw a five
pointed star. The size of these drawings is not important.
8. Directly above your answer to part #7, draw a row of three small circles. Once again, size is not important.
9. Write the name of the first president of the United States on the back of your test paper anywhere you
choose. If you don't know who this is, write your own name instead.
10. Write the name of any country that begins with the letter "I" directly underneath you answer to part #2.
11. Stand up, shout “hooray!”, and sit down.
12. Take the number of dwarfs in the Snow White story and add it to the number of bears in the Goldilocks
story. Divide by 2. Write this total in the approximate center of your test paper.
13. Think of a number between 1 and 50. Double that number. Add 20. Add 6. Subtract 17. Subtract 9. Divide
by 2. Write this number on your test paper directly underneath your answer to part #11.
14. Now that you have carefully read all of the parts so far, and you have not carried out any of the actual work,
skip the next 2 parts and go back and only complete part #3.
15. The name of the first president of the United States is George Washington. He was president from 1789 until
1797. Add the 2 dates together to see if the total is less than 5000.
16. You should not be reading the end of the exam before the beginning of the exam, but now that you are
here, you have just wasted some of the time you may need to complete the test.
Topic Description: The question “What is intelligence?” is addressed through discussion of the differences
between humans and computers. Various models of machine learning are investigated along with the concept
of natural language understanding.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What is intelligence? Are computers intelligent? Why or why not?
o Volunteers share their responses.
Differentiating between humans and computers.
o CS Unplugged Activity 20: Conversations with Computers—The Turing Test
This activity can be downloaded from http://csunplugged.com From the menu, click on
Activities, click on Turing Test, and then download the pdf for Activity 20. Note there
are many additional resources listed that you may wish to explore.
It will be helpful for you to read through the entire activity before beginning it with your
students. In addition to the explanation of the activity, it provides good background
information that you will want to ensure is part of the discussion you have with
students.
Based on the directions under “What to Do” (p. 214), assign and explain roles to 4
students.
Follow the remaining directions under “What to Do” (p.214-215).
o Have students complete Part I of Computer Intelligence Activity.
Assign each pair of students (students work with their elbow partner) two of the
questions from the Turing Test Activity.
Discuss the results.
A simple model of machine learning.
o Have students complete Part II of the Computer Intelligence Activity.
Assign students to groups of 3 or 4 and assign each group 2 of the games in the activity.
Discuss the results.
Resources:
Computer Science Unplugged Activity 20: Conversations with Computers—The Turing Test
(http://csunplugged.com), pp. 213-226
Computer Science Unplugged Activity 20: Conversations with Computers—The Turing Test, p. 225—
questions (one copy for each pair of students)
Computer Science Unplugged Activity 20: Conversations with Computers—The Turing Test, p. 226—
answers (one copy to post or display)
Computer Intelligence Activity
Part I
A program passes The Turing Test (en.wikipedia.org/wiki/Turing_Test) if a person can have a conversation with
both it and a person and not be able to tell which one is the computer.
Try each of these chatterbots with the questions you were assigned.
1. Try to chat with Eliza (ai.ijs.si/eliza/eliza.htm). How realistic is she? Would she pass the Turing Test?
2. Try to chat with Athena (Athena.blueinfos.com). How realistic is she? Would she pass the Turing Test?
3. Try to chat with Friend4U (virtualentities.com/friend4u). How realistic is she? Would she pass the
Turing Test?
4. Try to chat with InteliAvatar (inteliwise.com). How realistic is she? Would she pass the Turing Test?
5. Which of the above chatterbots was the most like a real person?
6. What is the Chatterbox Challenge (chatterboxchallenge.com)?
Part II
1. Go to 20q.net. Choose your language (Think in American is recommended). Choose one of the games
from the bottom that was assigned to your group. You are supposed to think of something in that
category and answer the computer’s questions by clicking them. The computer will try to guess what
you chose in 20 questions or less. Play the game several times addressing each of the following:
Pick an item and see how many questions are required.
Choose the same item and see if you can make it require more questions
Repeat this with another item.
How intelligent is this? Would this pass the Turing Test?
Play the second game you were assigned and repeat the process above.
2. The Turing test is a person checking to see if it is talking to a computer. Can you think of any occasions
that a computer might want to know if it is talking to another computer or a real life person?
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Final Project
Final Project Sample Rubric
Final Project
In your group you will create a response to the following scenario that answers several questions about
computers and computing and utilizes some of the tools that you learned about in this unit.
Scenario:
The school board has decided to cut computer classes starting next year because not enough students signed up
for the courses this year. Create a recruitment campaign to encourage students to enroll in computer science
classes. Include an explanation of the need for learning about computer science that answers the following
questions.
What is a computer/computing?
How do computers and the internet work?
How do computers impact our lives (individually, socially, economically, culturally, etc.)?
Create a visual representation to accompany your written responses that makes use of at least two of the tools
that you learned about in this unit. Depending on the tools you use, your written responses can be included
within the visual.
_______________________ _______________________
_______________________ _______________________
Answers to questions
What is a computer/computing? 5
Additional examples
Visual representation
TOTAL: 100
Unit 2:
Problem Solving
Introduction
In order for students to become “computational thinkers” they need experience with solving a wide range of
problems and the opportunity to experiment with a variety of solution strategies. This unit begins with an
introduction to the problem solving process. Students are asked to solve problems with which they may not be
familiar by planning a strategy, designing and producing solutions, and then reflecting on their solutions and
strategies.
Throughout the unit the emphasis should be on the process rather than the solution. Most of the world’s
problems today do not have single simple solutions. In order to contribute effectively to the solution of these
problems, students need to be comfortable in a collaborative environment where multiple approaches are
valued and encouraged and where failure is seen as part of the process toward solution. Students must learn to
think abstractly and apply known algorithms where appropriate, but also create new algorithms that can be
applied to complex problems.
As students reflect on their solution processes and solutions and share those reflections with their peers, it is an
opportunity to pull out instances where one strategy might be preferred over another and problems for which
there are “standard” solutions versus those where there are many possible solutions.
Many of the problems presented have a mathematical basis and can serve to provide connections between
mathematics and computer science. Common computer science topics such as searching, sorting, and graphing
are introduced. Although programming the solutions to many of these problems is beyond the scope of this
course, students will gain a basic understanding of the algorithms and be able to analyze them. In particular, it
is important to emphasize that the models used for solving computational problems are the underpinnings of
computer science and as such remain largely the same even as we add new tools and languages.
A key point of emphasis throughout the unit is the connection between the solution “process” and the
discussion toward the end of unit 1 related to how computers are programmed. It is also important to
emphasize that not all problems are easily solved by computers.
Specific topics for each instructional day are listed in the overview chart on the next page.
2-4 Apply the problem solving process. Use different strategies to plan and
carry out the plan to solve several problems.
10-11 Convert between binary and decimal numbers in the context of topics that
are important to computer science.
14-16 Explore sorted and unsorted lists and various sorting algorithms.
17-18 Introduce minimal spanning trees and how graphs can be used to help
solve problems.
Instructional Day: 1
Topic Description:
This lesson introduces the four main phases of the problem-solving process as defined by G. Polya in How to
Solve It.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What are the steps you use to solve a problem?
Candy bar activity
o Divide the students into groups of 2 or 3. Give each group a candy bar.
o Explain that their task is to determine how many "breaks" it will take to break the candy bar into
12 equal pieces. One break of one piece of the candy bar will result in that one piece being
divided into two pieces. Demonstrate a "break" by breaking the bar into two pieces. Then stack
the two pieces together and break or cut the two pieces into four.
o At this point, have each student write in their journal the number of breaks they think it will
take to break the bar into 12 equal pieces. This should be done without talking to their partner
or group members.
o Working together with their partner or group, have the students discuss and then write their
plan for solving the problem. They may revise their guess at this point.
o Once this is completed, the students should implement the plan by opening the candy, breaking
the candy, and counting the number of breaks it takes to get 12 equal pieces.
Discussion of solutions
Resources:
Polya, G. How to Solve It. 2nd. Princeton, NJ: Princeton University Press, 2004.
Candy bar problem suggested by Dr. Manuel Blum, Carnegie Mellon University
Candy bars for student groups to use
Number of Pieces/Number of Breaks Chart
1 0
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
N N-1
Topic Description:
Students will apply different strategies to help them make a plan and carry out the plan to solve several
problems. These strategies may include (but are not limited to): draw a diagram or picture, make systematic
lists, divide and conquer, find the pattern, and guess and check.
Objectives:
Student Activities:
Teaching/Learning Strategies:
o In groups of 3 or 4, have students discuss, plan, execute, and reflect on Handshake problem #2.
Students should follow the directions given in the activity document and write their group’s
thoughts on paper.
o Encourage students to make drawings or charts and/or act out the solution. Chart paper can be
given to students to display pictures, charts, or graphs. Their job is to explain the process and
the solution so that everyone understands.
Student Presentations
o Each group should be given about 5-10 minutes (depending on the size of the class) to present
their plan and solution to the class. Be sure the students show all 4 steps in the problem-
solving process.
o
Discussion of reflections
Resources:
Polya, G. How to Solve It. 2nd. Princeton, NJ: Princeton University Press, 2004.
Handshake and Fencepost Activity
Handshake Activity #2 Sample Solution
Plan the solution: Show your plan for solving this problem.
Carry out the plan: Using your plan, show your work and your solution.
1. Handshake Problem #1: Assume there are 20 people in a room, including you. You must shake hands
with everyone else in the room. How many hands will you shake? If there are N (where N > 0) people in
the room, how many hands will you shake?
2. Fence Post Problem: You need to build one side of a fence that is 12 yards long. This fence will be built
with fence posts and rails that connect one fence post to another. If each fence post is 1 yard away
from the next fence post, how many fence posts will be needed for this side of the fence? How many
fence posts will be needed for a side of a fence that is N (where N > 0) yards long?
Read and begin planning your solution for problems #3 and #4. These problems will be completed in class
tomorrow with your group. Each group will present their solutions to the class.
3. Handshake Problem #2: Assume there are 10 people in a room, including you. Each person in the room
must shake hands one time, and only time, with all the other people in the room. How many
handshakes will occur? If there are 20 people in the room, how many handshakes will occur? If there
are N (where N > 0) people in the room, how many handshakes will occur?
4. Reflections: Why are problems like these important to learn how to solve? How could this type of
solution be of benefit to a carpenter, a chef, a teacher?
The sample solution is only one possibility. Student groups may have a wide variety of strategies. Ask questions
that probe their understanding of the steps of the problem-solving process they used.
What data or information is known? There are 10 people or N people in the room
What is unknown? Total number of handshakes
What are the conditions? Each person must shake hands only one time with all others in the room.
All of the handshakes must be added together.
Plan the solution: A sample plan could be to describe the plan in words or use a chart or draw a picture and
then act it out.
Have the people line up in the room. The first person in the line walks down the line and shakes
hands with all of the people in the line and then leaves the room. Count the number of handshakes
and add to the total.
The next person in line walks down the line and shakes hands with all of the people left in the line
and then leaves the room. Count the number of handshakes and add to the total.
This continues until there are only 2 people left. They shake hands and leave together. Increase the
total by one.
Once the answer is known for 10 people, look for a pattern. Try the process for 5 people, 2 people. See if the
pattern holds.
Carry out the plan: Using your plan, show your work and your solution.
For 10 people, the answer is the sum of the numbers from 1 to 9, which is 45. 9 is 10 – 1.
For 5 people, the answer is the sum of the numbers from 1 to 4, which is 10. 4 is 5 – 1.
For 2 people, the answer is the sum of the numbers from 1 to 1, which is 1. 1 is 2 – 1.
For N people, the answer is the sum of the numbers from 1 to (N-1).
Review and discuss your solution: Each person shakes hands with N – 1 other people. The answer is not
N(N-1), though, because each handshake counts as the one handshake for each person, but only one
handshake for the total. The Hershey Bar problem helped to start the plan for this problem, but I needed to
adjust the plan to only allow one handshake between each pair in the room.
So the 10 people make 9 handshakes each, but each handshake happens between 2 people, and can only be
counted once. I could "divide" the handshake and let each person count the handshake as a 1/2 handshake.
So 10 people make 9 half-handshakes each = 45 handshakes.
Topic Description:
This lesson reinforces the four main phases in the problem-solving process.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Topic Description: This lesson introduces the binary number system and how to count in binary.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: How high can you count with your ten fingers?
Use the CS Unplugged: Count the Dots activity to introduce binary representation and counting in
binary.
o Start with the introductory activity on p. 4 of the activity. (The activity can be downloaded from
http://csunplugged.com ) It will be helpful to read through the entire activity in advance, so
that you can revise questions, add your own questions, and think about how you might want to
structure each part of the activity. The goal is for students to be actively involved in some way
and for all students to be able to represent numbers and count in binary. What follows is the
minimal suggestion.
o Have 5 students come to the front of the room and demonstrate as you follow the instructions
and ask the questions. (Each student should receive a large card with one of the numbers of
dots—1, 2, 4, 8, 16)
Use the CS Unplugged: Count the Dots activity to explain the binary number system and have the
students practice counting forward and backward.
o Complete the Binary Numbers activity on p. 5 and Working with Binary activity on p 7.
o Have 5 students come to the front of the room and try counting as you call out the numbers.
(Each student should receive a large card with one of the numbers of dots—1, 2, 4, 8, 16)
o Have different groups of 5 students at a time come to the front and have the other students
provide counting and representation challenges. You could also have a competition with
multiple teams of students each trying to get the answer. There are many other possibilities.
Be creative!!
Revisit Journal Entry.
Resources:
Bell, Tim, Ian Witten and Mike Fellows. Computer Science Unplugged. Canterbury, New Zealand: 2002.
Computer Science Unplugged Activity 1: Count the Dots—Binary Numbers, pp. 3-13
Binary number cards for each student
Large binary number cards for the demonstrations
Topic Description: Students will learn how to convert between binary and decimal numbers in the context of
topics that are important to computer science.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Complete the Sending Secret Messages activity on p. 8 of the CS Unplugged: Count the
Dots activity. (Solution is on p. 13.)
Discussion of why binary numbers are important in computer science
o CS Unplugged: Count the Dots activity pp. 11-12 is a good summary.
Video “The Primes”
o View the first 3 minutes from the video "The Primes" that explains how Frank Drake sent 1679
bits of information into space in the search of intelligent life.
o The video can be found at:
http://www.learner.org/resources/series210.html?pop=yes&pid=2283
o You will need to sign up for a free account at http://www.learner.org first.
o If you cannot view and display the video, the book that goes with the video explains the
transmission. It can be found at:
http://www.learner.org/channel/courses/mathilluminated/units/1/textbook/01.php
o Also discuss SETI and what it does
Explanation of Binary Art project
Exploring Computer Science—Unit 2: Problem Solving Page 84
Version 3.0
Resources:
Bell, Tim, Ian Witten and Mike Fellows. Computer Science Unplugged. Canterbury, New Zealand: 2002.
Computer Science Unplugged Activity 1: Count the Dots—Binary Numbers, pp. 3-13
Binary Art Project
Create 341 bits of information about you that could be sent into space. If intelligent life out there receives this
information and decodes your information, the resulting pictogram should display information about you.
341 is a semi-prime, only divisible by 11 and 31. The table below has 31 rows and 11 columns.
Topic Description: This lesson introduces the linear and binary search algorithms.
Objectives:
Student Activities:
Teaching/Learning Strategies:
o Have students provide examples of where each type of search is appropriate and why.
Resources:
Shasha, Dennis. The Puzzling Adventures of Doctor Ecco. Mineola, New York: Dover Publications, Inc.,
1998.
Tower Building Activity
Donald Trump wants to build a 100 meter high tower as quickly as possible. He has unlimited resources and an
unlimited budget and is willing to spend any amount to get the job done.
He has chosen to build the tower with blocks that are 100 meters long and 100 meters wide, but only 1 meter
tall. The blocks interlock on top and bottom (like legos). They cannot be stacked sideways.
Using special lifters, putting one block on top of another block takes one week regardless of how high the stacks
are.
What is the shortest amount of time that it will take to build the tower?
Suggestions:
Topic Description: In this lesson the concept of a list (sorted and unsorted) and sorting algorithms will be
explored.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: List examples of where it matters whether items are in order (sorted).
o Have volunteers provide examples from their lists and explain why it matters that they are
sorted; in other words, what are the consequences if the list is not sorted?
CS Unplugged: Lightest and Heaviest activity
o The activity can be downloaded from http://csunplugged.com. It will be helpful to read through
the entire activity in advance, so that you can revise questions, add your own questions, and
think about how you might want to structure each part of the activity. The goal is for students
to be actively involved in some way and for all students to be able to describe the various types
of sorting. What follows is the minimal suggestion.
o Divide students into groups of 3-4 and give each group a set of weights and a balance scale as
described in steps 1 and 2 on p. 66 of the Sorting Weights Activity. (There are many possible
ways to make the weights. One would be to use bags with varying numbers of pieces of candy.
If you don’t have balance scales, you can help students come up with a strategy that will
simulate a scale. For example, if you make the weights clearly different in weight, they could do
this by feel.)
o Have students complete #3 and #4 on p. 66 and then discuss their answers as indicated.
o Have students complete #5 on p. 66.
o At this point in the activity, students should present their findings to the class and discuss. Point
out the selection sort information on p.66.
Exploring Computer Science—Unit 2: Problem Solving Page 91
Version 3.0
o Have students complete the Divide and Conquer activity on p.67. Throughout, guide students as
necessary and have them keep track of the processes they use.
If time permits, have students try both sorting methods to sort cards that have 50 random numbers on
them and analyze the number of comparisons required for each.
Resources:
Bell, Tim, Ian Witten and Mike Fellows. Computer Science Unplugged., New Zealand: 2002.
Computer Science Unplugged Activity 7: Lightest and Heaviest—Sorting Algorithms, pp. 64-70
Containers of the same size with different weights
Balance scales
Topic Description: Minimal spanning trees and graphs will be explored. Students will learn how graphs can be
used to help solve problems.
Objectives:
Student Activities:
Participate in the various parts of the CS Unplugged: The Muddy City activity.
Participate in the various parts of the CS Unplugged: The Muddy City activity extension.
Teaching/Learning Strategies:
Resources:
Bell, Tim, Ian Witten and Mike Fellows. Computer Science Unplugged. Canterbury, New Zealand: 2002.
Computer Science Unplugged Activity 9: The Muddy City—Minimal Spanning Trees, pp. 76-80
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Road atlases
Final Project (This project is adapted from MathmaniaCS Lesson 13
(http://www.mathmaniacs.org/lessons )
Final Project Sample Rubric
Final Project
Your task is to create the most inexpensive plan for constructing new high speed roadways in place of existing
roads between 10 US cities and present your plan to the class.
Scenario:
The Department of Transportation is considering the construction of new high speed roadways in place of
existing roads between the 10 US cities you have been given. Their goal is to connect all these cities as cheaply
as possible. The cost of changing an existing road to a high speed roadway is 1 (where 1 represents whatever the
base cost per mile is) for every mile of interstate, 2 (twice the cost per mile as interstate) for every mile of state
highway, and 3 (three times the cost per mile as interstate) for every county highway, etc.
You will need a road atlas to find the various distances and types of roads.
Your presentation can be given as a poster, a powerpoint, a video or other pre-approved product.
_______________________ _______________________
_______________________ _______________________
Detailed Plans
Total cost 10
Presentation
TOTAL: 100
Unit 3:
Web Design
Introduction
The Web Design unit builds on the concepts presented in the previous units by having students apply problem
solving strategies to web design; thus, it also serves as a bridge to the Introduction to Programming unit as
students move from user to creator. The unit also provides an opportunity to expand upon the issues of ethics
and privacy related to the internet that were introduced in the first unit.
The basics of html and css are introduced as a method for describing features of web pages that students can
use to design and develop web pages based on their own culture, interests and unique experiences.
The html and css lessons are scaffolded in order to provide all students an entry point, but it is likely that as
students explore they will encounter features they wish to add for which they do not yet know the correct tags.
Many students will be able to figure these out on their own and should be encouraged to do so.
Resist the temptation to provide lists of appropriate font and color palettes and/or best layout designs. As
students experiment and share their work, challenge them to explain why they chose the features they did and
encourage peers to comment.
Example projects are provided as a starting point, but students should be encouraged to work on projects that
are authentic for them. They may choose to create web pages on different topics for each assigned project or
build on a prior one as appropriate.
There are two supplements—Flash animation and Javascript—at the end of the unit for use if there is additional
time and interest.
Specific topics for each instructional day are listed in the overview chart on the next page.
1-2 Issues of social responsibility in web use are explored as well as the
relative merits of the influence of the web on society, personal lives, and
education.
3-4 Introduce the use of basic html.
17-19 Practice using style tables, lists and css in the context of a web page
creation project.
20-21 Introduce several web user interface elements combining javascript, html,
css, and Photoshop.
22 Implement advanced functionality with javascript libraries. Create
accordion menus based on the mootools implementation.
23-24 Further explore the use of javascript library effects, including lightbox
slideshow and sliding image puzzles.
25-28 Final projects and gallery walk
Topic Description: This lesson engages students in a discussion of the web as social experience. Issues of social
responsibility in web use are explored as well as the relative merits of the influence of the web on society,
personal lives, and education.
Objectives:
Set up a blog.
Explain basic security issues on the internet.
Identify web applications which influence society and education.
Identify appropriate vs. inappropriate use of social websites.
Student Activities:
Set up a blog.
Participate in discussion of online security.
Create a blog entry on online experiences.
Participate in a discussion about online experiences with social networking sites, blogs, email, online
chatting and the kind of impact it has had on their lives?
View and discuss Growing Up Online.
Create a Blog entry reflecting on Growing Up Online.
Teaching/Learning Strategies:
Set up a blog
o Complete the portions of the setup that were not done prior to class.
o Guide a discussion of online security as students work on setting up their blogs.
Create a blog entry on online experiences.
o Show students how to create a blog entry using the blogging tool chosen for the class.
o Have students create an entry that describes some of their current online experiences.
Guide a discussion regarding student use of social networking applications. (Note: This discussion may
be a review of discussions from Unit 1) Ask questions such as:
o Which social networking applications do you use? (blogging, facebook, myspace)
o How often? How many of your friends use them?
o How important are these web applications to your lives? How have they changed your lives?
Living their lives essentially online
A revolution in classrooms and in social life
Self expression, trying on new Identities
Display parts 1-3 of Growing Up Online from the PBS series Frontline.
o After viewing the video, lead a discussion on the content.
Blog entry reflecting on Growing Up Online
o Have students create a blog entry reflecting on the video. Did any of their thoughts change after
viewing the video?
Note: Helping each student set up a blog will require some time outside of class and should be completed in
advance of the lesson. For example, students need to get a free google gmail account before signing up for
blogger. This can only be done outside of the LAUSD firewall.
Resources:
http://www.pbs.org/wgbh/pages/frontline/kidsonline/
http://www.blogger.com
http://www.wordpress.com
http://www.tumblr.com
Objectives:
Student Activities:
Teaching/Learning Strategies:
oEnter a title and a one sentence body. Demonstrate how to save the document as an html file
and how to view the output page in a browser. Point out that the title appears in the bar at the
top of the window. Also point out that the end tag is necessary in order to tell the computer
when to stop doing a particular thing.
Html page with a title and a body
o Have students write a paragraph in the body section and give it a title. (Students can choose to
write about themselves or another topic of interest.)
o Demonstrate the creation of a basic html/css page in the html editor of choice.
Html page with paragraphs and headings
o Have students add a second paragraph to their web page and note what happens.
o Then have them add two lists related to their topic (favorite movies, music, hobbies, etc.) and
note what happens.
o Guide students to notice that everything runs together no matter how they type it.
o Explain the following html tags.
o Have students try inserting these new tags into their web page and note what happens.
o Remind students that they need the end tag.
o This is a good place to point out that html is one language that can be used to give the computer
instructions as discussed in Unit 1.
Html page with line breaks and horizontal lines
o Explain the following html tags.
o Have students try inserting these new tags into their web pages and note what happens.
o Give students time to experiment and determine what combination of tags will allow them to
put their lists in a column, with each list having its own heading.
o Note that you can retrieve an html reference from http://www.w3schools.com/html/
Resources:
html editors
html tutorial
http://www.w3schools.com/html/
Instructional Day: 5
Objectives:
Create an html page that includes underlined, italicized, and boldface text.
.
Outline of the Lesson:
Student Activities:
Teaching/Learning Strategies:
Review of tags
o Have students open their files; then lead a quick review of the tags.
Html pages that include underlined, italicized, and boldface text
o Explain the following html tags.
o Have students try inserting these new tags into their web pages and note what happens.
o Give students time to experiment
o Ask students to think about what things they would like to be able to do with web pages that
they have not done already. Answers will vary: pictures, different types of fonts, colors, etc.
Resources:
html tutorial
http://www.w3schools.com/html/
Topic Description: Explore image editing for the web using Photoshop or an image editor of choice.
Objectives:
Identify the standard image resolution for the web (72 dpi).
Resize and crop images for the web.
Identify and differentiate between the various image formats used in web sites: jpg, gif, png.
Create an html page that includes images.
Student Activities:
Teaching/Learning Strategies:
o Point out that the correct syntax for defining an image is <img src=”xxxx.jpg”/>
o xxxx is the name of the image file. The image should be in the same folder as the html file.
o Have students insert their image into their html page.
o They can resize the photo on the screen with: <img src=”xxxx.jpg”width=”some #”height=”some
#”/>
o They can add a title by: <img src=”xxxx.jpg”width=”some #”height=”some #” title=”This is my
photo…”/>
o Give students time to experiment with placement, sizes, headings, and additional images.
o For students who finish early, you can have them view the filters and effects section of
http://www.georgebenainous.com/web and try modifying their images.
Resources:
http://www.georgebenainous.com/web (photoshop—filters/effects)
http://morph.cs.st-andrews.ac.uk/
https://www.photoshop.com/express
Objectives:
Student Activities:
Teaching/Learning Strategies:
Overview of css
o CSS stands for Cascading Style Sheets.
o CSS provides the formatting and style for a web page, while html provides the content.
o There are three methods for inserting styles.
Inline styles
Internal style sheet
External style sheet
o The basic format for a style is:
o The selector is the element you want to style; each declaration consists of a property and a
value; the property is the attribute you want to change and each property has a value.
o To make it more readable you can put each declaration on a separate line.
o Demonstrate creating a header with the inline style listed above.
o Note that you can retrieve a css reference from http://www.w3schools.com/css/.
o Display http://www.w3schools.com/tags/ref_colornames.asp and
http://www.w3schools.com/tags/ref_colorpicker.asp as sources for choosing colors.
o Have students suggest a few different declarations and demonstrate the results.
Create a web page that uses inline styles.
o Have students add a few styles to their web page.
Sample internal style sheet.
o Point out that inline styles should be used sparingly because they defeat the purpose of
separating the style from the content.
o Have students view http://www.georgebenainous.com/web (html/css--basic markup). They
should view the page before and after the styling is added.
o Point out what each piece of the styling does to the original page. Point out the format and that
the internal style sheet is included in the <head>. Also note that the style applies to the entire
page unless a specific inline style is added.
Movie review html/css page
o Students create a website with one or more movie reviews. The html page will contain the
following paragraphs for each review: title, director, synopsis, review. The css stylesheet will
have corresponding classes. The page will also include:
At least one picture
The name of at least one of the actors in italics
Give the background and text colors
Share student work
o Guide students in sharing their work either by a gallery walk, volunteers, etc.
Complete second html/css project
o Note: you may choose to have students continue working on their movie project rather than
start a second one if time is short.
o Some examples of projects from which to have students choose are provided in the tutorial or
have students create their own project.
Share results of student work.
o Guide students in sharing their work either by a gallery walk, volunteers, etc.
Resources:
http://www.w3schools.com/tags/ref_colornames.asp
http://www.w3schools.com/tags/ref_colorpicker.asp
Objectives:
Review of html/css concepts and description of how to link to a separate css file (15 minutes)
Sample web content (20 minutes)
Creation of separate html and css pages for the previous movie review project (40 minutes)
Creation of separate html and css pages for a second project (75 minutes)
Share student work (15 minutes)
Student Activities:
Teaching/Learning Strategies:
A list of some of the songs from the band in a paragraph in regular print
A separate section that explains why the band is your favorite
The background and text in different colors
o Other examples can be found in the tutorial
Share student work
o Guide students in sharing their work either by a gallery walk, volunteers, etc.
Resources:
Instructional Day: 14
Topic Description: This lesson explores the use of links to other websites.
Objectives:
Student Activities:
Teaching/Learning Strategies:
o Point out that the correct syntax for defining a hyperlink is <a href="url">Link text </a>
o The start tag contains information about the link address.
o What is to be displayed can be text, an image, etc..
o Give students time to experiment with adding hyperlinks to their previous project, including
placement and sizes.
Resources:
Topic Description: In this lesson a variety of page layout styles are introduced.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
http://www.w3schools.com/html/
http://www.w3schools.com/css/default.asp
Objectives:
Student Activities:
Design and create a 3 page website about their future that links to at least 5 other websites and includes
a variety of design elements.
Share completed work.
Teaching/Learning Strategies:
Design and create a web page about their future that links to at least 5 other websites and includes a
variety of design elements.
o The three pages may either scroll or link to each other.
o The project should include images related to their future.
Share student work.
Resources:
http://www.georgebenainous.com/web (html/css)
Topic Description:
This lesson introduces several web user interface elements combining javascript, html, css, and Photoshop.
Objectives:
Apply a Photoshop filter, effect, or image adjustment using the lasso tool.
Create a rollover button using javascript.
Implement a menu using a styled list (with pre-implemented css).
Create a multi-page web site.
Review of the use of filters, effects, and image adjustments in Photoshop and demonstrate the creation
of rollover buttons. (10 minutes)
Creation of several javascript rollover buttons (10 minutes)
Creation of a menu (10 minutes)
Creation of a single template html file. (10 minutes)
Explanation of the requirements for the continental mapping project and the use of an html template.
(15 minutes)
Continental mapping project (40 minutes)
Share student work (10 minutes)
Student Activities:
View the rollover section of the javascript tutorial on the creation of rollover buttons.
Create several rollover buttons.
Review the section of the tutorial website dealing with using the lasso for inverted selections.
Create a single template html file with a menu.
Implement the continental mapping project.
Share completed work.
Teaching/Learning Strategies:
Resources:
Instructional Day: 22
Topic Description: Use Mootools to create a Web 2.0 style navigation called the accordion menu.
Objectives:
Student Activities:
View demos from mootools.net on how to include a javascript library in html code.
View the mootools section of the tutorial website.
Create a website in which content is displayed using the accordion menu.
Share completed work.
Teaching/Learning Strategies:
Resources:
http://www.georgebenainous.com/web (javascript—mootools)
http://www.mootools.net
http://www.wikipedia.net
Topic Description: This lesson further explores the use of javascript library effects, including the lightbox
slideshow and jquery.
Objectives:
Implement advanced interactive web functionality through the inclusion of javascript libraries.
Create a lightbox slideshow.
Create a sliding image puzzle.
Student Activities:
Teaching/Learning Strategies:
Guide students through the lightbox slideshow as implemented in the tutorial website.
Create a website in which content is displayed using a lightbox slideshow.
o Have students create a slideshow with at least five pictures and include captions for each
picture.
Share student work.
Guide students through the sliding image puzzle as implemented in the tutorial website.
Create sliding image page
o Students can use an image of their choice.
o Have students use Photoshop to resize /crop images as needed.
o Share puzzles with elbow partners.
Resources:
Objectives:
Student Activities:
Teaching/Learning Strategies:
Final project
o Explain final project choices.
o Help students with projects as necessary.
Gallery walk
o Encourage students to ask each other questions as they view the websites.
o Have students vote on their favorite.
Resources:
Final Project
Final Project Sample Rubric
Final Project
An ethical dilemma
A career
A worldwide or community problem
A topic of your choice that has been approved
Your task is to analyze an ethical dilemma. Choose one of the four dilemmas listed below or get approval for a
different one. You must consider the alternatives and give reasons for the why and the why not you should do
what is described. Then you must choose what you would do and explain why. The website should include pages
that
Ethical Dilemmas:
1. People illegally download music over the internet. Although it’s free, it is still illegal. What do you
choose to do? Why?
2. Your parent loses his/her job. You could help out by selling illegal dvds on the streets. What should you
do?
3. You have the ability to hack into the school computer system. You can change people’s grades. Would
you change your own? Why or why not? What if you could change the grade for a basketball player who
has a scholarship to play for a big university?
4. Someone you know works at a store that sells IPods. He steals some and asks if you want to buy one for
half the price the store sells it for? Should you buy it? Why or why not?
Career Website
Research a career and create a website that provides information about it.
Research a worldwide or community problem and create a website that provides information about it.
Points Points
Do you have? Yes No
Possible Earned
Website Content
Website Design
Peer Grading 15
Total 100
Instructional Day: 1
Topic Description: Adobe Flash (formerly Macromedia Flash) is a proprietary web animation platform. The
introductory lesson demonstrates how to use stop action photography and Flash to create a flipbook effect.
Objectives:
Preview the stop action photography study of the galloping horse (5 minutes)
Demonstration of how to clip each image in Photoshop (5 minutes)
Demonstration of how to import a series of images into Flash and how to play the movie (10 minutes)
Practice of the import procedure (5 minutes)
Creation of a movie from stop action photography (25 minutes)
Share student work (5 minutes)
Student Activities:
Preview the stop action photography study of the galloping horse from the Flash section of the tutorial
website.
View how to clip each image in Photoshop.
View how to import a series of images into Flash and how to play the movie.
Create a movie.
Share completed work.
Teaching/Learning Strategies:
Preview of the the stop action photography study of the galloping horse from the Flash section of the
tutorial website
o Discuss the historical significance of Eadweard Muybridge and stop action photography.
o Preview various Eadweard Muybridge photographic studies.
Demonstration of how to clip each image in Photoshop
o Create eleven separate images..
o Follow a numerical naming convention: 01.jpg, 02.jpg...11.jpg.
Demonstration of how to import a series of images into Flash and how to play the movie
o Guide students as they follow the procedure after it is demonstrated.
Exploring Computer Science—Unit 3: Flash Supplement Page 125
Version 3.0
Creation of a movie
o Suggest students download another Eadweard Muybridge stop action photographic study and
follow the same procedure or have them photograph their own stop action study.
o Circulate room and help students choose and complete projects.
Share student work
Resources:
http://www.georgebenainous.com/web (flash—flipbook)
http://www.adobe.com/cfusion/designcenter/search.cfm?product=Flash&go=Go
Instructional Day: 2
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
http://www.georgebenainous.com/web (flash—tweening)
http://www.adobe.com/cfusion/designcenter/search.cfm?product=Flash&go=Go
Instructional Day: 3
Topic Description: The movie clip is the basic unit of Flash animation which allows for reusability and scripting.
This lesson is an introduction in the creation of movie clips.
Objectives:
Student Activities:
Teaching/Learning Strategies:
o Guide students as they create their own ideas and then implement.
Resources:
Javascript Supplement
Instructional Day: 1
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Javascript tutorial
http://www.w3schools.com/JS/default.asp
Instructional Day: 2
Topic Description: Introduce javascript functions. Create modular, reusable code and use javascript to learn
fundamental programming concepts.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
http://www.georgebenainous.com/web (javascript—functions)
Javascript tutorial
http://www.w3schools.com/JS/default.asp
Unit 4:
Introduction to Programming
Introduction
Programming is one of the creative processes that can transform ideas into reality. The intention of this unit is
to highlight what can be created by using programming as a tool. As with the previous unit, students will create
projects that reflect the diversity of interests in the classroom and that are personal to individual students.
Scratch provides an environment that lends itself to “tinkering”. The drag and drop nature of the blocks moves
the focus away from messy syntax and allows for making modifications quickly. As students work through the
unit, they should be encouraged to reflect on their tinkering and the thought processes that go into it. Engage in
discussions of why a particular set of instructions didn’t work the way they thought they would and in
discussions of “what if” scenarios. It is through these discussions that you can help students connect
mathematics and logic to computation in programs and highlight the various abstractions they are using in
creating their projects.
The projects listed are examples only and represent a minimal set of activities. When students complete the
assigned projects, they should expand their work by adding features, collaborating with other students, and
adding more personalization. There are many more projects on the Scratch website (http://scratch.mit.edu).
The website is also a vibrant community. Students should be encouraged to become part of the community
where they can collaborate beyond their classroom and get additional ideas for projects.
Specific topics for each instructional day ar listed in the overview chart on the next page.
7-8 Practice the concept of event driven programming through the creation of
an alphabet game.
11-15 Write Scratch stories and present them to the class. Peer reviews are
conducted.
22-26 Create a timing game in Scratch and present it to the class. Peer reviews
are conducted.
27 Investigate two types of games that may provide ideas for the final
project.
28 Explain final project and the rubric for the final project.
29-33 Write Scratch programs for either My Community or Game project. Peer
reviews will be conducted.
Instructional Day: 1
Topic Description: This lesson introduces the Scratch programming language, including the basic terms utilized
in the language.
Objectives:
Student Activities:
Teaching/Learning Strategies
Journal Entry: How do you think programs like Microsoft Word, Internet Explorer and Windows are
made?
KWL chart
o Students meet with groups and each group completes a KWL chart. (Know, Want to Learn,
Learned)
o Groups take turns sharing out their K’s and W’s orally. They are encouraged not to repeat
anything that has already been said.
o Put KWL charts up in the classroom; tell students that they will finish the L towards the end of
the unit.
Scratch introductory video
o Played with sound. Can be played over a projector.
Model of how to start name assignment
o Address how sound will be handled in the classroom.
Scratch lends itself to playing sounds so it can get noisy. The teacher needs to decide
how to address this. Headsets with microphones are probably the best solution.
o Build a name project similar to name.sb.
o Emphasize
Every character in Scratch is called a Sprite.
Although Scratch is programming, it is not used in industry. Point out a few languages
that are used in industry—Java, C, C++. Throughout the unit, you will want to reinforce
that the basic constructs used in Scratch are also used in “industrial strength” languages.
How to choose a Sprite from a file
How to paint your own sprite
Each sprite has its own scripts.
You can right click any block and select help to get more information on how to use it.
How to change the language in Scratch (for your English Learners)
How to go to full screen mode and back
How to switch back and forth between sprites by clicking on them
X and Y coordinates on the screen are shown on the bottom right below the stage
How to save in the proper location (the default is to save in the Scratch Projects folder
(C:\\Program Files\Scratch\Projects))
The following blocks should be modeled:
Move _ steps
If on edge, bounce
Turn _ degrees
Forever
Change color effect by _
When the green flag is clicked
Students should not be scared to just try and experiment. They can’t break the
computer by dragging the wrong block.
Show students where they can access ScratchGettingStarted.pdf. (It would probably be
useful to have printed copies for each student.)
Show students Name Rubric.
Resources:
Name: _______________________
Have at least 3 different interesting behaviors for the letters in your name. 5
Extra Credit
Have your name reinitialize itself when the green flag is clicked. In other 2
words, all the letters will start off in the right location facing the correct
way.
TOTAL: 20
Topic Description: This lesson provides students an opportunity to practice using the features of Scratch
outlined on Day 1 in the context of creating a simple program.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What do you remember about Scratch from yesterday? What do some of the blocks do?
Class discussion of journal entry
o Allow students to share their responses.
o In the process, make sure to review concepts needed to finish the name project.
o Review rubric for name project.
o Tell students that they will do a gallery walk of the projects at the beginning of tomorrow.
Name programs
o Students write programs based on their own names.
o Teacher circulates room checking progress and answering questions.
o Before time is up, remind students to save their work.
o Remind students that Scratch is free to download at scratch.mit.edu.
Resources:
ScratchGettingStarted.pdf (scratch.mit.edu)
name.sb
Name Sample Rubric
http://scratch.mit.edu
Instructional Day: 4
Topic Description: This lesson describes how to create a dialogue between two sprites by first creating a written
dialogue.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Student presentations
o Have students volunteer to present their dialogues for the entire class.
Resources:
Name: _______________________
All the sprites are polite and they take turns talking 4
Extra Credit
TOTAL: 20
Topic Description: This lesson describes the methods of moving Sprites in Scratch.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Briefly describe how you would graph in your Algebra class (The x-y coordinate plane, etc)
o Time the students so they work 4 minutes individually and 1 minute sharing with their elbow partners.
moving.sb
o Circulate the room and help students answer the questions.
Discussion of answers to questions
o Emphasize that the “repeat” block will do whatever is inside it n times. This behavior can be called
iteration or looping.
o Point out that iteration is a construct that is used in other programming languages.
o Emphasize the differences between the 3 ways to move.
o Emphasize how the sprites will reinitialize themselves when the green flag is clicked.
baseball.sb
o Circulate the room and help students finish baseball.sb.
o After a student can get the cat around the bases, encourage them to use the “point in direction” block
to get the cat to turn the correct way when running.
o If students need a hint for the extra credit, show them the “next costume” and “switch to costume“
blocks under the “Looks” tab.
Resources:
Moving Project
Moving Project Solutions
moving.sb
baseball.sb
baseball solution.sb
Exploring Computer Science—Unit 4: Introduction to Programming Page 142
Version 3.0
Moving Project
There are basically 3 ways to move sprites in Scratch. Try the file moving.sb and answer the questions below:
There are basically 3 ways to move sprites in Scratch. Try the file moving.sb and answer the questions below:
12. Click the green flag. What do the three animals do?
They move across the screen.
13. Look at the scripts for each of the 3 sprites. What 3 blocks do all three sprites use?
When green flag clicked, go to x:_ y:_, and wait _ sec
17. Describe in your own words how the move block works.
Move the sprite n steps. If n is positive, the direction will be to the right.
19. Describe in your own words how the glide block works.
Take n seconds to move from my current position to (x,y).
20. Some of the blocks require x: and y: coordinates. Place the mouse over the white window and look at the
mouse x: and mouse y: numbers underneath the bottom. How are the x: and y: coordinates determined in
Scratch?
It is just like the 2 dimensional x y graphs from Algebra. (0,0) is in the exact middle of the stage.
21. Use what you’ve learned about moving to get the cat to run the bases (as realistically as possible – bases are run
counter clockwise) in baseball.sb. Make sure that when you click the green flag, the cat starts at home plate
again.
22. Extra Credit: Make the cat change costumes so that it looks like it is running as it circles the bases.
Topic Description: This lesson introduces the concept of event driven programming and provides practice through the
creation of an alphabet learning game.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
alphabet learning.sb
Alphabet Sample Rubric
Name: _______________________
Have a theme for your letter game (i.e. animals, food, etc.) 3
Use the “say _ for _ sec” to output what the letter stands for (i.e. “E is for 3
Elephant”)
Sprites all turn to letters when the “when green flag clicked” 2
Extra Credit
Use a microphone to record sounds for all the letters and play the sound when 2
the letter is clicked or typed (i.e. “E is for Elephant”)
TOTAL: 20
Topic Description: This lesson introduces the concept of broadcasting through role play and then provides students an
opportunity to complete a broadcast event in Scratch.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What does it mean to broadcast something (example the radio station is broadcasting music right
now)? If a radio or tv station is broadcasting something, does that mean that everyone is listening to it?
Discussion of journal entry
o Have a few students share their responses.
o Stress that even though a lot of things are being broadcast, not everyone is listening to every thing that
is being broadcast.
Role Play
o Solicit Volunteers to be the various characters.
o Give the performers a paper with ONLY their part. See Scratch Broadcast Role Play.
o Pass out the chart that shows all the parts to students that are not performing. See Scratch Broadcast
Role Play Interwoven.
o The students can think of it as a three act play where the scenes change. The difference here is that
there are no curtains so they will see everything change.
o The teacher will be the director and will make sure everything and everyone is in place during each
scene. The teacher can yell action before the scene starts to signify that everything checks out.
o Each performer’s paper is broken into scripts for the various scenes.
o One performer will be in charge of setting the stage. They can do this by erasing and drawing pictures
on the white board behind the stage.
o The Cat’s first two scripts end with broadcasts. The cat will tell the director (teacher) that it is time to go
on to the next scene.
Resources:
This is meant to be performed in front of a white board. This can also be done using more elaborate props. Each
character’s parts are broken down by events that are broadcast out to everyone. Select characters and give them their
parts of the scripts. There is also a script so that observers can see the flow of the entire program.
Characters:
The Crab:
The Opponent:
The Date:
The Cat
say: Hello!
broadcast BASKETBALL SCENE (tell everyone it’s time for the next scene)
broadcast MOVIE SCENE (tell everyone it’s time for the next scene)
The Crab
show: (Go up on stage. You might want to pose like a crab by making your hands into claws.)
The Opponent
show: (Go up on stage. You might want to pose like a basketball player.)
The Date
wait 2 secs:
Stage
Switch to background BEACH: (Draw a picture of the beach on the white board. A sun in one corner and a wavy line for
sand is fine.)
Switch to background BASKETBALL COURT: (Draw a picture of a basketball court. Drawing the backboard and rim should
be fine.)
Switch to background MOVIES: (Draw a picture of a movie theater. Drawing a sign that says movies should be ok.)
when GREEN FLAG when I receive BASKETBALL When I receive MOVIE SCENE:
clicked: SCENE:
The Cat switch to costume: switch to costume: basketball switch to costume: bag of
sunglasses popcorn or chips
say: I played lots of ball.
say: Hello! say: I went on a date. We
broadcast MOVIE SCENE went to the movies.
say: I’m going to tell you
about my summer.
broadcast BASKETBALL
SCENE
The Opponent hide: (Disappear from the show: (Go up on stage. Pose hide: (Disappear from the
stage) like a basketball player.) stage)
Finish a story about what the cat did over summer. Answer questions 1, 2, and 6 on paper.
1. Open the file summer.sb. Click the flag. What does it do so far?
2. Click on the cat and look at his script. What does the cat broadcast in the last block?
3. We’ll make a basketball scene (a second script)
Name: _______________________
Add in additional characters into each scene that show and hide 5
Extra Credit
TOTAL: 20
Topic Description: Students will begin to develop their own stories and write them in Scratch.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Introduction of project
o Show rubric: Story Project Sample Rubric.
Emphasize that they will make a small presentation along with showing their story.
Emphasize that there is extra credit for the best stories.
o Show example: cat story.sb
Journal Entry: Brainstorm some ideas for your story.
Review of brainstorming
o Split students into groups of three.
o Have students rotate so that each student will share brainstorms and receive feedback/suggestions from
the other students.
Scratch story
o Circulate room and help students with stories.
o If students don’t know where to start
Have them first develop their story on paper.
o If they have their story and don’t know where to start
Have them make a title screen or a first scene.
Resources:
cat story.sb
Story Project Sample Rubric
Name: _______________________
The Story
The Presentation
Explain an example from your program of how events (broadcast) were used to 10
transition from one scene to another.
Peer Grading 12
Extra Credit
TOTAL: 100
Topic Description: Students will review how to broadcast events by developing a Scratch story and presenting it to the
class.
Objectives:
Broadcast events.
Complete a Scratch story.
Develop a Scratch story project.
Assess their peers to help them gauge their progress.
Complete a rubric.
Prepare and make a presentation of a Scratch story to the class.
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Write down everything you remember about using the “broadcast” block in Scratch and changing
scenes in a story.
o Have students do this silently on paper.
Review of broadcasting
o Have students pair up with elbow partners. One student shares first. The other student then shares
their response adding to the first student’s response.
Whole class review of broadcasting
o Have a few students volunteer. Clear up any misconceptions. Refer back to the previous day’s role play
as an example.
Resources:
VOTING
1ST Place________
2nd Place________
PEER GRADING
Objectives:
Student Activities:
Finish Presentations.
Complete journal entry.
Participate in a discussion of the Make Variable example.
Enhance the variable example.
Teaching/Learning Strategies:
Finish Presentations
o Have students fill out Peer Grading sheet.
o To help students vote on the best, you may need to do a quick recap of the stories. You may also want
to quickly replay some of the better ones.
o Another option is to have students pick the best of each day and do a run off just replaying the top 3
from each day.
Journal Entry: What does the word variable mean in both mathematical and English terms?
o Time the students so they work 3 minutes individually and 2 minutes sharing with their elbow partners.
Make Variable Example
o Give two math examples. x + 3 = 5, 2x = 12
Ask: What is the name of the variable here? (Answer: x)
Although you have x in both equations, its value varies: it is 2 in one equation and 6 in another.
The notion is the same in a program—a variable is a name that represents a value that can be
changed. In the math example, the name was x.
o Make the variable example with the students (variable example.sb) having the students help you and
build their own at the same time. A possible sequence might be
Start by explaining that you want to make a game where you earn points for picking healthy
foods and lose points for picking unhealthy ones.
What do you think the variable will be? If no answer, ask what name will represent a
number that will change? (Answer: Points (or Good Nutrition Points in the example))
Add the sprites for the banana, cheesie poofs and text that says “Click on food to eat it”.
Ask: What tab do you think you should click on to make a variable? (Answer: Variables.)
Click “make a variable” calling it Good Nutrition Points.
Exploring Computer Science—Unit 4: Introduction to Programming Page 162
Version 3.0
Clicking the checkbox next to the variable will show or hide it.
Ask: If I want to make my points increase by 1 every time I choose the banana, how would I
write that script? (See example.)
As: How about making the points decrease by one when I click on the cheesie poofs? (See
example.)
Ask: What do you think should happen when the green flag is clicked? (Answer: reset the points
to 0.)
Ask: How do you think we should do that? (In example the script for this is under
Sprite4)
o Ask: Does it matter which script the “when green flag clicked” is under?
(Answer: No.)
Enhance Variable Example
o Have Students enhance the variable example by
Adding a food that is worth 2 points when clicked on.
Adding a food that is –3 points when clicked on.
Resources:
Peer Grading
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What comes to mind when you hear the word “if”? What are some ways we use the word “if” in
English?
o Time the students so they work 3 minutes individually and 2 minutes sharing with their elbow partners.
Conditional lecture
o Have a few students share their responses for the “if” parts and use that as a springboard.
o Basically in English, if is used to state a condition where something might happen if the condition is true.
Hence this topic is called conditionals. Point out that this is a common computer science construct.
o An example from computing is when a program like Microsoft Word asks you if you want to save your
work when you hit close. If you click yes, it saves your changes. If you click no, it discards your changes.
o if (some condition)
then do this
o Show students “if” block in Srcatch.
Notice that only hexagon shaped blocks can fit within it.
Notice that if the condition is true, it will do anything that is enclosed within the top and bottom
of the “if” block.
o Show the students age.doc and age.sb.
Remind students that since we are using integers (whole numbers) > 15 it means people that
are over 15 not including 15.
Show them how to use the slider to change the age.
Age Program
o For solution, see age solution.sb.
Exploring Computer Science—Unit 4: Introduction to Programming Page 164
Version 3.0
Age solutions
o Show a solution like age solution.sb.
o Show an alternate solution.
Since numbers are integers (whole numbers) we can do “age > 2” to mean “age >= 3”.
To do >= in scratch, you need to use the “or” block. See age – greater-equal.sb.
Enhance variable example
o Instruct students to go back into their variable example about nutrition and add:
A message about being nutritious if the amount of points becomes greater than 9.
A message about eating healthier food if the points becomes less than –4.
They can either have a sprite say the message or use broadcast to change the sprites/stage to
convey the message.
Resources:
Age Project
age.sb
age solution.sb
age – greater-equal.sb
variable example.sb
You are going to finish a program that will tell you what you can do depending on your age. Use the slider to set the
age.
1. Currently, it only does the first condition. Your task is to finish the program so that the cat will tell you the rest:
Topic Description: This lesson introduces And , Or and randomness. Students have an opportunity to practice utilizing
these features in the context of programs.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What’s the difference between And and Or? What does the word random mean in English?
o Teacher times the students so they work 4 minutes individually and 1 minute sharing with their elbow
partners.
And/Or Discussion
o Start with a few journal entries about And and Or.
o Kinesthetic And/Or Activity (Following is a possible set of conditions.)
Tell the students to stand up if the condition is true.
Say: If (you are a girl AND you are wearing blue) stand up.
Find a girl that is not wearing blue and is sitting. Ask her why sheis sitting if she’s a girl?
( Answer: she’s not wearing blue)
Ask: How many parts of the condition must be true for you to stand up if it is an AND?
(Answer: both)
Say: If (you are a boy OR you are wearing blue) stand up.
Find a boy that is standing but is not wearing blue. Ask: Why are you standing if you are
NOT wearing blue? (Answer: I’m a boy)
Ask: How many parts of the condition must be true for you to stand up if it is an OR? (
Answer: at least one)
Ask: If both parts of the condition are true for an OR, is it ok to stand? (Answer: YES!)
Resources:
Grades Project
grades solution.sb
dice.sb
dice solution.sb
Your task is to make a Scratch program that will tell you the letter grade based on the percentage.
F: less than 60
At Crazy High School, students only qualify for tutoring if they have a B OR a D. After it says the grade, make your
program say “You qualify for tutoring” if the grade is a B or D.
Topic Description: This lesson requires students to apply their knowledge of conditionals to develop a Rock Paper
Scissors program in Scratch.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
rps starter.sb
rps solution.sb
rps solution b.sb
Objectives:
Create a timer.
Student Activities:
Teaching/Learning Strategies:
Resources:
Name: _______________________
The Game
Give the user feedback as to how well they timed their button pressing 10
Peer Grading 20
Extra Credit
TOTAL: 100
Topic Description: Students create a timing game in Scratch and participate in an Arcade Day during which they display
their games.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Objectives:
Student Activities:
Teaching/Learning Strategies:
Monkey game
o Have students answer the questions in Monkey Game Project.
o Have students enhance monkey game.sb.
Review answers
o See Monkey Game Project Solutions and monkey game solution.sb.
Pinball game
o Have students answer questions in Pinball Project.
o Have students enhance pinball.sb.
Resources:
1. Play the game by using the arrow keys. What blocks make the monkey respond to the keys?
2. Does the banana always appear in the same place?
3. What blocks do you think decide what x and y the banana should change to?
4. What are the names of the orange blocks under Variables?
5. What block(s) are used to change the score?
6. Customize the sprites in the game (make the characters be who you want).
7. Add another sprite that gives you 2 points if you touch it.
8. Get the game to stop at 10 points or more by telling you that you win.
9. Play the game by using the arrow keys. What blocks make the monkey respond to the keys? ”when _ key
pressed”
10. Does the banana always appear in the same place? No, it’s random.
11. What blocks do you think decide what x and y the banana should change to?
“set x to _” and “set y to _” combined with “pick random _ to _”
12. What are the names of the orange blocks under Variables? “change points by _”, “set points to _”, and “points”
13. What block(s) are used to change the score? “set points to 0” when the green flag is clicked and “change points
by 1” when the monkey touches the banana.
14. Customize the sprites in the game (make the characters be who you want).
15. Add another sprite that gives you 2 points if you touch it.
16. Get the game to stop at 10 points or more by telling you that you win.
Pinball Project
1. Look at the scripts for the pinball. How did the author simulate gravity?
2. How does the ball know when to “bounce” off of something?
3. Does the ball always bounce the same way when it hits something?
4. How do you think the ball determines which direction to bounce?
5. What’s the purpose of the purple line at the very bottom of the game?
6. Modify the game to keep track of points and get it checked off. Write down what changes you made.
7. What other features do think would make this game better?
1. Look at the scripts for the pinball. How did the author simulate gravity? There is a variable called
gravity that is constantly affecting the direction of the ball.
2. How does the ball know when to “bounce” off of something?
If it touches something that is green, orange or red, it will “bounce” off of it.
3. Does the ball always bounce the same way when it hits something?
No, the amount of the turn is random.
5. What’s the purpose of the purple line at the very bottom of the game?
If the ball touches purple, you lose.
6. Modify the game to keep track of points and get it checked off. Write down what changes you made.
See pinball solution.sb
Instructional Day: 28
Topic Description: Introduce the final project.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Pinball Project
Pinball Project Solutions
Game Project Sample Rubric
My Community Project
My Community Sample Rubric
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Game Project
My Community Project
Game Project Sample Rubric
My Community Sample Rubric
Instructional Day: 33
Objectives:
Student Activities:
Teaching/Learning Strategies:
KWL chart
o Refresh memory on activity.
They already did the K (Know) and W (Want to learn), now they must fill in the L
(Learned) section of their chart.
They should meet in their original groups.
o Students fill in the L portion of their chart.
Groups take turns sharing out their L’s orally. Encourage them not to repeat anything that has already
been said.
Completion of final projects
o Collect projects and rubrics.
o Help students prepare their presentations.
Resources:
Instructional Day: 34
Objectives:
Student Activities:
Teaching/Learning Strategies:
My Community Presentations
o Have students that elected to write programs about their community take turns presenting.
They will present their community as well as explain how they created the projects.
Help guide students by asking questions if the student does not fully explain how they
wrote their program.
o Have students in audience fill out Peer Grading.
o Have students vote for first and second place.
Resources:
Peer Grading
My Community Project Sample Rubric
Instructional Day: 35
Objectives:
Student Activities:
Teaching/Learning Strategies:
Games Presentations
o Have students take turns presenting their games to the rest of the class. They must walk the
class through how they created their game.
Help guide students by asking questions if the student does not fully explain how they
created their game.
o Have students in audience fill out Peer Grading.
Arcade Walk
o Have students rotate through and play the games that were presented
For example, teacher might allocate 1 minute per game and have the students rotate to
the next one.
o Have students vote for first and second place.
Resources:
Peer Grading
Game Project Sample Rubric
Final Project
Choose one of the following:
My Community Project
You will use Scratch to make a project about your community. You will use blocks like broadcast in your project.
You should have at least three different pages or scenes in this project.
Decide on one positive thing that you want to highlight and one thing you want to improve about your
community. Then find at least one statistic to backup your conclusions. Also include at least one personal
comment/recording and one picture. Lastly, you should have at least one observation from someone else in the
class about the topic – this means you will have to ask them what they think and either record it or write it
down.
Use these websites to find statistics about Los Angeles and California:
http://dq.cde.ca.gov/dataquest/
http://www.ed-data.k12.ca.us/welcome.asp
For information about other concerns in LA, like hunger and homelessness, go to:
http://www.unitedwayla.org/GETINFORMED/RR/Pages/default.aspx
http://www.unitedwayla.org/getinformed/rr/datalinks/Pages/default.aspx
For information about health and health care go to (if you need a password, let me know):
http://www.chis.ucla.edu/
http://www.ci.la.ca.us/
The Content
3 or more scenes 10
A personal comment/recording 5
A personal picture 5
The Program
Use broadcast 10
The Presentation
Peer Grading 12
Extra Credit
TOTAL: 100
Create your own game that meets the specifications outlined in the rubric. Be creative!
Name: _______________________
The Game
Keep score 10
Have a timer 10
Does the game get harder as you keep playing (more than one level) 10
The Presentation
Peer Grading 20
Extra Credit
TOTAL: 100
Unit 5:
Robotics
Introduction
Robotics provides a physical application of the programming and problem solving skills acquired in the previous
units. The LEGO® Mindstorms NXT software uses drag and drop programming which will provide a natural
transition from Scratch. Robots are shared by several students which will emphasize the collaborative nature of
computing. In order to design, build and improve their robots, students will need to apply effective team practices
and understand the different roles that are important for success.
Discussing the features of robots provides an opportunity to emphasize how computing has far-reaching effects
on society and has led to significant innovation. Students can discuss such topics as:
Throughout the unit the similarities and differences between Scratch and the programming needed to move the
robot can be highlighted.
Specific topics for each instructional day are listed in the overview chart on the next page.
2-3 Evaluate robot body designs and create algorithms to control robot
behavior.
10-14 Program the robot using the Mindstorm Robot Educator Software
tutorials.
15 Introduce RoboCup real life robotic competition and write instructions for
tic-tac-toe.
26-30 Design, build and program a robot that solves a stated problem.
(Optional—time permitting)
Instructional Day: 1
Topic Description: “What is a Robot”? Identify the criteria that make an item a robot.
Objectives:
Student Activities:
Brainstorm what they think of when they hear “robot” and then identify common features of
robots.
Participate in whole class activity determining if common items are robots.
Work in small groups to complete “Are we Robots?” activity.
Teaching/Learning Strategies:
Brainstorm: Ask students what they think of when they hear “robot”. Display responses.
Responses may include the following:
o Movie and TV robots such as Wall-E, iRobot, Robots, Rosie from The Jetsons
o Modern industrial robots such as those involved in assembly-line factory work
o Mars Rovers
o iRobot robots, both the vacuum cleaner and the robots built for military use, other
robots such as bomb detection and detonation
View the video “Kismet” from Teachers Domain.
Ask students if they can identify common features of the robots they have identified. What do
all those robots have in common? What tasks are easy for robots? What tasks are hard for
robots? (Answers: robots are often used for dangerous or repetitive tasks such as recovering
bombs, search and rescue operations in dangerous conditions where the robots search and the
humans rescue, factory work. They are replaceable, unlike humans, and don’t get bored or make
mistakes when doing the same thing over and over. Tasks that require judgment or human-like
interaction such as recognizing when there is a problem or walking and seeing like humans are
hard for robots. The two articles listed in the resource section provide more information and
would be interesting for students to read.)
Use the What is a Robot? handout to guide a discussion of robots.
Hand out copies of Am I a Robot? activity, with the pictures of a basic stove and a fancy
microwave. Check with students to make sure they recognize the items in the two pictures.
Based on student input, display the five criteria for whether something is a robot: body, input,
program, output, behavior. Note that what distinguishes a robot from a programmable device is
the ability to respond to changes in the environment and adapt; robots respond to. Explain to
the class that as a group you will figure out whether each of the two machines shown is a robot.
Go through the stove first. Ask students to figure out whether the stove meets the criteria for a
robot:
Body—yes
Input—yes (dials to turn the burners off and on, set oven temp)
Programmable—yes, in the sense that oven temperature tells a sensor what temperature the
oven needs to be heated.
Output—yes (heat!)
Behavior—yes, the oven responds by stopping at the desired temperature. It also adapts to
changes as in opening the oven door, adding a frozen item, etc. by adding more heat to get back
to the desired temperature.
come to harm
Law Two: A robot must obey the orders given to it by human beings, except where such orders
conflict with Law One
Law Three: A robot must protect its own existence, as long as such protection does not conflict
with Laws One and Two.
Resources:
Jennifer Casper and Robin Murphy, Human-robot interatctions during the robot-assisted urban
search and rescue response at the World Trade Center, IEEE Transactions on Systems, Man and
Cybernetics 33:3, 2003, pp. 367-85.
Robin Murphy, J. Kravitz, S. Stover and R. Shoureshi, Mobile robots in mine rescue and recovery,
IEEE Robotics & Automation Magazine 16:2, June 2009, pp. 91-2003.
What is a Robot? Handout ( Based on handouts from The Big Picture “Robotics Teacher Guide 1”
(Item #29852 from LEGO Dacta))
Am I a Robot? Activity
Are we Robots? Activity (Based on handouts from The Big Picture, “Robotics Teacher Guide 1”
(Item #29852 from LEGO Dacta))
http://www.teachersdomain.org/resources/eng06/sci/engin/design/lp_robot/index.html
specifically
http://www.teachersdomain.org/resources/eng06/sci/engin/design/kismet/index.html (may
require free registration)
Asimov’s three laws of robotics: http://en.wikipedia.org/wiki/Three_Laws_of_Robotics,
http://www.asimovonline.com/asimov_FAQ.html#series13 , essay at
http://www.sfwriter.com/rmasilaw.htm
There are many different kinds of robots, from ones designed to build cars to ones that vacuum to ones
that explore other planets. To be a robot, a machine must meet certain criteria. A machine is only a
robot if it has all the elements listed below:
Body
The body is a physical substance and shape of some type. The body will be designed based on the
function – some look like vehicles, some like an arm, some like a person. If you can touch it, that’s the
body.
Control
Control is a program to control the robot. Robots must be told what to do. To control a robot we need:
Input
Input is the information that comes from the robot’s sensors. Robots have sensors that they use
to get information from the robot’s environment. For example, a smoke detector can detect
smoke. (In other words, sensing the robot’s environment). Robots typically have external and
internal sensors.
Programmable
The program is a set of instructions or rules that the programmer gives the robot. For example,
a smoke detector has a program to make a sound if it senses smoke. To be a robot, a machine
must be programmable.
Output
The output is the action a robot takes, often involving motors, lights, or sounds. For example, a
smoke detector makes a loud sound and might flash lights. (In other words, effecting change in
the robot’s environment—adapting.)
Behavior
Behavior is the combination of outputs that result in the task or job the robot does. For example, the
behavior of a smoke detector is to “go off” in the presence of smoke. “Going off” is a combination of
making noise and flashing lights, and may also involve calling the fire department.
Am I a Robot? Activity
Instructions: Below is a list of machines that you may encounter in your daily life. Add machines to the
bottom. Complete the table by deciding if the machine meets the criteria for being a robot. Then
determine if the machine is a robot.
Topic Description: Evaluate robot body designs and create algorithms to control robot behavior.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Revisit “Are we robots” activity. Go through the list of items, asking students to indicate if they
thought each item was a robot or not. Occasionally, especially if there is disagreement, ask
students to defend their answer.
Discuss the effect of changing design. (This can be done as a warm up writing exercise with
students sharing their responses.)
o Ask students, “If you could change the body of the printer (or another device in the
room) what would you change? How would that affect other things like the behavior or
function of the printer, price, cost to build, or popularity? Have students share their
ideas.
Explain that there are limits to what robots can do because robots are limited by their bodies.
For example, it is difficult to create a robotic hand that can grasp small or delicate items – it
would require many motors (simulating all the muscles in the hand) and many sensors to detect
the item (simulating the neurons in the hand).
o Make sure each pair of students has a shoe that can be tied.
o Direct students to first try tying the shoe blindfolded or with eyes shut. Discuss how it
went—Was it hard? What was hard about it? How was it like a robot tying the shoe?
o Direct students to tie the shoe with heavy gloves on. Discuss the experience. How was it
like a robot tying the shoe? What made it hard?
o Direct students to tie the shoe with tongue depressors taped onto thumbs and
forefingers or just holding tongue depressors. Discuss the experience. How was it like a
robot tying the shoe? What made it hard?
o Direct students to tie the shoe with pliers. How was it like a robot tying the shoe? What
made it hard?
o Direct the students to work with their partner to tie the shoes using the pliers, each
person holding one pair. Discuss the experience. How was it like two robots working
together? What made it hard?
Activity: Walk like a robot
o Choose one student to be a “robot” or tell students that you will be the robot. Choose a
starting point and an ending point between which the “robot” must navigate. Make sure
the path is not direct.
o Tell the class that they must direct the robot from the starting point to the ending point
using only five commands:
Turn left 90 deg.
Turn right 90 deg.
Take a step forward with the left foot.
Take a step forward with the right foot.
Stop.
o Students can take turns or work as a group. The robot should only follow those five
commands and not respond to other commands. Tell students to be careful with the
robot and not walk it into walls or barriers. (The robot should stop before it hits a
barrier such as a wall.).
o At some point, remind students about loops. They can tell the robot to repeat a
command or a block of commands such as “repeat: take a step forward with the left
foot, take a step forward with the right foot until you are at the wall”
o Point out that this is frequently what is done in dancing and choreography—sequences
of steps are repeated.
o If there is time, show the video of the “macarena” reference in the resource section.
o Conclude by pointing out that these kinds of commands are what they will be
programming their robots to execute.
Resources:
Instructional Day: 4
Objectives:
Student Activities:
Student groups work together to set up their LEGO kits for use in building robots.
Teaching/Learning Strategies:
Give each pair (or group of three) a LEGO® Mindstorms® NXT® kit. Point out the picture that
shows where each item should be placed in the tray.
Ask students to set up their trays so that they will be ready for use in building robots.
Resources:
Instructional Day: 5
Objectives:
Student Activities:
Teaching/Learning Strategies:
Have students get out their kits and the manual that comes with the kit. Go through step 1 on p.
8 with the students to make sure they understand the format of the manual.
Ask student groups to assemble the base of their robot according to the instructions on pp. 8-
21. (Batteries should be charged in advance.)
Resources:
Topic Description: Introduce the features of the NXT Brick—the “brain” of the robot.
Objectives:
Student Activities:
Articulate what they observe about the the NXT brick while the teacher explains each part.
Test sensor data using the ‘View’ programs and report observations.
Run ‘try me’ programs and describe what the programs do.
Teaching/Learning Strategies:
Have students get out their robot base, sensors, lights, motors, and three wheels. Explain that
the NXT is the brain of the robot. Have students describe the parts they see and make sure the
following parts get identified. (The NXT User Guide pp. 9-12 can be used as support.)
o Ports number 1-4: these are input ports. You use wires to plug sensors into the NXT
brick. There are four kinds of sensors: touch sensors (detect touch/obstacles), sound
sensor (detect the sound levels), light sensor (detects light level), ultrasonic sensor
(detects movement and distance to an object). Reminder: input means sensing
something in the robot’s environment.
o Ports A-C: these are output ports. You use wires to connect devices for output. The
devices are lamps and motors. Also, note that the speaker is an output port. The output
is that the light can go on or off and that the motor can turn or stop turning. Reminder:
output means effecting change in the robot’s environment.
o Buttons:
Orange button: On/Enter
Light grey arrows: Navigation, left and right
Dark Grey button: Clear/Go back. Keep pressing this to turn off until prompt, then
hit orange
o Lines in the right side: speaker. This is where noise comes out of the robot.
o If the rechargeable battery is in, there will be a power plug and LCD lights.
Tell students to turn on the robot by pressing the orange button. What happens? (It makes a
happy little song. LOUD.) What do they see now?
o NXT at the top—name of the brick. Can be changed in the software
o Battery level top right
o Running icon—next to the battery icon. As long as it is spinning, the NXT is turned on
and working correctly. If it freezes, the NXT has frozen and must be reset.
o There are three icons on the screen. The one that is highlighted by default looks like two
floppy disks and has the label above “My Files”. If they start hitting buttons, they can
scroll through several menu options by using the arrow keys or go into My Files by
hitting the orange button. The menu options are:
My Files—where programs will be stored.
NXT Program—allows you to build small programs using only the NXT without
the need for a computer.
View—you can do a quick test of your sensors and motors and see the current
data for each. You have to select the test you want to do and which port the
sensor or motor is on. Only one test can be run at a time. The data will display
on the screen.
Bluetooth—you can set a wireless connection between the NXT and other
Bluetooth devices including other NXTs, phones, and computers.
Settings—you can change settings such as the speaker volume and the sleep
time.
Try Me—built-in programs
o Explain that in order for the robot to really do anything, you have to hook up input and
output devices. Ask students to try to identify the devices in the kit. Make sure they can
identify the touch sensor, sound sensor, light sensor, ultrasonic sensor, servo motor and
lamps. Reinforce that the sensors are all input devices and the motors and lamps are
output devices.
Demonstrate and have students carefully plug the devices into the NXT. Sensors can be plugged
into any input port numbered 1-4 but these default settings are used for the test and sample
programs. See pp. 5-6 and 9 of the NXT User Guide for more information. Make sure students
know to support the weight of the devices and the NXT brick without pulling on the wires.
Port 1: Touch sensor
Port 2: Sound Sensor
Port 3: Light Sensor
Port 4: Ultrasonic Sensor.
Port A: Light
Resources:
Objectives:
Student Activities:
Discuss how the programs were created in the NXT brick and how they behaved compared to
expectations.
Listen to explanation of Mindstorms NXT software and respond to questions.
Give ideas to teacher as s/he writes small programs in the software.
Listen to explanation of how to use the tutorials.
Teaching/Learning Strategies:
Ask students what they programmed the robot to do. Get several answers. Did it do what they
expected? Why or why not? Would it be a good idea to use the NXT Program interface to write
all their programs? Why not? (It can only take 5 commands in a program.)
Projecting the teacher’s screen, launch the Mindstorms NXT software. Show the students where
the tutorials are in the Robot Educator section and how to open a new program. Using the User
Guide pp. 48-49, describe all the parts of the interface.
With student input, use the common palette to build a small program. Ideally, use a variety of
the blocks of the common palette, explaining what each one does as you use it. For example, if
you wanted to build a program that told the robot to wait until the touch sensor was touched,
then move forward for one rotation then listen and if a loud sound occurs, then display a smiley
face and play a sound otherwise move forward, it would look like this:
Save the program and download it to an NXT brick. Make sure the brick is set up to do the
actions—have one built with the driving base and any necessary sensors. Demonstrate the
running of the program.
Modify the program and download it again. Try to make mistakes during this period and show
how to debug the program by frequently testing it, downloading extra blocks, and also making
mistakes such as having disconnected blocks. During this part have students try to work with
the software themselves and follow along with you.
Open a new program and switch to the complete palette. Show the differences in the two
palettes. With student input, write a new program using the blocks of the complete palette.
Show the differences in controlling the program. Make sure to show how to wire things in the
data hub. For example, a program that runs the motors for a random amount of time would
Make sure to make mistakes and demonstrate how to solve problems with the software such as
mis-wiring ports. Have students try these features at their seats as you do it. Point out the
similarities between programming the NXT software and what they did in the last unit with
Scratch.
This is a good point at which to discuss
o Software vs. hardware errors—in robotics the programming may be correct, but the
robot configured incorrectly.
o Syntax vs. logical errors—the program may compile, but the logic can still be incorrect.
Tell students that the next five days will be spent going through the tutorials in order to learn
how to build and program the NXT system.
Resources:
Topic Description: Program the robot using the Mindstorm Robot Educator Software tutorials.
Objectives:
Use the building blocks of the common palette to program the robot.
Build robots that can execute the functions programmed through the Robot Educator Software.
Program the robot using some or all of the complete palette of blocks.
Student Activities:
In groups of 2-4, students follow tutorials to build and program small robots.
Teaching/Learning Strategies:
Explain assessment model for tutorials. (Recommended: observe some but not all robots, such
as those for tutorials 8, 16, and 20 in the common palette along with several from the complete
palette; look at robot construction and the program as well as execution to determine grade.)
All students should complete the tutorials for the common palette before moving on to the
complete palette. It will be helpful for the future projects if students complete most, if not all,
of the tutorials for the complete palette as well.
Circulate throughout class to answer questions, help troubleshoot, and assess robots.
If some groups finish early, have them assist other groups.
Resources:
Instructional Day: 15
Topic Description: Introduce RoboCup real life robotic competition and write instructions for tic-tac-
toe.
Objectives:
Student Activities:
In pairs, students play a game of tic-tac-toe; then they discuss and write answers to the posted
questions.
Read and discuss the article, “Robot Competitors Meet on a Soccer Field of Dreams”.
In pairs, students write a series of clear instructions for a “robot” to play tic-tac-toe.
Teaching/Learning Strategies:
Before students enter the classroom, write the following on the board or chart paper: “Play a
game of tic-tac-toe with your partner. Then think about these questions together, and write
your answers: What are the rules of tic-tac-toe? What decisions does a player need to make
before taking a turn? How would you verbally describe each of these decisions? What is the
action a robot would need to take based on the decisions?”
After a few minutes, have students share some of their responses. Make a list of the rules of tic-
tac-toe on the board. Ensure students remember that if statements and conditionals are
required to describe the moves of the game. Collect the written responses to the warm up
activity.
Distribute the article “Robot Competitors Meet on a Soccer Field of Dreams” and have students
read it.
Lead a discussion about the article.
Explain to students that they will be working in pairs to write an application for robots to enable
them to play tic-tac-toe. The following day will be the RoboTicTacToe Challenge. Remind them
of the earlier discussion of tic-tac-toe. What goals does each player have? Who starts the game?
Is there a “best place” to put the first X? What are some winning strategies for the next move?
For example, If the X is in the center, then where should an O be placed? Why is “if-then” logic a
good way to explain strategy for a simple game like tic-tac-toe? How can Boolean operators,
and/or/not, help simplify the commands?
Demonstrate the opening move for a game of tic-tac-toe on the board. Draw a nine-space grid
and label the squares one through nine. Then ask students where to place the first X. Depending
on where it is placed, have students create an if-then statement that determines the next move.
For example, “If the first X is in the center, place an O in a corner square.”
Ask students to complete the instructions. Each instruction in the entire sequence will cover
every possible combination of moves the students can think of until a game is completed.
Students need to remember that there are multiple options for each move (including the
beginning move). They should consider all of the possibilities in developing their code. They
also need to consider what the behavior the robot will exhibit based on the instructions
provided.
Note that the focus in this lesson is really a reinforcement of programming as a set of
instructions in the context of something most students understand. The game of tic-tac-toe is
not a natural example of robotics because robot environments are generally dynamic with
infinite possible states of the environment.
Resources:
Instructional Day: 16
Objectives:
Student Activities:
Complete debugging tic-tac-toe statements by testing that they work correctly in several games.
Participate in RoboTic-Tac-Toe challenge.
Listen to an explanation of RoboCupJunior Dance Challenge and watch videos of dancing robots
from RoboCupJunior challenges.
Teaching/Learning Strategies:
Ask students to quickly test their tic-tac-toe instructions to make sure they are complete and
correct. They should play tic-tac-toe following only the instructions they have written.
Explain the challenge: each team will be acting as a single robot programmed by the application
they developed. One student will read a command from their application and the other student
will execute the command. Teams play against each other, testing how successful their code is.
Each game should be observed by the rest of the class and monitored to ensure the teams only
execute the commands read.
At the conclusion of the challenge, celebrate the winning team. Ask the students to describe
why that team won? What have they learned? How would they improve their programs?
(Remind students that precise instructions are required in programming.)
Explain that RoboCup is a research initiative founded in 1997 by an international group of
scientists interested in defining a common problem that could be addressed by researchers in
robotics, engineering, and artificial intelligence. Most participants are university and industry
research labs. RoboCupJunior (RCJ) was founded in 2000, with a focus on education. The RCJ
Rescue challenge was piloted in 2001 and adapted in 2003. RCJ is open to students up to age
19. There are two divisions: primary, which is up to age 14, and secondary, which is age 14 to
19. The first two robot projects will be based on the RoboCupJunior program. The first one is
the dancing robot which is the introductory level of the RoboCupJunior program. Students will
build and program a robot that dances. Show videos of dancing robots in competition.
Resources:
Objectives:
Use the NXT and output devices to build and program a robot that dances in time to music.
Student Activities:
Teaching/Learning Strategies:
Hand out requirements and rubric. Explain guidelines and answer questions.
Circulate and make sure students are on task; answer questions as needed.
Before the dance challenge, assign one student as timekeeper and another as DJ. Collect each
group’s program as they compete and immediately assess the robot using the rubric, while the
next group gets set up. You may declare a winner or have the students vote for the best robot.
At the end of the challenge, have each student complete the project reflection and submit it,
then clean up the robots.
Resources:
The dancing robot assignment is based on the first level of RoboCupJunior, an international competition.
More information about RoboCupJunior is available at http://rcj.robocup.org
Task:
Requirements:
The robot should not take any input, only have output in the form of various dance moves.
Dance must be 1-2 minutes long. You have a total of 5 minutes to get set up, have the robot
dance, and get out of the way for the next group.
The robot must stay in the marked space.
The robot must be autonomous. Other than hitting the start button, no human can touch it
while it performs.
The dance should be choreographed to the music you provide. The music must be appropriate
for playing at school – no obscenities, etc.
Teams may restart the robot up to 2 times at the discretion of the teacher. Any re-started,
unless due to a problem not the fault of the team, will result in a grade penalty.
Teams are encouraged to be as creative and entertaining as possible! Props, costumes, and
varied dance moves are encouraged. You may dance alongside your robot.
Each team must print out its program and hand it in at the same time that they compete.
Fair play is an important part of the RoboCup competition. Teams are expected to help other
teams as needed and not deliberately interfere with or damage other teams’ work. All students
are expected to respectfully watch all other teams compete.
Process:
1. Brainstorm ideas about how your robot should look, how it should work (wheels? Arms?) and
how you’ll build it. Select music.
2. Start building your robot.
3. Build a program that directs the robot to do your dance moves.
4. Test and revise the program. Make sure it runs for 1-2 minutes. Make sure it matches the music.
Make sure it won’t fall apart!
5. Show off the robot during the dance in class.
You will have two class periods to build and program the robot, then you will present it on the third day.
Programming (eg: use of loops, jumps, sub-routines, type of programming language used, etc)
Choreography (eg: robots to move in time with music, and change actions as music changes
tempo or rhythm. Choreography of humans and robots will be scored separately, etc)
Construction (i.e., robots should be of sound construction, components should not fall off ,
appropriate use of gearing, smooth and reliable operation, interesting movements, effective use
of mechanics to achieve a purpose, etc.)
Entertainment Value (i.e.,How much does the performance entertain or delight the audience?
Originality and creativity of the presentation, etc.)
Costume (Costume of humans and robots will be scored separately.)
Cooperation between teams
Dance stage will be a flat area. Official RobocupJunior stage size is 6X4 m.
Extra Credit A B C F
Choreography Dance has at least Dance has at least 6 Dance has at least 4 Dance has 3 Robot did not
10 different dance different dance different dance different dance move or did
moves. Dance moves. Dance is moves. Dance is moves. Dance not appear to
matched music varied and repetitive. Dance lasted for 30-45 dance.
precisely. Robot entertaining. Dance lasted for 45-60 seconds or 150-210
changed actions is choreographed to seconds or 120-150 seconds. Dance did
as music changed match music seconds. not match music.
tempo or rhythm
Construction Robot Robot is of sound Robot dances as Robot does not Robot falls
constructed using construction: intended, but some work as intended, apart or does
advanced gearing nothing falls off, extraneous parts but does move. not move at
or other advanced robot works as fall off. Robot falls apart. all.
construction intended. Very simple Construction
techniques. Robot Mechanics used construction – appears
demonstrates well to achieve mechanics not used careless or
extraordinary dance moves well. haphazard.
creativity. desired.
Entertainment Presentation is Audience is Presentation is not Problems occur but Robot does
Value unusually entertained by smooth: robot must robot does not compete.
creative. Humans robot, be restarted. eventually run
dance with robot. presentation, etc. mostly correctly.
Costume, props, Robot runs
etc enhance correctly the first
robot. time.
Cooperation Student(s) helped Student worked Student worked Student had trouble Student did
other groups well with group. somewhat well working with group. not participate
Student with group. Student Student in project.
participated participated in participated in few Student
actively in all parts most parts of parts of project. sabotaged
of project. project. others’ work.
For each member of your group, evaluate their performance as a team member:
Why?
______________________________________________________________________________
Why?
______________________________________________________________________________
Why?
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Objectives:
Build and program a robot that uses input and output devices to count simulated people by
following a black line and counting “people” on the path.
Student Activities:
Teaching/Learning Strategies:
Hand out requirements and rubric. Explain guidelines and answer questions. Show students the
arena with the victims laid out. Explain that they must use sensors so that the robot will follow
the black line and will sense when it has encountered a victim or a gap.
Circulate the room and make sure students are on task; answer questions as needed.
During the rescue challenge, assign one student as timekeeper and one to keep track of victims
found. Collect each group’s program as they compete and immediately assess the robot using
the rubric, while the next group gets set up.
At the end of the challenge, have each student complete the project reflection and submit it,
then clean up the robots.
Resources:
Build a robot that follows a black line on a white background, counts green or metallic “people” and
avoids obstacles.
Requirements:
The robot must follow the black line and attempt to complete the course through the entire
arena. The robot will begin at the starting location in the doorway of the first “room”
The robot should stop and flash a light for at least two seconds to indicate it has found a victim.
For extra credit, count the number of victims and display the count.
The robot should be able to avoid items of debris blocking the black line.
If a robot has been stuck or lost the black line for more than 20 seconds, the teacher may pick it
up and put it back onto the black line a little beyond where it ran into problems. The 20-second
rule allows it to try to find its way back to the line without intervention. A team may decide to
quit if the robot is faulty or repeatedly loses the line.
Robots must be controlled autonomously except for being started by a member of the team.
The robot will have 10 minutes to complete the course and identify all victims.
Each team must print out its program and hand it in at the same time that they compete.
Fair play is an important part of the RoboCup challenge. Teams are expected to help other
teams as needed and not deliberately interfere with or damage other teams’ work. All students
are expected to respectfully watch all other teams compete.
Process:
6. Brainstorm ideas about how your robot should work: what sensors will you need? What motors
and lights? What programming constructs will you need?
7. Start building your robot.
8. Build a program that controls the robot
9. Test frequently and revise the program. Make sure it correctly detects victims and that it can
follow the line. Check if it can navigate gaps.
You will have three and a half class periods to build and program the robot; then you will present it in
class.
http://rcj.robocup.org/rescue.html
5.1. Victims:
5.1.1. Ten (10) points are awarded for each victim located by the robot. The robot indicates that it has
found a victim by stopping and flashing a lamp for at least two (2) seconds.
5.1.2. Extra points are NOT awarded for the same victim being located more than once.
5.2.1. Ten (10) points are awarded for each gap in the black line that the robot successfully negotiates
(i.e. recovers the line on the far side of the gap).
5.3.1. Ten (10) points are awarded for each item of debris blocking the black line that the robot
successfully avoids (i.e. moves around the debris and recovers the line).
5.4. Rooms:
5.4.1. Ten (10) points are awarded for each room that the robot navigates successfully (i.e. enters
through one doorway and exits through the other doorway).
5.5. Ramp:
5.5.1. Thirty (30) points are awarded for the robot successfully negotiating a ramp without any
assistance.
5.6. Penalties:
5.6.1. Two (2) points are deducted for each false victim identification (i.e. whenever a robot indicates
that it has found a victim at a location where there isn't one).
5.6.2. Five (5) points are deducted for each lack of progress (i.e. whenever human intervention is
required to enable a robot to resume progress along the black line).
Extra Credit A B C F
Victims Found victims are All victims correctly Most victims Some victims No victims
counted and identified correctly correctly correctly
count is displayed identified identified identified
Gaps All gaps navigated Most gaps Some gaps No gaps navigated
correctly navigated navigated correctly
correctly correctly
Debris Robot avoided all Robot avoided Robot avoided Robot unable to
debris most debris some debris avoid debris
Rooms Robot entered all Robot entered Robot entered Robot did not
rooms through one most rooms one room and enter the first
door and exited through one door was unable to exit room
through the other and exited
through the other
ConstructionRobot Robot is of sound Parts of robot fall Robot does not Robot falls apart
constructed using construction: off. work as intended, or does not move
advanced gearing nothing falls off, but does move. at all.
or other advanced robot works as Very simple Robot falls apart. Construction
construction intended. construction – Robot is unable to appears careless
techniques. Robot mechanics not navigate due to or haphazard.
demonstrates used well. construction
extraordinary
creativity.
Programming Program uses Program is Program is Program is poorly Program does not
advanced straightforward and straightforward written or difficult work.
techniques efficient, using and easy to to understand.
including blocks loops and parallel understand. Program has
from the sequences as Program uses unused parts or
complete palette, necessary. Program inefficient logic to does not correctly
flow blocks, etc. uses sensors and navigate control robot.
strong logic to challenges and Program does not
navigate challenges find victims. correctly use
and find victims. sensors to control
motion.
Cooperation Student(s) helped Student worked Student worked Student had Student did not
other groups. well with group. somewhat well trouble working participate in
Managed own Student with group. with group. project. Student
role & helped participated Student Student sabotaged others’
group members. actively in all parts participated in participated in work. Made it
of project. most parts of few parts of difficult for group
project. project. to work.
Topic Description: Build, program and present a robot project of choice. (This lesson is optional,
depending on the time remaining to complete the unit.)
Objectives:
Student Activities:
Teaching/Learning Strategies:
Provide resources to students so that they can choose their projects. Some projects may
require use of the materials in the extension kit. (Note that http://www.nxtprograms.com has
building instructions, video clips and coding solutions.)
Approve planning documents as students finish plan and prepare to build and program robot.
Circulate and make sure students are on task; answer questions as needed.
During the demonstrations, fill out each rubric as you observe the robot. If possible, videotape
(or have a volunteer videotape) the running of each robot.
At the end of the competition, have each student complete the project reflection and submit it,
then clean up the robots.
Resources:
Objectives:
Student Activities:
Teaching/Learning Strategies:
Hand out requirements, planning document, and rubric. Explain guidelines and answer
questions.
Hand out challenges. Allow students to trade challenges as necessary. You may choose to have
each group working on a different challenge or have them overlap.
Approve planning documents as students finish plan and prepare to build and program robot.
Circulate and make sure students are on task; answer questions as needed. At the end of each
day, remind information specialists to fill out paperwork and remind groups to clean up the
space. Optionally, have students fill out the daily group evaluation.
During the design challenge, fill out each rubric as you observe the robot. If possible, videotape
(or have a volunteer videotape) the running of each robot.
On the final day of the unit have students disassemble the robots and organize the equipment.
Resources:
Project-Reflection
Daily Group Evaluation
Challenges:
o Option 1: Challenges from Design Challenges for computer-controlled LEGO products by
Len Litowitz. (Litowitz-challenges.doc) Some of these challenges are more appropriate
than others.
o Option 2: Gary Stager’s LEGO Challenges available from
http://www.stager.org/LEGO/challenges.pdf (stager-challenges.pdf) Not all of these
challenges are appropriate.
o Option 3: Webquest
Final Project
Design Challenge Planning
1.
2.
3.
4.
5.
List the steps the robot will need to go through to accomplish the task
1.
2.
3.
4.
5.
6.
7.
8.
9.
STEP #3 BRAINSTORMING
1.
2.
3.
4.
5.
6.
7.
8.
Use scratch paper to sketch ideas for the robot, then choose the “best” design idea and illustrate it
NEATLY below. Include any labels or explanations necessary to make your design understandable.
Outline the programming steps for your robot to accomplish the task. This should be in the form of a
flowchart.
Extra Credit A B C F
Successful Meets criteria Solution clearly Solution solves Solution does No reasonable
Solution and one or more solves the problem not completely attempt made to
super challenge problem but not inelegantly or solve problem. solve problem.
criteria super inefficiently.
challenges.
Programming Program uses Program is Program is Program is Program does
advanced straightforward straightforward poorly written not work.
techniques and efficient, and easy to or difficult to Program does
including and uses understand. understand. not solve
Boolean logic, appropriate Program is Program has problem
Complete programming inefficient. unused parts or effectively.
palette blocks, constructs. Program has a does not
etc. Program Program has a reasonable correctly control
demonstrates reasonable algorithm for robot.
extraordinary algorithm for solving problem. Algorithm is
creativity or solving problem strained.
unique way of and uses good
solving problem logic.
Construction Robot Robot is of Robot works as Robot does not Robot falls apart
constructed sound intended, but work as or does not
using advanced construction: some intended, but move at all.
gearing or other nothing falls off, extraneous parts does move. Construction
advanced robot works as fall off. Robot falls appears careless
construction intended. Moderate apart. Very or haphazard.
techniques. Mechanics used degree of simple
Robot well to achieve repeatability: construction –
demonstrates desired robot will run mechanics not
extraordinary outcome. Robot again but must used well. Robot
creativity. can solve be adjusted or cannot run
problem fixed. repeatedly.
repeatedly.
Documentation Documentation Ample and Good Fair Little or no
goes beyond accurate documentation: documentation: documentation
required documentation. documentation documentation
paperwork. Documentation kept kept
kept consistently but inconsistently
consistently and not as thorough and missing
thoroughly. as it could be. parts.
Cooperation Student(s) Student worked Student worked Student had Student did not
helped other well with group. somewhat well trouble working participate in
groups Student with group. with group. project. Student
participated Student Student sabotaged
actively in all participated in participated in others’ work.
parts of project. most parts of few parts of
project. project.
List each member of your group (including yourself) and assess each area with:
(self)
Comments:
You are responsible for reporting the status of the project to the Team Manager every day. How has the team
progressed? Address the following questions:
Tasks Report
Per 1 Get Challenge
Begin brainstorming & Designing
Per 2 Finish Design & get approval
Begin building test parts – try
different ideas
Per 3 Finish building test parts & begin
assembling robot from
successfully tested parts
Per 4 Continue assembling robot from
parts
Create program for robot
Per 5 Continue building &
programming robot – test
regularly
Per 6 Continue to refine robot – test
regularly with the program
Per 7 Finish refining robot- make sure
it completes challenge!
Per 8 Finish or enhance robot
Per 9 Design Challenge: Show off
robot!
Per 10 Clean up: Take apart robot,
return materials to original state
Names: _______________________________________________________
Unit 6:
Computing Applications
Python syntax is introduced only to the extent necessary to solve problems that utilize features required for data
analysis. Projects require students to work in pairs or larger teams and principles of software engineering and
pair programming are discussed in that context.
Specific topics for each instructional day are listed in the overview chart on the next page.
3-5 Create a program to draw a dream house or car using the concept of pair
programming.
6 Introduce the use of Dialogs in Python.
15-17 Practice the use of conditionals and functions through the creation of a
Choose Your Own Adventure program.
21-25 Practice the use of loops, conditionals, and list through the creation of an
opinion poll program.
Topic Description: This lesson introduces the Python programming environment and the Pen class.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry : Write down detailed instructions for drawing a square on a piece of paper using a pen.
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
Introduction of Python
o Python can be downloaded for free at http://www.python.org.
o Python is an interpretive language that is used by companies like Google, YouTube, and Pixar.
o Introduce the environment.
To run Python, go to the start menu and run IDLE (Python GUI). This opens the Python
shell.
You could type your code directly into Python, but it’s easier to just keep your
work in a file.
Use File->New Window to open up the editor.
Type: print(‘Hello World’)
Save your file as hello.py (File->Save)
o When saving Python files the first time, you need to type in the .py
extension. Your files will still run without it, but the .py files are syntax
highlighted.
Resources:
class Pen()
Define a pen. All functions below can be called as a method on the given pen. The constructor automatically
creates a canvas do be drawn on. The pen is either up (off the canvas) or down (on the canvas and drawing). It
is also pointed in a given direction. The pen starts in the middle (0,0) of the canvas pointed straight up. It keeps
track of it’s current location
forward(distance)
Example: pen.forward(100)
left(angle)
Example: pen.left(90)
right(angle)
Example: pen.right(90)
up()
Example: pen.up()
down()
Example: pen.down()
width(width)
Example: pen.width(5)
color(s)
color(r, g, b)
Set the pen color. In the first form, the color is specified as a Tk color specification as a string. The second form
specifies the color as a tuple of the RGB values, each in the range [0..1]. For the third form, the color is specified
giving the RGB values as three separate parameters (each in the range [0..1]).
Example: pen.color(‘blue’)
Example: pen.color(0,1,0.75)
write(text)
Example: pen.text(‘Hello’)
circle(radius[, extent])
Draw a circle with radius radius whose center-point is radius units left of the current position. extent determines
which part of a circle is drawn: if not given it defaults to a full circle.
If extent is not a full circle, one endpoint of the arc is the current pen position. The arc is drawn in a counter
clockwise direction if radius is positive, otherwise in a clockwise direction. In the process, the direction of the
pen is changed by the amount of the extent.
Example: pen.circle(10)
goto(x, y)
Go to co-ordinates x, y.
Example: pen.goto(100,0)
begin_fill()
Switch pen into filling mode; Must eventually be followed by a corresponding end_fill() call. Otherwise it will be
ignored.
end_fill()
Name: _______________________
There is a line that separates the roof from the rest of the house (the 4
house looks like a square with a triangle on top of it)
Extra Credit
TOTAL: 10
Instructional Day: 2
Topic Description: This lesson provides an introduction to drawing in Python using coordinates.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Write down detailed instructions for drawing a happy face on a piece of paper using a
pen.
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
Introduction of drawing using coordinates
o Coordinates:
The pen class uses an x-y coordinate plane just like in Algebra.
The origin (0,0) is in the middle of the canvas.
You can use goto(x,y) to move the pen to a specific point instead of using forward(),
left() and right(). It is similar to playing connect the dots.
o Have students try this example on their own and then explain it:
pen.goto(0,200)
pen.goto(100,300)
pen.goto(200,200)
pen.goto(200,0)
pen.goto(0,0)
o Ask: What if I wanted to put in a window on the house that didn’t touch the wall? Say: We’ll
come back to that in a moment.
o Ask the students to volunteer to share their journal response for drawing a happy face as you
follow their directions and draw on the board.
DO NOT lift the marker off the board unless they tell you to. In other words, go ahead
and draw lines that connect the mouth to the eyes, etc.
The main point of the happy face is that sometimes, you want to lift the marker off the
board in order to move without actually drawing the connecting lines.
o Introduce up() and down()
up()—lift pen off canvas (don’t draw)
down()—put pen down on canvas (will draw)
The pen starts down on the canvas.
o Have students use up() and down() to make a window on the simple house that does not touch
the walls. Go over an example with class. Example:
pen.up()
pen.goto(50,150)
pen.down()
pen.goto(75,150)
pen.goto(75,175)
pen.goto(50,175)
pen.goto(50,150)
o To draw circles, students have to use pen.circle(radius).
The current location will be a point on the circle with the center radius units to the left.
Show the students ballon.py.
Students use the Pen class to make a happy face.
o Have students follow directions in Happy Face Project to make their own happy face in Python.
See happy solution.py.
Resources:
Write code that will draw the happy face in the example picture. Have fun!
Square Head:
The lower left corner is at the point (0,0), and the length of each side of the square is 200 units. Therefore, the
other points are (200,0), (200,200) and (0,200).
Eyes:
The eyes each have a radius of 10 units and are centered at (60,150) and (140,150).
Mouth:
The upper left part of the mouth begins at (40,60). The other points are up to you. Hint, try a y value smaller
than 60 for the bottom left of the mouth. For the right side, try x values that are larger.
Nose:
The upper part of the nose begins at (100,100). The other key points are left for you to decide.
Extra credit:
Topic Description: In this lesson students are introduced to the concept of pair programming.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Summarize the two ways to draw using the pen class.
o Monitor students as they summarize the two ways to draw using the pen class.
o Have students share responses with elbow partner.
Review of drawing with Pen class
o Have a few students share their journal entries. Take their responses and sort them into two
columns. Try to reinforce some of the following:
Your task is to use the Pen class to draw your dream house or car. You could actually make a drawing with both.
Use your creativity to make your own original looking house or car. You may want to draw your house on paper
first to figure out the points. There is extra credit for the best assignment as voted on by your peers.
Examples:
Output
Do you use up() and down() to move the pen without drawing 10
anything?
Peer Grading 20
Extra Credit:
TOTAL: 100
Name_____________________Computer #____
VOTING
1ST Place________
2nd Place________
PEER GRADING
Instructional Day: 6
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What are some examples of when a program asks the user to input information?
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
Practice with dialogs
o Individually, students answer questions and follow directions to discover how to use Dialogs for
input and output. (See dialoguepractice.py)
o Encourage students to experiment and discover how to use the dialogs.
Review of answers
o Review answers with students (see dialoguepracticesolution.py).
o Emphasize:
You can just create a variable by typing its name and using the = to save a value into it.
Later on, when you refer to the variable, it still has the value that you saved in it.
Variables in IDLE are black.
Words inside the quotes (string literals) are printed exactly as seen. In IDLE, they appear
in green.
You can append a variable to a string with a + .
\n inside the quotes will create a newline at that point.
To put a space in between two variables, you need to place a + “ “ + in between them.
To place a space between a string literal and a variable, you can just put the space inside
the quotes.
Resources:
dialoguepractice.py
dialoguepracticesolution.py
Topic Description: In this lesson, students practice using dialogs in Python. They are introduced to software
development activities, models and design teams. Students work in teams using a development process to
design an order form program.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What are some of the things that you remember from using dialogs yesterday?
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
Review of how to use dialogs
o Guide students in sharing their journal responses. Make sure all of the features of dialogs are
reviewed.
Research on software development process, models, and design teams
o Divide students into teams of 3-5, depending on the size of the class.
o Assign 1 or more teams (depending on the total number of teams) to research each of the
following topics: software development activities, software development models, and software
design teams.
Presentations of research
o Have one team for each of the topics present their findings. If there is more than one team per
topic, have the other teams add anything that the presenting team left out.
Order Form
o Have students run order form.py as a prelude to writing an order form program.
Introduce Project
o Explain that they will be working in teams to develop an order form.
o Student teams should develop a project plan, assign team roles, and complete the project.
Order form project
o Circulate room and help students get organized as a team and create their design.
Gallery Walk
o Have students circulate the room trying everyone else’s order form program (everyone go one
computer clockwise, etc). Have them complete the Peer Grading form and vote for the best
project.
Resources:
orderform.py
orderformsolution.py
Order Form SampleRubric
Peer Grading
Name: _______________________
Does your order form ask the user for the parts of the address 10
separately?
Do you correctly input all the user’s information into the order? 10
Coding Style
Peer Grading 20
Extra Credit
TOTAL: 100
Instructional Day: 11
Topic Description: This lesson introduces students to numerical types and math in Python.
Objectives:
Student Activities:
Complete readnum.py.
Participate in number discussion.
Complete calculatetip.py.
Teaching/Learning Strategies:
readnum.py
o Have students follow directions in readnum.py answering questions on paper.
Number discussion
o Review answers to readnum.py (see readnumsolutions.py)
o Emphasize:
Integers are whole numbers only (including the negatives).
Float (short for Floating Point number) are decimals.
str() needs to be used to output integers and floats.
The whole reason for the different types is so we can do math on variables that hold
integers or floats.
Addition is +
Subtraction is –
Multiplication is *
Division is /
To save an answer, we need a variable followed by an equals.
o Example: average = 15 / 4.0
o This saves 3.75 into the variable average
calculatetip.py
o Circulate and help students complete calculatetip.py. (See calculatetipsolution.py.)
Resources:
readnum.py
readnumsolutions.py
calculatetip.py
calculatetipsolutions.py
Instructional Day: 12
Objectives:
Student Activities:
Complete gpa.py.
Participate in review of gpa.py.
Complete functions.py.
Participate in functions discussion.
Teaching/Learning Strategies:
gpa.py
o Give students gpa.py. Have them follow the directions in the file and answer the questions.
Review of gpa.py
o Review answers in gpasolution.py.
o In the answer for number 6, make some connections to where integer division is useful:
If you have $18 and pizzas cost exactly $5 each. If you want to know how many pizzas
you can buy, it would be 18/5 =3. You wouldn’t care about the remainder since they
won’t sell you fractions of a pizza.
functions.py
Functions discussion
o Review answers to functions.py. (See functionssolution.py.)
o Give a formal explanation of functions.
Functions are defined using the def statement followed by the function name, argument
list in parentheses, and a :
def functionname(arguments):
A function may have any number of arguments (also called parameters). It can even
have none.
Example of a function with no arguments:
Exploring Computer Science—Unit 6: Computing Applications Page 266
Version 3.0
Resources:
gpa.py
gpasolution.py
functions.py
functionssolutions.py
Instructional Day: 13
Topic Description: In this lesson students will write programs that include functions.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
exchange.py
exchangesolution.py
measurements.py
measurementssolutions.py
Instructional Day: 14
Objectives:
Use conditionals to complete Python versions of the Age and Rock, Paper, Scissors programs from Unit
4.
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What do you remember about ifs and elses from Scratch?
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
Conditional Discussion
o Ask students to share their journal entries and write down how conditionals work in Scratch.
Then use that to help introduce them in Python. In other words, In Scratch it looks like this
while in Python it looks like this.
o The basic structure of an if in python is:
if somecondition:
o The conditions could be comparisons like in Scratch
Equal to: ==
Less than: <
Greater than: >
Less than or equal to: <=
Greater than or equal to: >=
Not equal to: !=
o In Scratch, the body of the if is determined by placing the other puzzle pieces within the if. In
Python, the body is determined by indentation (just like the functions).
o In Scratch, the if–else is a separate puzzle piece. In Python, you can place an else after any if.
if somecondition:
body
else:
body
o You may still nest ifs inside of ifs or elses like in Scratch.
o Placing an if inside an else is so common, that python hasan elif (else if in other languages). This
is known as an if-else chain. It means that the program will execute only one of the choices. It
will also stop checking the other elifs once it finds a condition that is true.
if somecondition:
body
elif somecondition:
body
elif somecondition:
body
else:
body
age.py
o Individually, students follow the instructions in age.py. (See also agesolution.py.)
Rock, Paper, Scissors (rps.py)
o Individually, students follow the instructions in rps.py. (See also rpssolution.py.)
Resources:
age.py
agesolution.py
rps.py
rpssolution.py
Topic Description: This lesson requires students to apply their knowledge of conditionals and functions to
develop a Choose Your Own Adventure program in Python.
Objectives:
Use conditionals and functions to write a Choose Your Own Adventure Program.
Student Activities:
Teaching/Learning Strategies:
Presentation of assignment
o Show students chooseexample.py.
o Show students Decision Tree Sample
Trace through the tree as you run the example so that the students can see the
correlation.
o Show students Choose Your Own Adventure Sample Rubric.
o Give students choose.py as a starting place.
o Recommend writing the decision tree first, and then writing the code.
Choose Your Own Adventure Program
o Individually, students develop their adventures.
Presentations/ Peer Grading
o Students take turns presenting their adventures in front of the class. The student will read the
story as the program is executing.
First, allowing the class to make all the choices
Next, running the story again making his or her choices
Finally, presenting their decision tree
o The other students complete Peer Grading form making sure to score each student and vote for
the best at the end.
Resources:
Name________________________
A Choose Your Own Adventure Story is one where the reader is the main character and gets to make choices
that affect how the story goes. Depending on the choices that the reader makes, the story can have a good, ok
or bad ending.
You will have to come up with your own story and give the user choices. A good place to start is with a decision
tree. That is a diagram that shows all the possible choices and endings. It is a required part of the project.
Coding
Do you use functions to separate out the different parts of the story 10
Does your story handle errors (the person inputs the wrong number) 5
Decision Tree diagram mapping out all the choices and endings for 20
your story
Peer Grading 20
Extra Credit
Have the best project as voted on by peers Up to 10
TOTAL: 100
Instructional Day: 18
Topic Description: This lesson introduces students to the while loop in Python.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Journal Entry: What do you remember about the forever and repeat blocks from Scratch?
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
busy.py and count.py
o Individually, students follow directions and answer questions in busy.py and count.py. See
busysolution.py and countsolution.py.
o Students might have to close the Python Shell window to stop busy.py.
Iteration Discussion
o Have students start by sharing some of what they remember about the forever and repeat
blocks in Scratch.
o Review answers in busysolution.py and countsolution.py.
Have students share their answers to #8 in count.py..
o Some key points to share:
The structure of a while is just like an if. There is a condition section followed by a :.
The body of the while is also determined by indenting.
The while is like an if that keeps repeating as long as the condition is true.
The forever block in Scratch is like the while true in busy.py
The repeat _ block in Scratch can be made with a while and a counting variable like in
count.py.
The main use of the while loop is to repeat code without having to rewrite it. This is
especially useful for things like menu.py since you can keep taking orders without having
to know how many things the user is going to order before you start.
menu.py
o Individually, students follow directions in menu.py. See menusolution.py.
Resources:
busy.py
busysolution.py
count.py
countsolution.py
menu.py
menusolution.py
Instructional Day: 19
Topic Description: This lesson introduces students to the for loop in Python.
Objectives:
Use the for loop to make a sunburst and a bottles of root beer program.
Student Activities:
Teaching/Learning Strategies:
Journal Entry: Describe the way that the while loop was used in count.py.
o Monitor students responding in journal.
o Instruct students to share responses with their elbow partners.
for Loop Discussion
o In Python, the for loop has a few different uses. Here we are going to use it to iterate a variable
through various numbers.
o The for loop is like a more organized while loop.
o The basic structure of an if in python is:
for somevariable in range(start, end, increment):
o Just like the if and while, the body of the loop is defined by indenting.
o The loop will start at start, but will end before end.
o If you leave off the increment part, it will automatically increment the variable by 1.
o For loops can be made infinite. See fourth example below.
o Test the students with some examples:
for x in range (0, 10):
print x
output: 0 1 2 3 4 5 6 7 8 9
for x in range (0, 10, 2):
print x
output: 0 2 4 6 8
for x in range (5, 0, -1):
print x
output: 5 4 3 2 1
for x in range (0, 10, -1):
print x
infinite loop
sunburst.py
o Show the students the output of a completed sunburst.py so they know what they are trying to
accomplish. (See sunburstsolution.py.)
o Individually, students follow directions in sunburst.py.
rootbeer.py
o Individually, students follow directions in rootbeer.py. See rootbeersolution.py.
o Make sure to check that their program stops when the number of bottles gets to 0. A common
mistake is to have the song continue and end with –1 bottles of soda on the wall (To this, I
would ask the student to show me what –1 bottles of soda looks like).
Resources:
sunburst.py
sunburstsolution.py
rootbeer.py
rootbeersolution.py
Instructional Day: 20
Topic Description: In this lesson students are introduced to the concept of storing data in lists.
Objectives:
Create lists.
Write some simple list algorithms.
Student Activities:
Complete lists.py.
Participate in lists discussion.
Complete morelists.py.
Participate in review morelistssolution.py.
Teaching/Learning Strategies:
lists.py
o Distribute lists.py and have students complete the questions and instructions individually or in
groups of 2.
Lists Discussion
o Review listssolution.py
o Lists can be created with initial contents (i.e. nums = [6, 8, 86]) or empty (i.e. nums =
[]).
o Lists can be accessed like arrays in most languages using []’s and the index number.
o The index numbers start with 0 and go to one less than the length of the List.
o When the List is being used on the left side of an = it means save the value on the right into the
List. When the List is on the right side of the equals, it means lookup the value in the List.
Example:
nums = [6, 8, 4]
nums[2] = 86
#nums is now [6, 8, 86]
temp = nums[1]
#temp now equals 8
o Items in the list can be incremented.
Example:
nums = [6, 8, 4]
nums[2] += 1
#nums is now [6, 8, 5]
o To get the length of the List (how many items does it hold), use the len() function. For
example, len(numbers) returns the length of the List, numbers.
o There are two major ways to iterate through a List:
A for loop
Example:
for n in numbers:
print n
This traverses the List item by item in order.
During each iteration, n is the actual data in the List.
This is like using a for each loop in Java.
A for loop using range
Example:
for i in range(0, len(numbers, 1):
print numbers[i]
You have to use the *+’s to extract the data out of the List.
This gives you flexibility to pick the exact range you want to traverse as well as
the direction.
You may even skip items by changing the incrementing number in the for loop
(change 1 to 2 for every other item).
This is more like traditional use of the for loop with arrays in many languages.
o Much like ArrayLists in Java, the size of the list can change.
o There are many functions of lists that we are not covering in this unit (appending, slicing, etc.).
o You may want to give students additional examples to check for understanding.
morelists.py
o Students follow directions in morelists.py.
o If students are stuck, have them first choose the appropriate for loop to accomplish the required
task.
Review morelistssolution.py
o Have students contribute their answers.
Resources:
lists.py
listssolution.py
morelists.py
morelistssolution.py
Topic Description: This lesson requires students to use their knowledge of loops, conditionals, and lists to
develop an opinion poll program.
Objectives:
Student Activities:
Teaching/Learning Strategies:
Introduction of project
o The Opinion Poll will ask a question and allow the user to pick from a predefined set of answers.
When the user votes, the program keeps a tally and displays the results in a bargraph.
o Run sample poll.py for students so they can see the finished project.
o Show students Opinion Poll Sample Rubric.
o Students will need bargraph.py and poll.py in the same folder for the program to work. They
only need to edit poll.py. bargraph.py does all the graphing using the Pen class. They might
want to peruse it if interested.
o When you try to run poll.py, it will create a bargraph.pyc file. This is a compiled python file.
o If students run their program before they do #4, the program will run infinitely.
o Warning: Using three Lists is not the best way to design this. It would have been better to have
one List of some type of object that held the votes, label and color. Three Lists were used in this
case to get students to practice using them. Depending on your students, you may want to
comment on this as a kind of look ahead to object oriented programming.
Opinion Poll project
o Divide students into teams. These teams should be different from the previous team project.
Use this opportunity to point out the importance of diverse ideas and styles in a successful
project.
o Circulate room and help students get organized as a team and decide on the topic and questions
for their opinion polls.
Exploring Computer Science—Unit 6: Computing Applications Page 280
Version 3.0
o Explain to students that they should each ask friends and family to provide their answers to the
question posed; they will enter the responses once they have completed their program. (This
can be done for homework.)
o Ensure that all teams have data prior to beginning to start programming.
o Circulate room and help students.
o Step 5 in poll.py can be done as
votes[vote] += 1
or
if vote == 0:
votes[0] += 1
elif vote == 1:
votes[1] += 1
...
o If students are doing the extra credit and decide to edit the bargraph.py, they will need to run
the file before running poll.py in order to see the changes (This should create a new
bargraph.py.).
Gallery walk of opinion polls
o Facilitate students in circulating the room voting on answers to each other’s polls.
Resources:
The Opinion Poll will ask a question and allow the user to pick from a predefined set of answers. When the user
votes, the program keeps tally and display the results in a bar graph.
Does your Bar Graph have the correct labels for each column? 15
Does your poll allow the user to quit easily? 10
Does your Bar Graph use different colors? 10
Make the answer(s) with the most votes appear in a different color in the 10
bar graph. (For example, the answer with the most votes shows up in blue
and everything else shows up in yellow.)
Did you answer the question below? 10
Extra Credit
Have your graph display the percentages of each vote under the labels. (For up to 10
example, 14% blue, 86% silver, and 0% red)
TOTAL: 100
1. Write down three ways that you used Lists (our friends with the [ ]'s) to help you create your opinion
poll.
2. Why should your first choice that the user can vote on be 0?
Objectives:
Student Activities:
Teaching/Learning Strategies:
Resources:
Final Project
Final Project Sample Rubric
quake.py
quakesolution.py
seismic data files folder(UCLA CENS)
Peer Grading
Final Project
Where were you at 11:42 AM on July 29th, 2008? If you were in the Los Angeles area you felt a
magnitude 5.4 earthquake centered in Chino Hills. Your task is going to be to analyze and graph
some of the data collected from that earthquake.
The data was collected by UCLA’s CENS (Center for Embedded Networked Sensing). The sensors
were setup all the way in Peru! They are numbered on the map below.
The data files have the sensor names in them. For example, PE03.EHE.ascii is from sensor 3.
Each sensor has three files, E, N, and Z to record movement in each of the three dimensions.
You will only have to use one of the data files. The data files contain two columns of
information; time and the seismic signal. The time is relative. The data is seismic signal is
recorded 100 times a second.
Find the average of the seismic signals. This information can be used to calibrate the
sensors.
Find the minimum and maximum values.
Graph the data.
Presentation
State your name(s) and which data set you have 5
Run your program 5
Explain the graphs, how the sampling size changes the graph,
5
and the pros and cons of different sampling sizes.
Answer the question: How did you use Computer Science to
analyze the earthquake data. In other words, how did you
take a file with a bunch of numbers in it and produce a graph 10
that is easier for people to understand. Make sure to be
descriptive.
Extra Credit:
Have your program graph data from multiple files in the same
window. See the example graphs section of the project Up to 10
description.
TOTAL: 100