Welcome to
AP Computer Science Principles
This week we are going to be working on the following:
Complete
Unit 2: Digital Information
Introduction
to Unit 3: Introduction to Programming
To Think; To Develop Problem-Solving Skills; To Discover; and To
Create;
Learning
to Compute and Computing to Learn
Classroom
Protocol:
This is where you will come every day to find out what we are
going to do in class for that day. Every day you are to come to your Quia class
web page upon arriving to class, go to your class web page, and follow the
directions for today.
Homework
Policy:
All assignments will be due on the deadline date given. It is the
responsibility for all students to complete their assignments on time. Any
assignments received late will not be accepted and a grade will not be given for
that assignment.
Accessing
your Class Weekly Agenda:
Each
week’s agenda and assignments will be updated and posted on your Quia class
web page on a weekly basis. Previous
weeks Assignments/Agendas will be provided with a link at the end of the current
week’s Class Web Page in case you need to revisit due to an absence, or
you’re required to make up, or catch up on your course assignments.
Homework Assignment: Daily homework assignments may be found at the end of each
day’s agenda. Daily Journal Entries as seen in Daily
Ticket to Leave are to be entered as part of your daily homework. All
students will receive a homework grade on a weekly basis, and your journal will
receive a project grade each mid-term and final semester.
IMPORTANT
DATES: Saturday November 17th @ Bay Path HS
Saturday February 2nd @ Auburn HS
Saturday April 6th Mock Exam @ your school
Explore Performance Task: 8
hours
To
Be Completed by December 22, 2017
This
Week’s Agenda:
In Unit 3, students explore the fundamental
topics of programming, algorithms, and abstraction as they learn to
programmatically draw pictures in App Lab. An unplugged sequence at the
beginning of the unit highlights the need for programming languages as well as
the creativity involved in designing algorithms. Students then begin working in
App Lab where they use simple commands to draw shapes and images using a virtual
“turtle.” As they’re introduced to more complex commands and programming
constructs, students learn to break down programming problems into manageable
chunks. The unit ends with a collaborative project to design a digital scene.
Chapter
1: Intro to Programming
Unit
3 Vocabulary
Explore - AP
Performance Task Prep
·
This unit contains lessons to help students with
preparation and execution of the AP® Performance Tasks: Create and Explore
·
The lessons in this unit are meant to be taken
piecemeal rather than as a typical unit sequence. Instead of a sequence of
connected lessons, these represent a more modular breakdown of the things you
need to do to:
1) Understand the AP Performance Tasks
2) Make a plan for completing the tasks in the
time allotted and
3) Actually doing the tasks and submitting
Monday
Day E - 10-22-18 – Friday Day A – 10-26-2018
Monday
Day E - 10-22-18
CD -
Computers & Communication Devices
CL -
Collaboration
CT -
Computational Thinking
3.3 -
There are trade offs when representing information as digital data.
3.3.1 -
Analyze how data representation, storage, security, and transmission of data
involve computational manipulation of information. [P4]
Objectives
Activator:
Open
up your Engineering Journal and review what you entered last class. Review the
Standards, Objectives, above, for today’s lesson. Click on https://studio.code.org/
and log in. Locate the Unit 2: and click ‘View course’.
Direct Instruction:
Discuss
Results of Findings:
We’ve been looking at image file formats. And we’ve also seen
text compression. Both of those attempted to render perfectly every piece of
information.
Both the image file format and the text compression scheme we
used were lossless. Lossy compression schemes usually take advantage of the
fact that a human is supposed to interpret the data at the other end, and human
brains are good at filling the gaps when information is missing.
Today you and a partner will do some rapid research and reporting
on some of the most common file formats. Use the web as your research tool.
Guided Instruction:
Wrap-Up
***
Make sure to complete the assessment exercise at the end of the lesson, take a
screen shot and add to your engineering notebook. ***
Assessment
for/of learning: Completion of today’s class assignment and completion of the
Assessment exercise at the end of this lesson. Make sure to take a screen shot
and add to your engineering notebook.
Summarizer:
Mr.
PC will review each day what each student accomplished and the focus of
tomorrow.
Ticket
to Leave:
In
order to prepare you for your two AP CSP college-board performance tasks we need
to get use to reflecting on our daily work and experiences. This is a skill that
will prove to be useful when you go on to college, enter the workforce, and even
in every aspect of your everyday life. Every
day at the end of class you should save your work, open up your journal, put
down today’s date, and provide the following information.
1. Provide at least on new thing that you learned today – Refer to today’s Objectives
2. What did you accomplish today?
3. Indicate any problems or obstacles you experienced
4. How did you solve the problems or obstacles that you experienced?
Feel
free to provide screen shots of your daily work in order to illustrate your
day’s activities. Windows provides a Snipping
Tool within its provided Accessories that may be used for this purpose.
Homework:
1)
Complete
your ticket to leave journal entry.
2)
Make
sure you begin to search for a computing innovation that you will use for your
college board Explore Performance task that allows you to meet and be able to
submit all requirements of the task. Make
sure data is computed by your computing innovation, that you can identify
beneficial and potential harmful effects of the innovation in society, culture,
or the economy, and data security and/or storage concerns can be identified.
Tuesday
Day F - 10-23-18
CT -
Computational Thinking
CL -
Collaboration
CPP -
Computing Practice & Programming
CT -
Computational Thinking
4.1 -
Algorithms are precise sequences of instructions for processes that can be
executed by a computer and are implemented using programming languages.
4.1.2 -
Express an algorithm in a language. [P5]
5.2 -
People write programs to execute algorithms.
5.2.1 -
Explain how programs implement algorithms. [P3]
Objectives
Students will be able to:
Activator:
Open
up your Engineering Journal and review what you entered last class. Review the
Standards, Objectives, above, for today’s lesson. Click on https://studio.code.org/
and log in. Locate the Unit 3: The ‘Intro to Programming’ tile and click
‘View course’.
Direct Instruction and
Guided Instruction:
When you formalize language or commands that describe actions you
are making a kind of code. This is also necessary for computers, which are
simply machines that can perform a number of different tasks. In order to write
instructions for them to do something you must agree on the “code” and each
action must have a precise, unambiguous meaning. This is a programming
language. Novices might think that a programming language looks like an archaic,
impenetrable mass of abstract word groupings, but all programming languages are
derived from the human need to concisely give instructions to a
machine.
You Should Learn to Program: Christian Genco at TEDxSMU -
Video
Activity
Preparation:
Lesson
1: Open the LEGO Instructions - Activity Guide
·
Students can record their instructions on a plain sheet of paper,
poster paper, piece of construction paper, etc.
·
Students are encouraged to work in groups of 2
·
Each group should be given 5-6 LEGO® blocks.
Below are the steps students are asked to complete in the
activity guide.
Create a simple LEGO arrangement (and record it)
Groups should create an arrangement of their blocks in accordance
with the following rules:
Write
instructions for building your arrangement
On a separate sheet of paper, each group should write out a set
of instructions that another group could use to create the same arrangement. A
couple of guidelines are below:
Trade
instructions and attempt to follow them
Groups should disassemble their arrangements, place their
instructions next to the pieces, and hide their image or drawing of the
arrangement somewhere it cannot be seen. Have groups move around the room to
other groups’ instructions and try to follow them to build the desired
arrangements. Have the original group check whether the solutions are correct or
let groups check their solutions themselves by looking at the recorded image of
the arrangement afterwards. Allow groups an opportunity to try a few of their
classmates’ instructions before reconvening.
Answer
the following within your engineering notebooks:
·
"Were you always able to create the intended arrangement?
Were your instructions as clear as you thought?"
·
"Why do you think we are running into these
miscommunications? Is it really the fault of your classmates or is something
else going on?"
Final
Remarks
Today we saw how human language may not always be precise enough
to express algorithms, even for something as simple as building a small LEGO
arrangement. The improvements you have suggested actually create a new kind of
language for expressing algorithms, which we as computer scientists call a
programming language. In the coming unit we are going to learn a lot more about
how we can use programming languages to express our ideas as algorithms, build
new things, and solve problems.
Summarizer:
Mr. PC will review each day what each student accomplished and the focus of tomorrow.
Assessment for/of
learning:
Students are to be assessed on the completion of this Lesson 1
activity.
Ticket
to Leave:
In
order to prepare you for your two AP CSP college-board performance tasks we need
to get use to reflecting on our daily work and experiences. This is a skill that
will prove to be useful when you go on to college, enter the workforce, and even
in every aspect of your everyday life. Every
day at the end of class you should save your work, open up your journal, put
down today’s date, and provide the following information.
1. Provide at least on new thing that you learned today – Refer to today’s Objectives
2. What did you accomplish today?
3. Indicate any problems or obstacles you experienced
4. How did you solve the problems or obstacles that you experienced?
Feel
free to provide screen shots of your daily work in order to illustrate your
day’s activities. Windows provides a Snipping
Tool within its provided Accessories that may be used for this purpose.
Homework:
1)
Complete
your ticket to leave journal entry.
2)
Make
sure you begin to search for a computing innovation that you will use for your
college board Explore Performance task that allows you to meet and be able to
submit all requirements of the task. Make
sure data is computed by your computing innovation, that you can identify
beneficial and potential harmful effects of the innovation in society, culture,
or the economy, and data security and/or storage concerns can be identified.
Wednesday
Day G - 10-24-18
Lesson
4: Using Simple Commands
CL -
Collaboration
CPP -
Computing Practice & Programming
CT -
Computational Thinking
5.1 -
Programs can be developed for creative expression, to satisfy personal
curiosity, to create new knowledge, or to solve problems (to help people,
organizations, or society).
5.1.2 -
Develop a correct program to solve problems. [P2]
5.1.3 -
Collaborate to develop a program. [P6]
5.2 -
People write programs to execute algorithms.
5.2.1 -
Explain how programs implement algorithms. [P3]
5.4 -
Programs are developed, maintained, and used by people for different purposes.
5.4.1 -
Evaluate the correctness of a program. [P4]
Objectives
Students will be able to:
Activator:
Open
up your Engineering Journal and review what you entered last class. Review the
Standards, Objectives, above, for today’s lesson. Click on https://studio.code.org/
and log in. Locate the Unit 3: The ‘Intro to Programming’ tile and click
‘View course’.
Direct Instruction:
On
to programming! How we will learn.
In this course, and in
computer science in general, all of the complexity we see on a computer is
actually just the composition (the combining and recombining) of a few simple
elements.
We
start this journey today.
Guided
Instruction:
App Lab is the programming environment we’re going to use for
the rest of the course to write programs and apps. App Lab is embedded into Code
Studio for many lessons and usually presents you with a series of problems to
solve to learn the basic concepts. As you get better and better at coding, App
Lab will show you more and more things you can do. But to start, we’re going
to keep things simple and build up the complexity.
1)
Log
into code.org and go to Unit 3: Lesson 4.
2)
Complete
all of the programming challenges. When you have successfully completed a
challenge take a screen shot using the Snipping tool, and add to your
Engineering Notebook.
Summarizer:
Mr. PC will review each day what each student accomplished and the focus of tomorrow.
Assessment for/of
learning:
Students
are to be assessed on the completion of Lesson 4 challenges.
Ticket
to Leave:
In
order to prepare you for your two AP CSP college-board performance tasks we need
to get use to reflecting on our daily work and experiences. This is a skill that
will prove to be useful when you go on to college, enter the workforce, and even
in every aspect of your everyday life. Every
day at the end of class you should save your work, open up your journal, put
down today’s date, and provide the following information.
1. Provide at least on new thing that you learned today – Refer to today’s Objectives
2. What did you accomplish today?
3. Indicate any problems or obstacles you experienced
4. How did you solve the problems or obstacles that you experienced?
Feel
free to provide screen shots of your daily work in order to illustrate your
day’s activities. Windows provides a Snipping
Tool within its provided Accessories that may be used for this purpose.
Homework:
1)
Complete
your ticket to leave journal entry.
2)
Make
sure you begin to search for a computing innovation that you will use for your
college board Explore Performance task that allows you to meet and be able to
submit all requirements of the task. Make
sure data is computed by your computing innovation, that you can identify
beneficial and potential harmful effects of the innovation in society, culture,
or the economy, and data security and/or storage concerns can be identified.
Thursday
Day H - 10-25-18
Lesson
5: Creating Functions
CL -
Collaboration
CPP -
Computing Practice & Programming
CT -
Computational Thinking
2.2 -
Multiple levels of abstraction are used to write programs or create other
computational artifacts
2.2.1 -
Develop an abstraction when writing a program or creating other computational
artifacts. [P2]
2.2.2 -
Use multiple levels of abstraction to write programs. [P3]
5.3 -
Programming is facilitated by appropriate abstractions.
5.3.1 -
Use abstraction to manage complexity in programs. [P3]
5.4 -
Programs are developed, maintained, and used by people for different purposes.
5.4.1 -
Evaluate the correctness of a program. [P4]
Objectives
Students will be able to:
Activator:
Open
up your Engineering Journal and review what you entered last class. Review the
Standards, Objectives, above, for today’s lesson. Click on https://studio.code.org/
and log in. Locate the Unit 3: The ‘Intro to Programming’ tile and click
‘View course’.
Direct Instruction:
Quick Review of the
Create Performance Task Requirements:
Assessment
Overview and Performance Task Directions for Students.
We will review pages 9-11 which introduces the Create PT Components (Digital
copy linked to from student resource section for this lesson on code studio)
Programming languages must necessarily define the meaning of a
set of commands which are generally useful and applicable. In order to extend
their functionality, nearly all programming languages provide a means for
defining and calling new commands which programmers design to fit the needs of
the problems they are trying to solve. Defining functions is an example of how
computer scientists use abstraction to solve problems. A programmer will design
a solution to a small, well-defined portion of the task and then give a name to
the associated code. Whenever that problem arises again, the programmer can
invoke the new function by name, without having to solve the problem again. This
ability to refer to complex functionality by simple, meaningful names allows for
programs to be written in more intuitive ways that reflect the relationships
between different blocks of code.
Programming languages will always have some commands that are
already defined, but there will be many instances when the exact command we want
isn’t available. Today we’re going to start exploring a powerful feature of
most programming languages that will allow us to overcome this issue and create
commands of our own.
Intro
to Functions Tutorial - Video
Guided
Instruction:
1)
Log
into code.org and go to Unit 3: Lesson 5.
2)
Complete
all of the programming challenges. When you have successfully completed a
challenge take a screen shot using the Snipping tool, and add to your
Engineering Notebook.
Summarizer:
Mr. PC will review each day what each student accomplished and the focus of tomorrow.
Assessment for/of
learning:
Students are to be assessed on the completion of Lesson 5
challenges.
Ticket
to Leave:
In
order to prepare you for your two AP CSP college-board performance tasks we need
to get use to reflecting on our daily work and experiences. This is a skill that
will prove to be useful when you go on to college, enter the workforce, and even
in every aspect of your everyday life. Every
day at the end of class you should save your work, open up your journal, put
down today’s date, and provide the following information.
1. Provide at least on new thing that you learned today – Refer to today’s Objectives
2. What did you accomplish today?
3. Indicate any problems or obstacles you experienced
4. How did you solve the problems or obstacles that you experienced?
Feel
free to provide screen shots of your daily work in order to illustrate your
day’s activities. Windows provides a Snipping
Tool within its provided Accessories that may be used for this purpose.
Homework:
1)
Complete
your ticket to leave journal entry.
2)
Make
sure you begin to search for a computing innovation that you will use for your
college board Explore Performance task that allows you to meet and be able to
submit all requirements of the task. Make
sure data is computed by your computing innovation, that you can identify
beneficial and potential harmful effects of the innovation in society, culture,
or the economy, and data security and/or storage concerns can be identified.
Friday
Day A - 10-26-18
Lesson
6: Functions and Top-Down Design
CL -
Collaboration
CPP -
Computing Practice & Programming
CT -
Computational Thinking
2.2 -
Multiple levels of abstraction are used to write programs or create other
computational artifacts
2.2.1 -
Develop an abstraction when writing a program or creating other computational
artifacts. [P2]
2.2.2 -
Use multiple levels of abstraction to write programs. [P3]
2.2.3 -
Identify multiple levels of abstractions that are used when writing programs.
[P3]
5.1 -
Programs can be developed for creative expression, to satisfy personal
curiosity, to create new knowledge, or to solve problems (to help people,
organizations, or society).
5.1.2 -
Develop a correct program to solve problems. [P2]
5.1.3 -
Collaborate to develop a program. [P6]
5.3 -
Programming is facilitated by appropriate abstractions.
5.3.1 -
Use abstraction to manage complexity in programs. [P3]
Objectives
Students will be able to:
Activator: Open up your Engineering Journal and review what you entered last
class. Review the Standards, Objectives, above, for today’s lesson. Click on https://studio.code.org/
and log in. Locate the Unit 3: The ‘Intro to Programming’ tile and click
‘View course’.
Direct Instruction:
A technique for deciding what functions you should write is to
look at the problem with a "top-down design" perspective. The process
of creating software begins long before the first lines of code are written.
Breaking a problem down into layers of sub-tasks, and writing well-named
functions that solve those tasks is a creative act of abstraction. It also leads
to good code that is more efficient, easier to read, and therefore easier to
debug when problems arise.
In professional settings, teams of people first identify the
problems and sub-problems the particular software will be addressing and how it
will be used. This approach to designing software is critical when facing
large-scale programming tasks. Once the problem is well understood, it can be
broken into parts that teams or individual programmers can begin to work on
solving at the same time. Full software systems take advantage of the power of
abstraction; each programmer in a team can write code, assuming the sub-problems
will be solved and written by other teammates.
Recall:
In the previous lesson we wrote a program that used layers of
functions (functions that called other functions) to get the turtle to draw a
diamond-shaped figure.
Prompt:
"Imagine that you have two programs that drew the
diamond-shaped figure. One program uses functions as we did in the previous
lesson. The other doesn’t use functions; it’s just a long sequence of the
turtle’s primitive commands. Which program is more efficient? Make an argument
for why one is more efficient than the other."
Discuss:
Have students briefly share their arguments for one program over
the other:
Transition: Efficiency
is an interesting thing to think about, but functions also introduce the ability
to leverage the power of abstraction: when we write a function, it solves a
small piece of a bigger problem. Having the small problem solved allows us to
ignore its details and focus on bigger problems or tasks.
Today we’ll get more practice with thinking about how to break
problems down into useful functions.
Review
this Explanation of Top-Down Design
Guided
Instruction:
1)
Log
into code.org and go to Unit 3: Lesson 6.
2)
Open
the Top-Down
Design - Worksheet
a.
Students
should work in pairs.
b.
Read
the first page of the worksheet that describes the top-down problem solving
process.
c.
Design
a solution to the problem on the second page by writing down the functions they
would write to solve the problem.
d.
After
a pair has come up with a solution on paper, compare with another group to see
similarities and differences.
3)
Go
into Code Studio for Lesson 6
4)
Complete
all of the programming challenges. When you have successfully completed a
challenge take a screen shot using the Snipping tool, and add to your
Engineering Notebook.
5)
Complete
the AP Practice Response exercise after you have completed your programming
challenges.
6)
Mr.
PC will come around to make sure everyone understands the concepts of
abstraction and Top Down Design. Remember! For both programming challenges 2 and
3 you should be able to call one function which completes the programming tasks.
There should be no stand alone commands. Very
important prior to moving on and preparing for our Create Performance Task!
7)
Complete
the lesson assessment
Summarizer:
Mr. PC will review each day what each student accomplished and the focus of tomorrow.
Assessment for/of
learning:
Students are to be assessed on the completion of Lesson 6
challenges and assessment exercises. All information should be completed online
within code.org. Thanks
Ticket
to Leave:
In
order to prepare you for your two AP CSP college-board performance tasks we need
to get use to reflecting on our daily work and experiences. This is a skill that
will prove to be useful when you go on to college, enter the workforce, and even
in every aspect of your everyday life. Every
day at the end of class you should save your work, open up your journal, put
down today’s date, and provide the following information.
1. Provide at least on new thing that you learned today – Refer to today’s Objectives
2. What did you accomplish today?
3. Indicate any problems or obstacles you experienced
4. How did you solve the problems or obstacles that you experienced?
Feel
free to provide screen shots of your daily work in order to illustrate your
day’s activities. Windows provides a Snipping
Tool within its provided Accessories that may be used for this purpose.
Homework:
1)
Complete
your ticket to leave journal entry.
2)
Make
sure you begin to search for a computing innovation that you will use for your
college board Explore Performance task that allows you to meet and be able to
submit all requirements of the task. Make
sure data is computed by your computing innovation, that you can identify
beneficial and potential harmful effects of the innovation in society, culture,
or the economy, and data security and/or storage concerns can be identified.
Thanks for a great
week!
Mr. PC
Online Explore Performance Task Resources:
AP CSP Performance
Task Directions for Students - College Board Student Handout
Explore
Performance Task Rubric
More Resources for
finding computing innovations:
http://www.pbslearningmedia.org/
Tools
for building computing artifacts:
https://sites.google.com/view/cool-tools-for-schools/home
To Do: Create Digital
Portfolios for Performance Tasks Submissions. Our goal is to complete our
Explore Performance Task before the end of 2018.
UNIT 1 Overview: The Internet:
This
unit explores the technical challenges and questions that arise from the need to
represent digital information in computers and transfer it between people and
computational devices. The unit then explores the structure and design of the
internet and the implications of those design decisions.
In
this unit students learn how computers represent all kinds of information and
how the Internet allows that information to be shared with millions of people.
The
first chapter explores the challenges and questions that arise when representing
information in a computer or sending it from one computer to another. It begins
by investigating why on-off signals, also known as binary signals, are used to
represent information in a computer. It then introduces the way common
information types like text and numbers are represented using these binary
signals. Finally, it illustrates the importance of establishing shared
communication rules, or protocols, for successfully sending and receiving
information.
In
the second chapter, students learn how the design of the internet allows
information to be shared across billions of people and devices. Making frequent
use of the Internet Simulator, they explore the problems the original designers
of the internet had to solve and then students “invent” solutions. To
conclude the unit, students research a modern social dilemma driven by the
ubiquity of internet and the way it works.
Chapter 1: Representing and Transmitting Information
Big Questions
Enduring Understandings
·
2.1 A variety of abstractions built upon
binary sequences can be used to represent all digital data.
·
3.3 There are trade-offs when representing
information as digital data.
·
6.2 Characteristics of the Internet
influence the systems built on it.
7.2 Computing enables innovation in nearly
every field.
Unit
1 Vocabulary
Unit 1: Chapter 2: Inventing the Internet
Big Questions
Enduring Understandings
·
2.1 A variety of abstractions built upon
binary sequences can be used to represent all digital data.
·
6.1 The Internet is a network of
autonomous systems.
·
6.2 Characteristics of the Internet
influence the systems built on it.
·
7.3 Computing has a global affect -- both
beneficial and harmful -- on people and society.
Introduction to UNIT 2: Digital
Information:
This
unit further explores the ways that digital information is encoded, represented
and manipulated. Being able to digitally manipulate data, visualize it, and
identify patterns, trends and possible meanings are important practical skills
that computer scientists do every day. Understanding where data comes from,
having intuitions about what could be learned or extracted from it, and being
able to use computational tools to manipulate data and communicate about it are
the primary skills addressed in the unit.
This
unit explores the way large and complex pieces of digital information are stored
in computers and the associated challenges. Through a mix of online research and
interactive widgets, students learn about foundational topics like compression,
image representation, and the advantages and disadvantages of different file
formats. To conclude the unit, students research the history and characteristics
of a real-world file format.
Chapter
1: Digital Information
Big Questions
Enduring Understandings