Welcome to AP Computer Science Principles




Completion of Unit 3: Programming and Algorithms

And

Introduction to Unit 5 – Building Apps

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

Create Performance Task:  12 hours - Beginning March 25, 2019 (12 hours)

To Be Completed by April 19, 2019

AP Computer Science Principles Exam Day - FRI, MAY 10, 2019 (Noon – 2 hours)

 

 

 

This Week’s Agenda:

Completion of Unit 3: Programming and Algorithms

Unit 3 Assessment

Introduction to Unit 5 – Building Apps

 

Monday Day G - 1-14-19 – Thursday Day B 1–17-19

 

UNIT 5 Overview: Building Apps:

This unit continues to develop students’ ability to program in the JavaScript language using App Lab. Students create a series of simple applications (apps) that live on the web, each highlighting a core concept of programming. In the first chapter students learn to design apps that respond to user interaction like clicks and key presses. Concepts introduced in this chapter include variables, user input, text strings, Boolean expressions, and if-statements.

In the second chapter of Unit 5 students learn to program with larger and more complex data structures. Early in the chapter students return to the study of loops, this time using them to simulate real world events. Next they learn to program with lists of information in order to develop apps that store and process large amounts of data. They will also learn to compare the efficiency of different list-processing algorithms. The final lessons of the chapter introduce advanced programming topics including return values and objects. The chapter concludes with a self-directed project in which students apply all the programming skills and concepts they’ve learned in the course.

 

Chapter 1: Event-Driven Programming

 

Big Questions

 

 

 

Enduring Understandings

 

 

Chapter 2: Programming with Data Structures

 

Big Questions

 

Enduring Understandings

 

 

Unit 5 Vocabulary

 

Vocabulary

 

Monday Day G - 1-14-19 and Tuesday Day H – 1-15-19

 

Lesson 10: Practice PT - Design a Digital Scene

 

 

Standards Alignment

CSTA K-12 Computer Science Standards

CL - Collaboration

CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.

CPP - Computing Practice & Programming

CPP.L2:5 - Implement problem solutions using a programming language, including: looping behavior, conditional statements, logic, expressions, variables and functions.

CPP.L3A:3 - Use various debugging and testing methods to ensure program correctness (e.g., test cases, unit testing, white box, black box, integration testing)

CPP.L3A:4 - Apply analysis, design, and implementation techniques to solve problems (e.g., use one or more software lifecycle models).

CT - Computational Thinking

CT.L2:6 - Describe and analyze a sequence of instructions being followed (e.g., describe a character's behavior in a video game as driven by rules and algorithms).

CT.L3A:1 - Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts.

CT.L3A:3 - Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.

CT.L3B:4 - Evaluate algorithms by their efficiency, correctness, and clarity

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]

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.1 - Develop an algorithm for implementation in a program. [P2]

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]

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:

Abstraction is an important tool in programming, not only because it allows individual programmers to break down complex problems, but because it enables effective forms of collaboration. Once a problem has been broken down into its component parts, teams of programmers (sometimes dozens or more) can attack individual components of that problem in parallel. This style of programming requires clear communication and a shared understanding of the high-level requirements of the software. If implemented carefully, however, it can be an effective strategy for rapidly producing large and complex pieces of software.

Guided Instruction:

1.   Log into code studio, Go to Unit 3 and Lesson 10 and proceed through today’s exercises.

 

Sharing your code:

After students create a program which contains their own functions they’ll need to get the code to their classmates and vice versa so that they can copy their partners’ functions into their own projects.

Students will need some way of recombining their code. Possible solutions are:

These are the bullet points - a more complete How-To guide viewable for students is in code studio.

Share Code

Retrieve code from Shared Project

 

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 today’s lesson in the introduction to Programming, Unit 3, Lesson 10.

Ticket to Leave:

In order to prepare you for your next AP CSP college-board performance task 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:

 

Ø  In order to begin preparation for the next task to be submitted to the college-board, Please click on the following link and review the requirements for the Create Performance Task. Feel free to review the sample task submissions and the comments on how the performance task received its score.

Create Performance Task Rubric

Ø  Students should begin their research and definition of what their Create Performance Task will be and how it will meet the criteria setforth within the CP Task Rubric above.

Ø  Complete your ticket to leave journal entry.

Wednesday Day A – 1-16-19

 

Unit 3 Assessment

 

Please take the Unit 3 Assessment:  Then:

 

Lesson 1: Introduction to Event-Driven Programming

 

IMPORTANT NOTE: Make sure to take a screen shot of every exercise you complete which includes the code you wrote and result of running your program, and add to your engineering notebook on a daily basis. Thanks.

 

Standards Alignment

CSTA K-12 Computer Science Standards

CL – Collaboration

CPP - Computing Practice & Programming

CT - Computational Thinking

Computer Science Principles

 

1.1 - Creative development can be an essential process for creating computational artifacts.

1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.

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.4 - Programs are developed, maintained, and used by people for different purposes.

 

 

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 5: The ‘Building Apps’ tile, and click ‘View course’.

Direct Instruction:

Vocabulary

Lesson 1: Introduction to Event-Driven Programming

Introduced Code

 

Most modern applications are interactive, responding to when users click buttons, type in a textbox, tilt the screen, swipe between screens, etc. In every instance, the user’s action is generating some kind of event and the program responds by running an associated block of code. Programming a modern application is therefore typically an exercise in creating a user interface and then defining what will happen when the user interacts with that interface.

The “event-driven” mindset of programming can take a little getting used to. Often when learning, you write sequential programs that run from start (usually the first line of the program) to the end, or to some point when the program terminates. In an event-driven program your code must always be at the ready to respond to user events, like clicking a button, that may happen at any time, or not at all. More complex event-driven programs require interplay and coordination between so-called “event handlers” - which are functions the programmer writes, but are triggered by the system in response to certain events.

This lesson is a first step toward getting into this mindset. Certain high-level programming languages and environments are designed to make certain tasks easier for a programmer. Being able to design the user interface for an app using a drag-and-drop editor makes designing a stylish product much faster and easier. App Lab has a way to make the User Interface elements quickly and easily, leaving your brain more free to think about how to write the event handlers.

Intro to Event Driven Apps

We may not understand all the technical details yet, but it seems clear that most applications we use respond to events of some kind.

Whether we’re clicking a button or pressing a key, the computer is sensing events that we generate in order to determine how the application should run.

Today, we’re going to start exploring how event-driven programming makes this possible.

Tutorial - Introduction to Design Mode - Video

Guided Instruction:

1.   Log into code studio, Go to Unit 5 and Lesson 1 and proceed through today’s exercises.

  1. Share your Chaser Games with the class

Wrap-Up:

Today we were actually introduced to two tools that will help us build increasingly complex applications. The first was Design Mode, and hopefully it was quickly apparent how powerful this tool is for creating visually appealing and intuitive user interfaces without cluttering up your code. The second tool was onEvent which is the general command for all event-handling in App Lab.

Event-driven programs are an important concept in programming, but we’ve just gotten our feet wet. In the next lesson we’ll go further by adding multiple screens, and getting better at debugging.

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 today’s lesson in the Building Apps, Unit 5, Lesson 1.

Ticket to Leave:

In order to prepare you for your next AP CSP college-board performance task 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:

 

Ø  In order to begin preparation for the next task to be submitted to the college-board, Please click on the following link and review the requirements for the Create Performance Task. Feel free to review the sample task submissions and the comments on how the performance task received its score.

Create Performance Task Rubric

Ø  Students should begin their research and definition of what their Create Performance Task will be and how it will meet the criteria setforth within the CP Task Rubric above.

Ø  Complete your ticket to leave journal entry.

 

Thursday Day B – 1-17-19

 

Lesson 2: Multi-Screen Apps

Standards Alignment

CSTA K-12 Computer Science Standards

CPP - Computing Practice & Programming

CT - Computational Thinking

Computer Science Principles

1.1 - Creative development can be an essential process for creating computational artifacts.

1.1.1 - Apply a creative development process when creating computational artifacts. [P2]

1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.

1.2.1 - Create a computational artifact for creative expression. [P2]

1.2.3 - Create a new computational artifact by combining or modifying existing artifacts. [P2]

1.2.4 - Collaborate in the creation of computational artifacts. [P6]

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.1 - Develop a program for creative expression, to satisfy personal curiosity, or to create new knowledge. [P2]

5.1.2 - Develop a correct program to solve problems. [P2]

5.1.3 - Collaborate to develop a program. [P6]

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 5: The ‘Building Apps’ tile and click ‘View course’.

Direct Instruction:

Vocabulary

Introduced Code

As event-driven applications get more complex, it is easy to generate errors in a program, and the need to debug the program will become more prevalent. In some instances, the error will be in the syntax of the program (e.g., a missing semicolon or misspelled function name). In other instances, however, programs will have logical errors which the computer will not catch and so can only be found by testing. Debugging and learning to interpret error messages is a critical step in the process of developing reliable software. Learning about yourself and the types of mistakes you typically make is one aspect of getting good at debugging. Learning how to insert console.log statements into your code to display messages that give you insight into what your program is doing and when is also an important, universal technique of program development and debugging.

In the last lesson you ended up making a simple “chaser game” that wasn’t much of a game.

In this lesson you’ll learn how to improve that app by:

 

Guided Instruction:

·         Log into code studio, Go to Unit 5 and Lesson 2 and proceed through today’s exercises.

·         You should still work independently but there are a few more problems to solve and mysteries to figure out than in the previous lesson.

·         It is recommended that each of you have at least one coding buddy or thought partner to work through these stages with.

·         Each team should read instructions together, and ask questions of each other.

·         In particular, it’s effective to have students do prediction tasks with a partner.

·         At the end of the lesson it’s okay for to work more independently as you will be touching up and adding to your chaser game project

·         Share what you completed today with the class

 

Wrap-Up:

We’re making a big deal out of error messages and debugging because they are often hurdles for new learners.

But you just need to have the right attitude about writing code - debugging is part of the process.

You get used to a pattern of:

If you do this, the errors you make will tend to be smaller and easier to catch.

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 today’s lesson in the Building Apps, Unit 5, Lesson 2.

 

Ticket to Leave:

In order to prepare you for your next AP CSP college-board performance task 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:

 

Ø  In order to begin preparation for the next task to be submitted to the college-board, Please click on the following link and review the requirements for the Create Performance Task. Feel free to review the sample task submissions and the comments on how the performance task received its score.

Create Performance Task Rubric

Ø  Students should begin their research and definition of what their Create Performance Task will be and how it will meet the criteria setforth within the CP Task Rubric above.

Ø  Complete your ticket to leave journal entry.

Thanks for a great semester!

 

Thanks for a great week!

Mr. PC 

 

Create Performance Task Student Resources:

Review Submissions of last year’s AP CSP Students

 

For the Students

AP Digital Portfolio Access - College Board Site

 

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

AP CSP Week 18 Agenda  

AP CSP Week 19 Agenda