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

Home | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 | Handouts

Morning Session I : Teaching the Course [Array, ArrayList]

Key Understanding:

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

Unit 6 : Array

  • 6-8 class periods [45 minute periods, 5 days per week]

  • 10-15% AP Exam weight

  • Progress Checks : about 10 Multiple Choice + 1 Free-Response Questions

 

Topics

  1. Array Creation and Access

  2. Traversing Arrays

  3. Enhanced for Loop for Arrays

  4. Developing Algorithms Using Arrays

 

Activities

  • CED : Unit 6 : : Read all 4 Sample Activities

  • Suppose a PlayingCard class has been written that has suit and value and appropriate accessor and mutator methods along with a constructor with a parameter specifying it's index in a Deck of Cards.

      1. Draw a UML diagram representing the PlayingCard class

      2. Draw a UML diagram representing a DeckOfCards class that:

        1. has an array of 52 playing cards and

        2. has a way to keep track of the number of cards dealt

        3. can construct a new deck of cards and

        4. can deal one card from the deck.

      3. Write the DeckOfCards class

      4. Either use BlueJ or write a Test class to demonstrate the DeckOfCards working.

      5. Demonstrate a memory map of of the constructor and deal method.

Unit 7 : ArrayList

  • 10-12 class periods [45 minute periods, 5 days per week]

  • 2.5-7.5% AP Exam weight

  • Progress Checks : about 15 Multiple Choice + 1 Free-Response Questions

 

Topics

  1. Introduction to ArrayList

  2. ArrayList methods

  3. Traversing ArrayLists

  4. Developing Algorithms Using ArrayLists

  5. Searching

  6. Sorting

  7. Ethical Issues Around Data Collection [not tested]

 

Activities

  • CED : Unit 7 : : Read 3 Sample Activities

  • Repeat the array activity (DeckOfCards) introduced in Unit 6 : Array : Activity earlier using an ArrayList

    • Discuss the pros & cons of using Array verus ArrayList<E>

    • Write a shuffle method using a for-each loop along with the Math.random() static method. Hint: (int)(Math.random()*52)

    • Advanced : Write a sortByValue() method and a sortBySuit() method

  • Alternate Activity : Elevens Lab

CED : Course Description states... (Lab Requirements page 7) [style modified]...

  • Three exemplar labs, the AP Computer Science A Labs, have been developed for teachers to use in the AP Computer Science A course.

  • AP Computer Science A teachers will be able to access all instructional resources for each lab (Teacher and Student Guides, solutions and code files) through their AP Course Audit accounts.

    • The first lab (Magpie) can be incorporated early in the course and involves simple string processing and conditional execution.

    • The second lab (Picture Lab) involves 2-dimensional array manipulation in the context of image processing.

    • The third lab (Elevens) provides an example of larger object-oriented program design.

  • The AP Computer Science Labs include

    • teacher guides along with Java [accessed throught myAP.collegeboard.org : Resources : Secure Documents and Syllabus Development Guides]

    • student guides along with Java code [publically accessed through student accounts and apcentral.collegeboard.org]

  • Each teacher guide is now a secure document and includes

    • concepts covered, learning objectives, and necessary prerequisite knowledge,

    • guidelines on when each lab might fit naturally into a course and suggestions on the use of the materials,

    • suggested problems and questions for use during each activity, and sample assessment exercises.

  • The Student Guides for the AP Computer Science A Labs can be found on the AP Computer Science home page:

  • Teachers may use the provided labs, develop their own labs and/or utilize laboratory exercises from textbook authors or other sources.

  • When choosing labs, teachers must carefully evaluate the activities, objectives, and materials to be certain that the labs address the characteristics outlined above.

Personal perspectives on Labs

  • Examplar Labs are the "fastest" way to cover many of the AP CSA topics & new 20 hour lab requirement...they are as close to "Course-in-a-Can" as I've seen

  • Exemplar Labs are not required and are not tested directly on the AP CSA Exam

  • Writing your own "labs" is both time-consuming and challenging (covering all AP CSA topics!) but, ultimately, rewarding for your students (and for yourself)

  • Using textbook or other "labs" may offer different resources and may fit your classroom environment better.

Participant Activity [Workshop Software]

  • Student's Guide & Code

  • Teacher's Guide & Code [do NOT give this to your students]

  • Explore the software (Guides & Code) provided. If computers are not available, then view the Sample Student Starter Code linked below.

     

    Magpie Lab
    Sample Student Starter Code

    • Magpie class

    • MagpieRunner class for testing purposes...(i.e. contains the main() method)

    • if statements, String indexOf() and String API...see page 212 in Activity 2

      1. Alter code to have it respond "Tell me more about your pets" when statement contains the word "dog" or "cat"

      2. Alter code to have it respond favorably when it sees the name of your teacher. Be sure to use appropriate pronouns.

        • Statement: Mr. Finkelstein is telling us about robotics.

        • Response: He sounds like a good teacher.

      3. Alter code to use the String.trim() method to remove spaces at beginning and end and check for length of trimmed statement. If no characters then have the response be "Say something, please."

      4. What happens when you try: "My mother has a dog but no cat." or "I know the state capitals." or "I like vegatables smothered in cheese."

Morning Session II : Teaching the Course [2D Array, Inheritance, & Recursion]

Key Understanding:

  • Learning requires time,practice, and regular feedback.

  • Understanding is earned over time.

Unit 8 : 2D Array

  • 10-12 class periods [45 minute periods, 5 days per week]

  • 7.5-10% AP Exam weight

  • Progress Checks : about 10 Multiple Choice + 1 Free-Response Questions

 

Topics

  1. 2D Arrays

  2. Traversing 2D Arrays

 

Activities

  • CED : Unit 7 : Read 3 Sample Activities

Explore the Picture Lab:

  • For each Exemplar Lab, the handbook is organized according to:

    • Teacher Guide

      • learning objectives & Course Description topics addressed

      • required setup & estimated time

      • Student Activities & solutions

      • practice assessment questions (MC & FR) along with answers

      • optional extensions

    • Student Guide - based upon each Student Activity, teachers can assign students:

      • preparation information

      • guided questions

      • explorations

      • exercises

  • Pictures Lab (9 Student Activities labeled A1 through A9)

    • focus on 2-dimensional array manipulation in the context of image processing

      • A1 - Intro to RGB, pixels, binary

      • A2 - picking a Color

      • A3 - Explore Picture

      • A4 - 2D arrays (matrices)

      • A5 - modifying an image using PictureTester

      • A6 & A7 mirroring an image using PictureTester

      • A8 - creating a collage

      • A9 - edge detection

    • In the Picture Lab, setup can be a bit finicky depending on your IDE. See Teacher Guide : Installation/Setup around Page 4.

Unit 9 : Inheritance

  • 13-15 class periods [45 minute periods, 5 days per week]

  • 5-10% AP Exam weight

  • Progress Checks : about 15 Multiple Choice + 1 Free-Response Questions

 

Topics

  1. Creating Superclasses and Subclasses

  2. Writing Constructors for Subclasses

  3. Overriding Methods

  4. super Keyword

  5. Creating References Using Inheritance Hierarchies

  6. Polymorphism

  7. Object Superclass

 

Activities

  • CED : Unit 9 : Read all 4 Sample Activities

Write the following 3 classes along with appropriate constructors, accessor, and mutator methods.

  • I want a class called "Animal" that has a number of legs and may (or may not) have fur.

  • I want a class called "Dog" that is an Animal with exactly 4 legs, has fur, and can bark.

  • I want an Ostrich that is an Animal with 2 legs, does not have fur, and can peck.

  1. Write the Animal class.

  2. Write the Dog class.

  3. Write the Ostrich class.

  4. How would you make the following declararations and instantiations:

    • a Animal reference called "pet1" that is instantiated as a Dog object

    • a Animal reference called "pet2" that is instantiated as an Ostrich object

    • an Ostrich object called "pet3"

  5. What methods could you call from pet1, pet2, and pet3?

  6. Advanced: How could you compare two animals based on the number of legs each object has?

  7. Advanced: What question could you ask your students that would extend the hiearchy of the Animal class?

Unit 10 : Recursion

  • 3-5 class periods [45 minute periods, 5 days per week]

  • 5-7.5% AP Exam weight

  • Progress Checks : about 10 Multiple Choice + 1 Free-Response Questions

 

Topics

  1. Recursion

  2. Recursive Searching and Sorting

 

Activities

  • CED : Unit 10 : Read 3 Sample Activities

  • Note : students are NOT required to write recursive algorithms but will be asked to evaluate and/or trace them on multiple choice section of AP Exam. Students who write recursive solutions on any free response questions of AP Exam are taking a risk as all solutions can be written without recursion. Since writing recursive solutions is beyond the expectation of the AP CSA course, AP Readers are not expected to "know" this and, therefore, the chance of mis-scoring increases.

  • Every "successful" recursive method requires two parts:

    • a base case (or terminating condition) and

    • at least one call to the method itself passing a "smaller" parameter.

  • Binary Search and Merge Sort are the two recursive algorithms to be listed in AP CSA.

Practice Recursion from Resources:


public static int mystery(int n)
{
        if (n == 0)
                return 1;
        else
                return 3 * mystery (n - 1);
}
// What is returned by a call of mystery(3)?
// What is the base case and where is the recursive call?

 

https://csawesome.runestone.academy/runestone/books/published/csawesome/index.html

 

Afternoon Session I :Designing the Course [Explore Unit Guides in Binder]

Key Understanding:

  • The curricular requirements ensure that all AP course instructors tech a college-level course.


REMINDER : if you don't have a textbook already available/chosen or want to assign online practice--the following resources are some online options:

 

 

Participant Activity [Workshop Binder Treasure Hunt]

Detailed exploration of the Unit Guides in Groups:

 

  1. Pick one Unit in the Workshop Binder for your Group to focus on.

  2. Your group's objective is to sequentially complete the following 9 CheckPoints and find a "treasure" within the Unit to share.

 

CheckPoints:

  1. What do the colors of the Practices represent?

    Answers

    1. Purple : Program Design and Development
    2. Blue : Code Logic
    3. Brown : Code Implementation
    4. Yellow : Code Testing
    5. Green : Documentation

  2. What do the three letter abreviations above each colored box represent?

    Answers

    The 4 Big Ideas

    • MOD : Modularity
    • CON : Control
    • VAR : Variables
    • IOC : Impact of Computing

  3. How many units are there for the entire course? Why do you think they are sequenced in this order?

    Answers

    10 Units

    Sequence determined by the College Board from feedback received from content experts, studies, & textbook examples at the collegiate level.

  4. Under each Unit title, there is a number range (that is not %). What are the ranges for?

    Answers

    Estimated number of 45 minute class periods for the Unit.

  5. Which two units have the most topics? Which two have the least?

    Answers

    Most : Unit 2 Using Objects has 9 topics. Unit 5 Writing Classes has 10 topics.

    Least : Unit 8 2D Array has 2 topics. Unit 10 Recursion has 2 topics.

  6. What is the information at the bottom of the column telling you?

    Answers

    The estimated number of Multiple Choice (and Free Response) Questions available in each Unit.

    Teachers may assign none, some, or all from the Question Bank and use as Personal Progress Checks (available 1Aug2019).

  7. Under each Unit title, there is a percentage(s). What do they represent?

    Answers

    Approximate weighting of each Unit on the AP Exam

  8. What do you think is measured in the Personal Progress Checks (PPC)?

    Answers

    The skills and topics the students have learned.

    Free Response Questions measure Learning Objectives

    Multiple Choice Questions mesure Essential Knowledge Statements.

  9. How is the scaffolding of skills displayed across the Units?

    Answers

    Practices are spiralled across units.

    Practices -> Skills are learned through repetition and scaffolded across increasingly complex content sequenced via 10 Units

    The 10 Units spiral the 4 Big Ideas via Topics

Afternoon Session II : Designing the Course [Identify EK's]

Participant Activity [Workshop Binder]

  • Spend the remainder of the day doing one of the following activites :

    • identify (and list) each Essential Knowledge (EK) in each Unit that you believe your students will struggle with.

    • Design a year-long schedule to cover all the content/Units leaving room for "Heebie-Jeebie" days [as Leon Schram calls them] such as Assemblies, Safety Drills, etc.

    • Create a Lesson Plan - select 2 Units/Topics to create a Lesson Plan & add to Google Drive

      Elements of a Lesson Plan:

      1. Specify Clear Objectives : list

        1. Content Standards (4 Big Ideas) by listing Big Ideas -> Unit-> Topic

        2. Practice Standards (5 Computational Thinking) Practice -> Skills

      2. List Necessary Materials for your classroom & expected time frame.

      3. Background Knowledge : Explicitly list which Units/Topics along with Practices/Skills must have been addressed/mastered prior to learning new content/skills.

      4. Direct Instruction : provide at least one (possibly more) example(s) of the new concept/skill to be learned.

      5. Student Practice : give a simple (followed by more complex) problem(s) to be solved by the student. Show solution(s) to students for student to verify/correct understanding.

      6. Closure : explicitely summarize or review the objectives and connect with student practice/expectations

      7. Demonstration of Learning (Quick Assessment)

       

  • Add your list, year-long schedule, or lesson plan(s) to the shared drive/file that John setup for the APSI.

 

 

Daily Checkout Form for Day 2