Welcome to AP Computer Science Principles




Welcome Back!

Congratulations on the completion of your Explore Performance Task!

Continuation of Unit 3: Programming and Algorithms

 

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 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:

Continuation of Unit 3: Programming and Algorithms

Engineering Notebook Daily Entries

Create Performance Task and College Board Exam Preparation

 

Wednesday Day G - 1-2-19 – Friday Day A 1–4-19

Lesson 6: Functions and Top-Down Design

 

Standards Alignment

CSTA K-12 Computer Science Standards

CL - Collaboration

CPP - Computing Practice & Programming

CT - Computational Thinking

Computer Science Principles

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:

Quick Review of the Create Performance Task Requirements:

AP CSP 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)

 

Vocabulary

Purpose

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.

 

What Does Efficiency Mean?

 

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.

 

Lesson 7: APIs and Using Functions with Parameters

 

Standards Alignment

CSTA K-12 Computer Science Standards

CL - Collaboration

AP - Algorithms & Programming

 

Computer Science Principles

2.2 - Multiple levels of abstraction are used to write programs or create other computational artifacts

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.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:

Vocabulary

Introduced Code

Purpose

An API is a reference guide which catalogs and explains the functionality of a programming language. If a programmer develops the practice of referencing an API, she can make full use of that functionality without undergoing the tedium of memorizing every detail of the language. In today’s lesson, students will need to read through the API in order to find and understand new commands for moving the turtle, selecting colors, and drawing different-sized dots and lines on the screen. Students should not necessarily understand every command in the drawing API in detail, but they should be familiar with referencing the API as a standard part of the process of writing a program. This will also be the first time students are given access to drawing functions that take parameters (e.g., moveForward(40) vs. moveForward()).

So far in this unit we have been exploring programming by drawing turtle art with only a few commands. It will probably not surprise you to learn that there are many more commands included in most programming languages, including the version of JavaScript included in App Lab. In fact, most programming languages include hundreds if not thousands of commands.

Thinking Prompt:

"Do you think programmers memorize all of the commands in a programming language? If not, how is anyone ever able to use an entire programming language?"

 

Guided Instruction:

Programmers weren’t born knowing how a programming language works, and, like you and me, they don’t have perfect memories. Instead they rely on written documentation to help them learn new features of a language and recall how it works. Today we are going to be exploring how useful documentation can be when learning a programming language or just writing software.

At end of the day we hope to be much more talented turtle artists, but we’re also going to be learning another important skill: reading the documentation of a programming language.

Before you ask me or a classmate for help today, I want you to read through the documentation, try the examples, talk with friends, and then talk to me. It may be slower going today, but in the long term it will make you much more confident programmers.

 

1)   Log into code.org and go to Unit 3: Lesson 7.

2)   Complete all of the programming challenges. Make sure to read all documentation for the given API before attempting to use. When you have successfully completed a challenge take a screen shot using the Snipping tool, and add to your Engineering Notebook.

3)   Complete the practice written response in order to begin preparing for the Create Performance Task

4)   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 7 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.

 

Lesson 8: Creating Functions with Parameters

 

Standards Alignment

CSTA K-12 Computer Science Standards

CL - Collaboration

Computer Science Principles

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:

Vocabulary

Introduced Code

Purpose

Writing functions with parameters is a simple idea, but it traditionally has some devilish details for new learners of programming. The basic idea is that you often want to write a function that takes some input and performs some action based on that input. For example, the turtle function moveForward is much more useful when you can specify how much to move forward (e.g., moveForward(100)), rather than just a fixed amount every time. It’s very common to encounter situations where as a programmer you realize that you basically need a duplicate of some code you’ve already got, but you just want to change some numbers. That’s a good time to write a function with a parameter; the parameter just acts as a placeholder for some value that you plug in at the time you call the function. Just like it’s considered good practice to give descriptive names to your functions, the same is true for the names of the parameters themselves. For example: drawSquare(sideLength) is better than drawSquare(stuff).

In the previous lesson, we learned to use a lot of new turtle commands. Some of these commands accept a parameter, or even many parameters, which allow us to pass values to the function. This allowed us to make much more interesting images by specifying precisely how far the turtle should move or turn, and introduced the ability to choose specific pen sizes and colors.

Parameters are a powerful programming construct.

This is clearly a useful construct to use in our programs, and in today’s lesson we’re going to learn how to create functions with parameters for ourselves.

Functions With Parameters

Guided Instruction:

 

1)   Log into code.org and go to Unit 3: Lesson 8.

2)   Complete all of the programming challenges. Make sure to read all documentation for the given API before attempting to use. When you have successfully completed a challenge take a screen shot using the Snipping tool, and add to your Engineering Notebook.

3)   Complete the practice written response in order to begin preparing for the Create Performance Task

4)   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 8 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.

 

 

Thanks for a great week!

Mr. PC 

 

 

Preparation of your AP CSP Digital Portfolios: Click on the link below.

Student Digital Portfolio Guide – Save a copy of the Student Digital Portfolio Guide to your Google Drive

Ř  Please review the Student Digital Portfolio Guide and follow the directions for setting up your digital portfolio for your AP CSP course. Thanks.

 

 

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.ted.com/talks

 

www.digg.com

 

http://www.teachersdomain.org

 

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

 

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

 

 

Vocabulary

Unit 3 - Intro to Programming

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

Big Questions

Enduring Understandings

 

Unit 3 Vocabulary

 

Vocabulary

Unit 4 - Big Data and Privacy

In this unit students explore the technical, legal, and ethical questions that arise from computers enabling the collection and analysis of enormous amounts of data. In the first half of the unit, students learn about both the technological innovations enabled by data and the privacy and security concerns that arise from collecting it. In the second half of the unit, students learn how cryptography can be used to help protect private information in the digital age.

Chapter 1: Big Data and Privacy

Big Questions

 

Enduring Understandings

 

 

Unit 4 Vocabulary

 

Vocabulary

 

AP CSP Syllabus

AP CSP Week 1 Agenda  

AP CSP Week 2 Agenda

AP CSP Week 3 Agenda

AP CSP Week 4 Agenda  

AP CSP Week 5 Agenda

AP CSP Week 6 Agenda  

AP CSP Week 7 Agenda

AP CSP Week 8 Agenda  

AP CSP Week 9 Agenda

AP CSP Week 10 Agenda  

AP CSP Week 11 Agenda

AP CSP Week 12 Agenda  

AP CSP Week 13 Agenda

AP CSP Week 14 Agenda  

AP CSP Week 15 Agenda

AP CSP Week 16 Agenda

AP CSP Week 17 Agenda