The College Board Advanced Placement™ Computer Science-Principles Summer Institute: Mr. John Meinzen

Home | Day 1 | Day 2 | Day 3 | Day 4 |Day 5 | Handouts | LOs-EKs

Morning Session : Review and Focus Lesson on Abstraction

 

Focus Lesson : Abstraction

Learning Objectives :

  • Procedural (Algorithmic) Abstraction allows us to use generalizations to make our programs with code segments that are reusable, save time, and increase readability.

  • Data Abstraction allows us to create meaning out of data stored in bits by displaying them as numbers, text, pictures, colors or as collections of similar items such as Lists

 

Participant Activity : Abstraction in the CED

In AP CSP CED, the following definition of "abstraction" is used: EK DAT-1.A.5: Abstraction is the process of reducing complexity by focusing on the main idea.

 

Search "bstract" in the LO-EK search page and identify which EK's are quoted (and in red) in the lists below for the data and procedural abstractions.

 

There are two different "types" of abstractions in AP CSP :

  1. Data Abstraction

    • Definition : "... giving a collection of data a name..."

    • Concept from least abstract (i.e. concrete) to most abstract :

      bit -> numbers,characters,color -> variable name-> LIST name

    • Manages complexity by :

      • "...hiding details irrelevant to the question at hand and bringing together related and useful details... allows one to focus on the idea...without referencing the specific details of the representation."

  2. Procedural (or Algorithmic) Abstraction

    • Definition: "procedural abstraction provides a name for a process"

    • Manages complexity by :

      • ..."extract shared features to generalize functionality instead of duplicating code. This allows for program code reuse",

      • ..."allows a solution to a large problem to be based on the solution of smaller subproblems."

      • ..."allows programmers to change the internals of the procedure (to make it faster, more efficient, use less storage, etc.)"

    • Concept : a procedure named sortNumbers(List a) can contain a large number of commands or statements that solves a problem (i.e. puts the numbers in "List a" from smallest to largest). Complexity is managed by referring to sortNumbers as a single name for the large number of commands or statements.

      • sortNumbers is the name of the procedural abstraction

      • List a is the name of the parameter and the name of the data abstraction

 

 

Participant Activity : Focusing on Student Skills : Abstraction in Program Development

Use the LO-EK tab to identify the 3 skills associated with P3 : Abstraction in Program Development

Use the LO-EK tab and search for the word " bstraction " [Note the missing "a"! Why?]

Have students keep a Log or Notebook for "Things I learned/tried while coding..."

 

Levels of abstraction in math

  1. Think : data : numbers and algorithms : order of operations

  2. numbers abstracted to variables.

    What are variables abstracted to? What is the computer science equivalent terminology?
  3. order of operations : + and - abstracted to * and / abstracted to exponents and roots.

    Are you familiar with tetration? What is the computer science equivalent terminology?
  4. arithmetic (numbers & operators) abstracted to algebra abstracted to calculus

    What is calculus abstracted to? What is the computer science equivalent terminology?

 

 

Modeling Activity : Focusing on Student Skills : Introducing Program Analysis and the Exam Reference Sheet

Compare the following pages and answer the questions that follow:

  • Course & Exam Description :

    • Page 176 : Question 3

    • Page 213-218 : Exam Reference Sheet(s)

  • Which programming blocks are being used in Solution (A) OF QUESTION 3?

    answers

    • 8 total statements

    • 2 block Assignments (1 with arithmetic operator)

    • 2 block Iterations with the inner Iteration (i.e. REPEAT n TIMES) having

    • 4 block Robot statements

  • What student learning objective and skills are demonstrated in this question?

  • answer (see page 183)

    Learning Objective:

    • LO AAP-2.K:a. Write iteration statements. [2B]

    • LO AAP-2.K:b. Determine the result or side effect of iteration statements. [4B]

    Skill

    • 2.B Implement an algorithm in a program.

    • 4.B Determine the result of code segments.

    Other skills

    • A computer stores (or assigns) a single number in a single variable in its memory.

    • A computer runs (or executes) one box (or instruction or "line of code") at a time in sequence starting from the top of the code and proceding down the page.

    • A computer can repeat (or iterate) one or more box (or "lines of code") based upon a true or false condition.

  • How would you demonstrate Code Tracing? Page 132 or Kinesthetic Learning? Page 136

  • answers

    • Code Tracing :
      • Create a Computer's Memory Map by listing all the variables and values stored in each variable.
      • Trace each statement by keeping a finger on the block or line currently being executed (this is called a "Program Counter")
      • Illustrate the interaction between each block/line statement and the Memory Map
    • Kinesthetic Learning :
      • Create a grid on the floor using tape as an outline (many schools have tile flooring...perfect for grids)
      • Place a "robot" (toy, duck, pencil, etc.) in the given square with one student acting out the robot's instructions.
      • Assign two students to follow each algorithm. One to keep track of the statement being executed (program counter) and one to keep track of the values of each variable (memory).
      • Each person takes a turn starting with program counter who instructs the robot and memory to make appropriate changes as each statement is executred in order.

 

Insight :

  • It is important to build confidence in students of all skill levels. Program analysis is one topic that lends itself to "best-fit" languages--such as using block-based coding or text-based coding--as well as scaffolding.

  • The following is a quick review of major scaffolding programming & algorithmic resources from Day 1 : Morning Session I : Introductions

    Optional Participant Activity : Examples of Engagement in Programming see Day 1 > Morning Session : Lesson 0

      Day 1 > Morning Session : Lesson 0

    1. Teacher-to-Teacher: informal "best of" from AP CSP teachers

      • Classroom Management and Student Support

      • Learn: Computer Programming (each are free software)

      • Learn: Cybersecurity

    2. Activity : 1st Day of School : Engagement in CS! aka: keeping the students busy ;)

 

Misconception Issues :

  • The exam reference sheet does not represent an actual programming language. It is designed to ask question that will appear on the Written Exam.

  • Students should be familiar with the Exam Reference sheet for the first 2 hours of the Written Exam but must write programs in an actual computer language for the last hour of the Written Exam.

 

Afternoon Session : Focus Lesson on Create Task, Resources, & Collaboration

Create Task Details : Exam Reference Sheet, John's Sample PC & PPR, and CED Scoring Guideline

Create Task - Goals

Create Performance Task : online submission to Digital Portfolio on myAP.CollegeBoard.org by 30April, 30% of AP CSP score has 3 Components:

  1. Component A: [PC] Program Code

    • Upload all the code written by the student and any other programmer that is written & tested Independently or Collaboratively

    • Collaboration IS allowed on the PC.

  2. Component B: [V] Video

    • Upload a video displaying the running of your program that demonstrates functionality.

    • The video must be student developed that is created Independently from anyone else (i.e. not with another student).

    • Collaboration is NOT allowed on the Video.

  3. Component C: [PPR] Personal Project Reference:

    • Upload screen-captured segments of program code [ie. from PC] that were independently written by the individual student. The captured segments of code are then pasted into specific parts of the AP Digital Portfolio during the school year.

    • The PPR provides evidence that each individual student understands required computer science topics such as Lists (i.e. arrays), Procedures (i.e. methods with parameters), and Algorithms (i.e. sequence, selection, iteration/loops).

    • The PPR will be provided to the student on paper during the AP Written Exam in May.

    • Collaboration is NOT allowed on the PPR.

    Students WILL be asked a 4 questions (called Prompts). Students must refer to their INDIVIDUAL PPR during the 3rd hour of the Written Exam to answer those 4 Prompts :

    1. Component C: PPR: PROCEDURE: Capture and Paste code segments that you developed showing :

      • i. PROCEDURE
        • Define procedure's name and return type (if necessary)
        • Contains and uses one or more parameters that have an effect on functionality
        • Implements and algorithm that includes sequencing, selection, and iteration
      • ii. The second program code segment must show where your student-developed procedure is being called in your program.

      Insights

      • You can only specify ONE Procedure (method or function) even if you wrote several procedures in your program code [PC].

      • No comments or identifying information can be provided in PPR

      • College Board has a PPR Tip Sheet on their website including suggestions on : font-size, screen-captures, long or wide code segments, and rotations,

    2. Component C: PPR: LIST: Capture and Paste two program code segments that contains a list (or other collection type) being used to manage complexity.

      • i. Code segment that shows how data have been stored in the list
      • ii. The second program code segment must show the data in the same list being used, such as creating new data from the existing data or accessing multiple elements in the list, as part of fulfilling the program's purpose.
      • Insights

        • Note that you can only select only ONE list (array) even if you used several lists in your program code [PC].

        • A list (or array) "manages complexity" by giving a single name to several similar items. Ex: a list called deck is less complex than 52 individual card variables such as twoOfClubs, threeOfClubs, etc.)

        • "stored in the list" means that at least two or more elements in the list must be assigned a value. Ex: deck[0] = twoOfClubs; deck[1] = threeOfClubs;

John's Sample PC, PPR and Question Prompts on Written Exam using Exam Reference Sheet

[PC] Example Program Code including commenting and collaboration using Exam Reference Sheet

 
// My team wrote the getIngredients() procedure as part of the Program Code [PC]
PROCEDURE getIngredients()
{
      cheese ← 3       // 3 slices of cheese
      bun    ← 2       // 2 slices of bread
      p      ← INPUT() // ask user for how much protein
      if (p < 0)       // if not enough protein, then  
      {
           p ← 2       // set protein to 2 ounces
      }
      ingredients ← [p, cheese, bun]
      RETURN(ingredients)
}

PROCEDURE makeOneBurger(ingr)
{
      s ← ingr[2] + ingr[1] + ingr[3] + ingr[2]
      RETURN(s)
}

PROCEDURE feedSchool(numberOfStudents)
{
     REPEAT numberOfStudents TIMES
     {
         ingredientList ← getIngredients()
         sandwich       ← makeOneBurger(ingredientList)
         APPEND(sandwichList, sandwich)
     }
     RETURN(sandwichList)
}

entreeList ← feedSchool(500)

FOR EACH sandwich IN entreeList
{
    DISPLAY (sandwich)
}
                              

[PPR] Example Personal Project Reference taken from PC with removal of any comments

    • i. PROCEDURE
      
      PROCEDURE feedSchool(numberOfStudents)
      {
           REPEAT numberOfStudents TIMES
           {
               ingredientList ← getIngredients()
               sandwich       ← makeOneBurger(ingredientList)
               APPEND(sandwichList, sandwich)
           }
           RETURN(sandwichList)
      }                                            
    • ii. The second program code segment must show where your student-developed procedure is being called in your program.
                                                
      entreeList ← feedSchool(500)
    • i. Code segment that shows how data have been stored in the list
                                                
      ingredients ← [p, cheese, bun]
    • ii. The second program code segment must show the data in the same list being used, such as creating new data from the existing data or accessing multiple elements in the list, as part of fulfilling the program's purpose. .
                                               
      s ← ingr[2] + ingr[1] + ingr[3] + ingr[2]
 

Sample Written Exam Prompts from John's Example PC and PPR: How would you answer the following in 60 minutes?

  1. "Identify an expected user of your program. Describe one way your program's design meets the needs of this user."

    The first question prompt (i.e. Written Response 1) will come from the following Learning Objectives

    • CRD-2.A: Describe the purpose of a computing innovation.

    • CRD-2.B: Explain how a program or code segment functions.

    • CRD-2.C: Identify input(s) to a program.

    • CRD-2.D: Identify output(s) produced by a program.

    • CRD-2.E: Develop a program using a development process.

    • CRD-2.F: Design a program and its user interface.

    • CRD-2.G: Describe the purpose of a code segment or program by writing documentation.

  2. "Consider the first iteration statement included in the Procedure section of your PPR. Identify the number of times the body of your iteration statement will execute. Describe a condition or error that would cause your iteration statement to not terminate and cause an infinite loop. If no such condition or error exists, explain how the loop could be modified to cause an infinite loop."

    The second question prompt (i.e. Written Response 2a) will come from the following Learning Objectives

    • CRD-2.B: Explain how a program or code segment functions.

    • AAP-2.E.b: Evaluate expressions that use relational operators.

    • AAP-2.F.b: Evaluate expressions that use logic operators.

    • AAP-2.H.b: Determine the result of conditional statements.

    • AAP-2.J: Express an algorithm that uses iteration without using a programming language.

    • AAP-2.K.b: Determine the result or side effect of iteration statements.

    • AAP-2.L: Compare multiple algorithms to determine if they yield the same side effect or result.

    • AAP-2.M.a: Create algorithms.

    • AAP-2.M.b: Combine and modify existing algorithms.

  3. "Consider the procedure included in part (i) of the Procedure section of your PPR. Describe a change to your procedure that will result in a run-time error. Explain why this change will result in a run-time error."

    The third question prompt (i.e. Written Response 2b) will come from the following Learning Objectives

    • CRD-2.I.a: Identify the error.

    • CRD-2.I.b: Correct the error.

    • CRD-2.J: Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program.

  4. "Suppose your are provided with a procedure called isEqual(value1, value2). The procedure returns true if the two parameters value1 and value2 are equal in value and returns false otherwise. Using the list you identified in the List section of your PPR, explain in detailed steps an algorithm that uses isEqual to count the number of times a certain value appears in your list. Your explanation must be detailed enough for someone else to write the program code."

    The fourth question prompt (i.e. Written Response 2c) will come from the following Learning Objectives

    • AAP-1.D.a: Develop data abstraction using lists to store multiple elements.

    • AAP-1.D.b: Explain how the use of data abstraction manages complexity in program code.

    • AAP-2.O.a: Write iteration statements to traverse a list.

    • AAP-2.O.b: Determine the result of an algorithm that includes list traversals.

    • AAP-3.B: Explain how the use of procedural abstraction manages complexity in a program.

After Create Task - Scoring: How would you score each other teacher's response to the Prompts?

Note: The final scoring guideline will be published after the 2024 Reading held in June. The prompts provided are example questions that *may* show up on the Written Exam and come from the CED.

Definitions of Terms for the Create Task (re-ordered to match 2024 Scoring Guide in CED page 192)

  • General terms:
    • Program code segment: A code segment refers to a collection of program statements that are part of a program. For text-based, the collection of program statements should be continuous and within the same procedure. For block-based, the collection of program statements should be contained in the same starter block or what is referred to as a "Hat" block.

    • Student-developed procedure / algorithm: Program code that is student developed has been written (individually or collaboratively) by the student who submitted the response. Calls to existing program code or libraries can be included but are not considered student developed. Event handlers are built-in abstractions in some languages and will therefore not be considered student-developed. In some block-based programming languages, event handlers begin with "when".

  • Row 1: Video
    • Input: Program input is data that are sent to a computer for processing by a program. Input can come in a variety of forms, such as tactile (through touch), audible, visual, or text. An event is associated with an action and supplies input data to a program.
    • Program functionality: The behavior of a program during execution, often described by how a user interacts with it.
    • Output: Program output is any data that are sent from a program to a device. Program output can come in a variety of forms, such as tactile, audible, visual, movement, or text.
  • Row 2: Program Requirements
    • List: A list is an ordered sequence of elements. The use of lists allows multiple related items to be represented using a single variable. Lists are referred to by different terms, such as arrays or arraylists, depending on the programming language.
      • Data stored in a list: Input into the list can be through an initialization or through some computation on other variables or list elements.
      • List being used: Using a list means the program is creating new data from existing data or accessing multiple elements in the list.
    • Procedure: A procedure is a named group of programming instructions that may have parameters and return values. Procedures are referred to by different names, such as method, function, or constructor, depending on the programming language.
      • Arguments: The values of the parameters when a procedure is called.
      • Parameter: A parameter is an input variable of a procedure. Explicit parameters are defined in the procedure header. Implicit parameters are those that are assigned in anticipation of a call to the procedure. For example, an implicit parameter can be set through interaction with a graphical user interface.
    • Algorithm: An algorithm is a finite set of instructions that accomplish a specific task. Every algorithm can be constructed using combinations of sequencing, selection, and iteration.
      • Sequencing: The application of each step of an algorithm in the order in which the code statements are given.
      • Selection: Selection determines which parts of an algorithm are executed based on a condition being true or false. The use of try / exception statements is a form of selection statements.
      • Iteration: Iteration is a repetitive portion of an algorithm. Iteration repeats until a given condition is met or for a specified number of times. The use of recursion is a form of iteration.
  • Row 3: Function & Purpose
    • Program functionality: The behavior of a program during execution, often described by how a user interacts with it.
    • Purpose: The problem being solved or creative interest being pursued through the program.
  • Row 4: Algorithm Development
    • Algorithm: An algorithm is a finite set of instructions that accomplish a specific task. Every algorithm can be constructed using combinations of sequencing, selection, and iteration.
      • Sequencing: The application of each step of an algorithm in the order in which the code statements are given.
      • Selection: Selection determines which parts of an algorithm are executed based on a condition being true or false. The use of try / exception statements is a form of selection statements.
      • Iteration: Iteration is a repetitive portion of an algorithm. Iteration repeats until a given condition is met or for a specified number of times. The use of recursion is a form of iteration.
    Row 5: Errors & Testing
  • Row 6: Data & Procedural Abstraction
    • Collection type: Aggregates elements in a single structure. Some examples include: databases, hash tables, dictionaries, sets, or any other type that aggregates elements in a single structure.

    • Manages Complexity: A single name that represents a Collection of individual elements. For example: a named list of ingredients can represent many individual ingredients.

Row 1: Video

 

Video: input, function, output

 

0 or 1 point

The video demonstrates the running of the program including:

  • input

  • functionality: how the program works

  • output

Consider ONLY the video when scoring this point

  •  

Do NOT award a point if the following is true:

  • The video does not show a demonstration of the program running (screenshots or storyboards are not acceptable and would not be credited)

Row 2: Program Requirements [PC]

Program Code [PC] Requirements

 

0 or 1 point

The program code [PC] includes:

  • List

  • Procedure

  • Call to the procedure

  • Selection

  • Iteration

Consider the Personalized Project Reference [PPR] (or Program Code [PC] if necessary) when scoring this point

  • If the program requirements do not appear in the PPR, consider the full program code file when scoring this point.

  • The procedure does not need to have a parameter to earn this point.

  • The code segments demonstrating selection and iteration do not need to appear in the same algorithm to earn this point.

  • The code segments demonstrating selection and iteration do not need to be contained in a procedure to earn this point

Do NOT award a point if any one or more of the following is true:

  • The list is a one-element list.

  • The use of the list is irrelevant or not used in the program.

  • The use of either the selection or the iteration is trivial (i.e., does not affect the outcome of the program)

Row 3: Written Response 1 from prompt during Written Exam based on your [PPR]
Sample Prompt during Written Exam (last 60 min):

"Identify an expected user of your program. Describe one way your program's design meets the needs of this user."

 

 

Program Function and Purpose

 

0 or 1 point

The written response:

  • identifies an expected user of the program

  • describes one way the program's design meets the needs of the identified user.

Consider Written Response 1 and the student's Program Code when scoring this point.

  • The response must relate the program design to the needs of the identified user

Do NOT award a point if the following is true:

  • The description of the design is implausible, inaccurate, or inconsistent with the program.

Row 4: Written Response 2(a) from prompt during Written Exam based on your [PPR]
Sample Prompt during Written Exam (last 60 min):

"Consider the first iteration statement included in the Procedure section of your PPR. Identify the number of times the body of your iteration statement will execute. Describe a condition or error that would cause your iteration statement to not terminate and cause an infinite loop. If no such condition or error exists, explain how the loop could be modified to cause an infinite loop."

 

Algorithm Development
 

0 or 1 point

The written response:

  • identifies the number of times the body of the iteration statement will execute

AND

  • describes a condition or error that would cause an infinite loop

  • OR

  • if no such condition or error exists, explains how the loop could be modified to cause an infinite loop

Consider the Personalized Project Reference and Written Response 2(a) when scoring this point.

  • If multiple iteration statements are included in the Procedure section of the Personalized Project Reference, use the first iteration statement to determine whether the point is earned.

  • The iteration statement does not need to be contained in a procedure to earn this point.

Do NOT award a point if the following is true:

  • The identified number of times the body of the iteration statement will execute does not match the code.

Row 5: Written Response 2(b) from prompt during Written Exam based on your [PPR]
Sample Prompt during Written Exam (last 60 min):

"Consider the procedure included in part (i) of the Procedure section of your PPR. Describe a change to your procedure that will result in a run-time error. Explain why this change will result in a run-time error."

 
Errors & Testing
 

0 or 1 point

The written response:

  • describes a change to the procedure that will result in a run-time error.

  • explains why the change will result in a run-time error

Consider the Personalized Project Reference and Written Response 2(b) when scoring this point.

  • If multiple procedures are included in part (i) of the Procedure section of the PPR, use the first procedure to determine whether the point is earned.

Do NOT award a point if the following is true:

  • A procedure is not identified in part (i) of the Procedure section of the PPR.

  • The response does not apply to the procedure in part (i) of the Procedure section of the PPR.

  • The response describes expected behavior that is implausible, inaccurate, or inconsistent witht the program.

Row 6: Written Response 2(c) from prompt during Written Exam based on your [PPR]
Sample Prompt during Written Exam (last 60 min):

"Suppose your are provided with a procedure called isEqual(value1, value2). The procedure returns true if the two parameters value1 and value2 are equal in value and returns false otherwise. Using the list you identified in the List section of your PPR, explain in detailed steps an algorithm that uses isEqual to count the number of times a certain value appears in your list. Your explanation must be detailed enough for someone else to write the program code."

Data and Procedural Abstraction
 

0 or 1 point

The written response:

  • explains in detailed steps an algorithm that uses isEqual to count the number of elements in the list that are equal to a certain value

Consider the Personalized Project Reference and Written Response 2(c) when scoring this point.

  •  

    If multiple lists are included in the List section of the PPR, use the first list to determine whether the point is earned.

  •  

    The algorithm can be described in code, pseudocode, as a sequence of steps in English, or as a paragraph in english.

  • The algoorithm must describe iterating over all the elements of the list, calling isEqual on each list element and maintaining a count of the number of list elements equal to a certain value

  • The algorithm must correctly determine the number of elements that are equal to a certain value. Some ways this can be determined is by storing the value in a variable, returning it, or displaying it to the user.

Do NOT award a point if the following is true:

  •  

    A list is not identified in the List section of the PPR.

  • The description of the algorithm is not detailed enough for someone else to write the code.

Focus Lesson : Selecting Resources to support your AP CSP Course

Key Understanding:

  • Resources should be selected based on their alignment with AP CSP Curriculum Framework and meet the needs of your students.

  • The background of your students should influence decisions, such as choice of programming language.

     

Participant Activity : Resources & Selecting a Programming Language

Sample Programming Languages : online

  • Block-Based

  • Text-Based

      JavaScript - many online programming environments use this language

A more complete list of languages (both online and installed) is on the Course and Exam Description : Page 130

 

Misconception Alerts

  • It is NOT required that you (teachers) have programming background.

  • The course is NOT just about programming...it is about teaching students the principles of computer science

 

Equity & Access Issues

    • Some students will require programming languages to meet specific needs.

      • English Language Learners (ELL) benefit from Block-Based programming languages.

      • Visually Impaired Learners (VIL) benefit from Text-Based programming languages that can be read out loud

        • Text editors with command-line compilers are helpful for those with visual impairements or low mobility.

        • Programming languages with lots of symbols are more difficult to have read out loud.

    • For many students, this is their first exposure to programming

      • Select a language that is syntactically easier to avoid frustration and is more fun...Block-Based fit this role

      • Select a language that more advanced students can avoid boredom and is more challenging...Text-Based fits this role.

 

Insights : Building Units of Instruction via Templates

John's experience designing Unit Plans

Steps as a 1st year teacher.

  1. Find a "ready-made" course (i.e. Endorsed Provider) and/or activities that look good for the students I expected to teach.

  2. Teach the course and tweak for teacher's students & classroom environment.

 

Steps as an experienced AP teacher.

  1. Look for Student Activities that engage students and prepare students for AP Assessments.

  2. Design or create Summative and Formative Assessments (AP Classroom!) to gauge student skills as they progress...not too easy and not too hard.

  3. Identify Curriculum Framework connections with your activities to identify "gaps" for other activities to fill.

 

Steps that go into making Exemplar Unit Plans (i.e. the Template)

  1. Design Summative Assessment

  2. Map your Curriculum Framework Connections

  3. Create (or find) Instructional Activities for students that prepare students for Summative Assessments

  4. Design Formative Assessments to gauge student skills as they progress.

 

Key Questions when designing your own Unit Plan

  • What is the Topic & Activity (or List of Activities)?

  • What are the assessments (formative and summative) and do they provide evidence of student learning?

  • What resources do you need (software, student instructions, lessons or notes with scaffolding) ?

  • Which Curriculum Framework (i.e. BI -> EU -> LO -> EK and 6 Practices) are addressed in the Activities?

  • Who will be doing the Activities? (teacher lecture or demo, student exploration, student teams, etc.)

  • When will unit be taught during the year and timeframe?

 

 

Focus Lesson : Collaborating

Key Understanding:

  • Collaboration comes in many forms. Students should have many opportunities to practice collaboration in a variety of situations and ways.

     

Equity & Access Issues :

  • Assigning group work is not the same as teaching collaboration.

  • You must design your instruction to facilitate student collaboration...students must be taught and practice.

 

Participant Activity : Learning to "teach" programming

  1. In groups of 4, complete Robot Activity by placing "robots" and setting goals and ob

    Robot Activity Worksheet - good with Skittles or M&M's as robots as a student reward as well as cooperative learning.

     

    1. Create a starting and ending point for each robot.

    2. Challenge each team to find an algorithm (ideally with abstractions and Exam Reference sheet) to move their robot from the starting to the ending point.

    3. As students gain more experience, the objectives can become more challenging (i.e. place roadblocks or restrictions such as "use only 10 lines of code" or "must use a procedure" or "must use an iteration").

     

    Equity & Access Issue :

    • Abstraction was chosen as it presents a large vocabulary and challenging concepts for students.

    • If you (teacher) are not familiar with coding sequencing, selection, and iteration algorithms, ask John...these 3 concepts are essential for students to experience.

    •  

 

Insights on Collaboration

At this point many students (and teachers?) are either feeling overwhelmed and, possibly lost, or biting-at-the-bit to move faster than the leader is allowing:

 

  • Many programming activities focus on "a partner-based" [called "paired-programming"] collaboration. However, collaboration with only 1 other student tends to work best when the partners are at about equal in academic and behavioral skill levels.

  • Larger organized teams (up to 5 students) can help significantly when differences in maturity, academic, and behavior are an issue in classroom...if this may be your situation, please ask for more complex collaboration constructs such as POGIL groups.

 

Summary of Key Take-Aways for this Workshop

Feedback on a 4 x 5 Note Card (select one or more and give feedback regarding what is unclear).

Day 1

To ensure participants are acquiring these key takeaways, at the end of each activity participants should be asked to align their work and discussion to at least one key takeaway—and articulate the elements of the activity that prompted them to choose that particular key takeaway.

1. Understanding the Course

  • 1.A AP courses focus on building conceptual understandings through the teaching of linked learning objectives and essential knowledge statements, all contextualized around course-specific big ideas.

  • 1.C The course framework defines the scope of the course and specifies what students must know and be able to do on the AP Exam.

2. Planning the Course

  • 2.B Helping students develop mastery of the course skills requires careful planning to sequence skills in a developmentally appropriate way so that students master prerequisite skills before being asked to complete more complex tasks.

  • 2.C The needs of all willing and academically prepared students should be considered when planning, sequencing, pacing, and scaffolding the course.

  • 2.E An underlying goal of AP CSP is to broaden participation and provide a class for all academically prepared students to learn computer science content and skills

 

3. Teaching the Course

  • 3.D Creating community within a classroom through collaborative discourse and shared experiences is essential to building student confidence and fostering student progress.

 

Day 2

2. Planning the Course

  • 2.A Sequencing, pacing, and scaffolding are essential for building students’ understanding and their ability to transfer and apply knowledge and skills to new contexts.

  • 2.C The needs of all willing and academically prepared students should be considered when planning, sequencing, pacing, and scaffolding the course.

  • 2.D AP endorsed providers have carefully unpacked the AP CSP big ideas and skills into units or modules where the content and skills are scaffolded for students.

 

3. Teaching the Course

  • 3.A Teachers need a deep understanding of content and its applications in order to adapt their instructional strategies or endorsed provider curriculum to address the different needs of students.

  • 3.B Utilizing effective instructional strategies, like debriefing, helps develop the course skills and content knowledge.

  • 3.C Students need multiple opportunities, in different settings or modes, to practice skills in order to develop mastery over time.

 

5. Becoming a Member of the AP Community

  • 5.A The curricular requirements ensure that all AP course instructors teach a college-level course.

  • 5.B Professional networking can provide teachers with opportunities to discuss teaching strategies, share resources, and connect with each other.

Day 3

1. Understanding the Course

  • 1.B Building understanding and teaching for transfer require the application of content in new authentic, relevant, and unfamiliar contexts and scenarios.

  • 1.C The course framework defines the scope of the course and specifies what students must know and be able to do on the AP Exam.

 

4. Assessing Student Progress and Understanding

  • 4.A Assessments, instruction, and resources should be aligned to learning goals and matched to performance standards.

  • 4.B Students should be progressively challenged, just beyond where they are, to apply their knowledge and skills in different contexts to deepen their understanding.

  • 4.C Learning requires time, practice, and regular feedback.

  • 4.D Understanding is earned over time.

 

5. Becoming a Member of the AP Community

  • 5.C At the start of the year, teachers and students will complete a short digital activation process that will allow them immediate access to classroom resources and the AP Digital Portfolio.

  •  

 

At the end of the Day 4, can you... [if not, ask John!]

Review : Deep Dives

  • Explain the alignment of CED and 2 Assessments?

  • Start the Audit Process for your AP CSP course?

  • Identify the resources your students need to complete the Create Task including handouts, scoring rubric, and Digital Portfolio submissions?

  • Use AP Classroom along with Exam practice questions and Topic questions?

Focus Lesson : Abstraction

  • Define data and procedural abstraction?

  • Identify data and procedural abstraction used in the Exam Reference Sheet?

  • Apply abstraction?

Focus Lesson : Selecting Resources

  • Identify the programming language and other resources to design your course?

  • Program a computer on your own? Do you need to?

  • Identify the resources your students need to complete the Create Task including handouts, scoring rubric, and Digital Portfolio submissions?

  • Use AP Classroom along with Exam practice questions and Topic questions?

Focus Lesson : Collaborating

  • Engage your students in Pair Programming using Robot activities?

  • Express an algorithm in a language with support from others?

 

Daily Checkout : Day 4