Difference between revisions of "AP Computer Science"

From WLCS
(57 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tuesday (3/5/19) ==
+
== EXAM INFORMATION ==
* Confirm that you have completed Activity 19
+
* Friday, May 17th - 12pm - Wrestling Room
* Complete Test 15
+
* [http://washingtonlee.apsva.us/wp-content/uploads/sites/38/2019/03/AP-IB-Exam-May-2019-schedule-for-POSTERS-3-27-19.pdf Complete AP/IB Exam Calendar]
* Complete the [https://www.albert.io/assignment/d8da5c33-2eaf-4edf-b1ee-28410d733889 Albert.io Inheritance & Polymorphism assignment]
+
* [https://docs.google.com/document/d/19XmF8sgXBu1hOb4_wcSK1zmEkQ-IwkP4b3MSH_Orzy8/edit?usp=sharing AP/IB Exam Study Strategies]
  
 
+
== Monday (4/22/19) ==
== Wednesday (2/27/19) ==
 
'''Agenda:'''
 
* Activity 17 & 18 Questions?
 
* Test 14 Questions?
 
* Class hierarchies - Object class
 
** Object class methods
 
* Polymorphism review
 
** Polymorphism & ArrayLists
 
* Overriding methods
 
* Complete Activity 19
 
 
 
== Monday (2/25/19) ==
 
'''Agenda:'''
 
* Inheritance Quiz in Canvas
 
** Closed-book, closed-note, closed-person
 
* Read and work through eIMACS: Object-oriented Programming -> Inheritance and Polymorphism -> Class Hierarchies (pages 218-224)
 
** Most of this chapter will be review; however there is new material on pages 222-224
 
** Pay attention to the reading about the Object class and its methods.  For example: e.getClass().getName()
 
* Complete eIMACS: Activity 18: Components
 
* Read and work through eIMACS: Polymorphism
 
* Complete Test 14
 
 
 
'''Homework:'''
 
* eIMACS: Activity 18 (if not completed during class)
 
* eIMACS: Test 14 (if not completed during class)
 
 
 
== Thursday (2/21/19) ==
 
'''Agenda:'''
 
* Don't forget...Activity 17: Airplanes was homework
 
* More Inheritance Review & Practice
 
** [[Media:OOP.pptx]]
 
** Complete the Person/Teacher/Student/... inheritance exercise
 
** '''Inheritance Quiz on Monday (2/25/19)'''
 
* [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap-computer-science-a-java-subset.pdf AP Java Subset]
 
 
 
== Tuesday (2/19/19) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
* Employee class & ArrayList assignment (complete < 20 minutes)
+
* Flash card circle
*# Create an Employee class that has the following attributes:
+
*# Number a sheet of paper from 1 through 10
*#* String name
+
*# You will have 60 seconds for each simple statement
*#* int employeeID
+
*# Pass the card to your right
*#* double salary
+
* Review flash card answers
*# Define setters and getters for all attributes
+
* Topics review
*# Define the toString() method that returns the name and employee ID
+
** [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap-computer-science-a-java-subset.pdf APCS Java Subset]
*# Within main()
+
** Make sure you read the notes at the bottom of the subset!
*## Create an ArrayList<Employee> and populate it with 5 different Employee objects
+
** Class-walk through of every testable language feature
*## Write a loop that finds the Employee that has the highest salary, and print out the Employee
+
* Compile a list with links of all the eIMACS Quick References (#1-19)
* Inheritance and Polymorphism
+
** List the subtopics for each quick reference
** Extending our Employee class
+
** Be sure to paste links
** Walk-through inheritance exercises
+
* [https://docs.google.com/document/d/1fFYAfNpJDuQGb4iTZ-wfeaZLyqXSt3PJHtfry25jyUk/edit?usp=sharing Example APCS exam review]
* Complete Activity 17: Airplanes for homework
+
* [https://doodle.com/poll/66uuh5swtfpck4yy AP/IB Exam Doodle (L-day mornings)]
  
 
'''Homework:'''
 
'''Homework:'''
* Complete eIMACS: Activity 17: Airplanes
+
* [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap16_frq_computer_science_a.pdf 2016 Practice FRQ #3] - 22 mins total
  
== Thursday (2/14/19) ==
+
== Monday - Friday (4/15/19 - 4/19/19) ==
'''Agenda:'''
+
* Spring Break
* Complete and demo War
 
  
== Tuesday (2/12/19) ==
+
== Thursday (4/11/19) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Class construction, object usage, & object arrays quiz
+
* Flash card circle
* Complete and demo War Card "Game"/Simulation
+
*# Number a sheet a paper from 1 through 13
** Display how many cards each player has at the beginning of each round
+
*# You will have a True/False flash card and you must answer it within 30 seconds.  Make sure you write True/False in the appropriate number
** You should display messages like "Player 1 reveals X of X"
+
*# Pass the card to your right
** Display a message of who wins each "round"
+
* Review True/False answers
** Display "I declare war!"
+
* [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap16_frq_computer_science_a.pdf 2016 Practice FRQ #2] - 22 mins total
** Display the eventual winner
 
  
== Wednesday - Friday (2/6/19 - 2/8/19) ==
+
== Tuesday (4/9/19) ==
'''Agenda:'''
 
* Complete and submit Poker Hands: Part 1 to repl.it
 
* Introduction to ArrayLists
 
** AP CS reference card for ArrayLists
 
** eIMACS ArrayLists chapter review
 
** Memorize / study ArrayList<E> instance methods
 
* Processing - Ball example w/ ArrayLists
 
* Processing - millis() timer example
 
* Item Collection w/ ArrayLists
 
*# Re-implement your Item Collection game so that it uses ArrayLists instead of arrays
 
*# Start with an ArrayList of 1 robot, and add new robots every 3 seconds
 
*# Start with an ArrayList of 5 items, and remove items when the player collides with them
 
* ArrayList<Card> examples
 
* War Card "Game"/Simulation
 
*# Use NetBeans and create a new project for War
 
*# The Main.java file will be the simulation
 
*# Create a new Java class (name the file Card.java) and paste your Card class there
 
*# Design and implement the game/simulation (we will design as a class)
 
 
 
== Monday (2/4/19) ==
 
'''Agenda:'''
 
* Demo Item Collection Game w/ Object Arrays
 
* Complete Card class in repl.it (should be done today)
 
* Work on Poker Hands: Part 1 in repl.it - '''due Thursday (2/6/19)'''
 
 
 
== Thursday (1/31/19) ==
 
'''Agenda:'''
 
* Demo Item Collection Game
 
* Arrays of Objects
 
** String arrays (review)
 
** Ball class and Ball array
 
* Item Collection Game w/ Object Arrays (assignment)
 
*# Copy your Item Collection Game to a new Processing sketch
 
*# Convert your item Sprites collected into an array
 
*# Convert your robot Sprites into an array
 
*# Demo your converted game on '''Monday (2/4/19)'''
 
 
 
== Tuesday (1/29/19) ==
 
'''Agenda:'''
 
* Item Collection Game - '''due Thursday (1/31/19)'''
 
*# We will design a simple top-down item collection game using a new Sprite class (specified below)
 
*# Find and download Sprite images of your choosing
 
*# You can move the player sprite with the keyboard (wrap the player to the other side of the screen if you go off screen)
 
*# The player sprite will be able to collect item sprites
 
*# Robot sprites will follow the player around
 
*# You win when you collect all the items
 
*# You lose if a robot collides with your sprite
 
* Sprite class (has similarities to the previous Sprite class)
 
** Attributes:
 
*** double x, y (to be used for position)
 
*** double dx, dy (to be used for step size when moving -- always positive)
 
*** PImage img (stores the image)
 
*** boolean visible (default setting is true -- we will use this variable to track the Sprite's visibility state)
 
** Constructors:
 
*** Sprite()
 
*** Sprite(String imgfile, double x, double y, double dx, double dy)
 
** Methods:
 
*** void display() - if visible is true, then display the image
 
*** void moveLeft() - move x-coordinate to the left by dx amount
 
*** void moveRight() - move x-coordinate to the right by dx amount
 
*** void moveUp() - move y-coodrinate upwards by dy amount
 
*** void moveDown() - move y-coodrinate downwards by dy amount
 
*** boolean checkCollision(Sprite other) - returns true if this Sprite is colliding with the other Sprite (use previous Sprite class to help with this method)
 
*** void follow(Sprite other) - compare x and y coordinates of this Sprite with the other Sprite -- move this Sprite towards other Sprite by using the move____() methods
 
 
 
== Tuesday - Thursday (1/22/19 - 1/24/19) ==
 
'''Agenda:'''
 
* [https://drive.google.com/file/d/1tQc3yOyfjy7xN6oz0glIeFHqJgORmuAd/view?usp=sharing Dino Game example]
 
** We will convert the non-OOP version into an [https://drive.google.com/file/d/1FAO7kdtVrYrrO4jgcRMap3S3UtDqFe_W/view?usp=sharing OOP version]
 
** Add another cactus to the dino game
 
* Flappy Bird OOP
 
** What modifications to our Sprite class do we need to make?
 
** Here are some Flappy Bird sprite images [https://drive.google.com/file/d/1UugFrLPjeA8YPXOlmOxjIvzd6HdvpupA/view?usp=sharing here]
 
** Implement the OOP version of Flappy Bird in Processing
 
** Bird will need to flap when a key is pressed
 
** Pipes will need to move and wrap around the screen
 
** Score increases when a pipe is passed (this will require something to be added to the Sprite class)
 
** Lose when bird collides with a pipe or when the Bird goes too far below the screen
 
** Due '''Thursday (1/24/19)''' -- last assignment of 2nd Quarter
 
 
 
== Thursday (1/17/19) ==
 
 
'''Warmup:'''
 
'''Warmup:'''
* Submit your Circle class to repl.it
+
* Complete sample questions #1-5 from [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap-computer-science-a-course-description.pdf AP CS Course Description] on page 19
 +
** You have 11 minutes
  
 
'''Agenda:'''
 
'''Agenda:'''
* Object-Oriented Programming cont'd
+
* [https://www.albert.io/blog/ap-computer-science-tips/ Albert.io Study Tips]
** OOP Review - attributes, constructors, setters, getters, public vs. private, this
+
* AP CS Study Documents (let Mr. Bui know if you want a hard-copy now)
** toString() method (using the Point class)
+
** https://ap-computer-science-guide.github.io/
** Submit Point class to repl.it
+
** [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap-computer-science-a-java-subset.pdf AP CS Java Subset]
** [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides]
+
** [https://secure-media.collegeboard.org/digitalServices/pdf/ap/explore-ap/ap-computer-science-a-2014-java-quick-reference.pdf AP CS Java Quick Reference]
* Complete the Car class assignments in repl.it
+
* [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap16_frq_computer_science_a.pdf 2016 Practice FRQ #1] - 22 mins total
* [https://drive.google.com/file/d/1tQc3yOyfjy7xN6oz0glIeFHqJgORmuAd/view?usp=sharing Dino Game example]
+
** You may ask Jeff how to approach the problem if you need help
** Add another cactus to the dino game
+
* [https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap16_frq_computer_science_a.pdf 2016 Practice FRQ #2] - 22 mins total
 +
** You may ask Jeff how to approach the problem if you need help
  
 
'''Homework:'''
 
'''Homework:'''
* Complete eIMACS: Activity 14: Address Objects
+
* Complete [https://www.albert.io/assignment/60dbb250-7dc8-4032-afe8-c6c1773e3d31 22Qs Albert.io - Program Implementation - Declaration & Output]
  
== Tuesday (1/15/19) ==
+
== Friday (4/5/19) ==
* Snow Day
 
 
 
== Friday (1/11/19) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
* Object-Oriented Programming cont'd
+
* Go over HW
** Person class review
+
* Demo image processing assignments
** Vocab:
 
*** class vs object
 
*** declaration vs instantiation
 
** Point class example
 
** Point object instantiation
 
** Point object usage
 
** [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides]
 
** Circle class example
 
** [https://drive.google.com/file/d/1tQc3yOyfjy7xN6oz0glIeFHqJgORmuAd/view?usp=sharing Dino Game example]
 
  
 
'''Homework:'''
 
'''Homework:'''
* Create a Circle class and test it out
+
* Complete [https://www.albert.io/assignment/00b78f66-9d56-413c-86ce-0ba51d9bb5df Albert.io Program Construction - Classes]
* Follow the [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides]
 
  
== Wednesday (1/9/19) ==
+
== Wednesday (4/3/19) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Cornell Engineering Diversity Programs - one-week residential programs:
+
* Demo Image Processing assignments
** [https://sites.coecis.cornell.edu/catalystacademy/ Catalyst Academy] - juniors and seniors from underrepresented backgrounds
 
** [https://sites.coecis.cornell.edu/curieacademy/ Curie Academy] - high school girls who excel in math and science
 
* Recursion quiz
 
* Submit Recursion Problems to repl.it
 
** public static int count(String s, String ch) - returns the number of occurrences of ch (single character string) within s
 
** public static String reverse(String s) - returns the reversed String s
 
** public static int reverse(int i) - returns an int that is the full digit reversal of i (e.g. 1234 -> 4321)
 
* Introduction to Object-Oriented Programming
 
** [https://repl.it/@paulbui/SimpleProgramWithoutOOP Simple program without OOP example]
 
** Simple program with OOP example
 
** Point class example
 
** Point object instantiation
 
** Point object usage
 
** [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides]
 
** Circle class example
 
  
 
'''Homework:'''
 
'''Homework:'''
* Complete and submit recursion problems to repl.it
+
* Complete the [https://www.albert.io/assignment/dcc0878d-76c6-42fe-aa1e-5463573cf05f Albert.io Program & Class Design (part 1) assignment]
* Review SimpleProgramWithOOP notes that we did in class
+
** Spend no more than 2 minutes per question
 
 
== Monday (1/7/19) ==
 
* Don't forget to complete Activity 13 (due tonight)
 
* Recursion Quiz Wednesday (1/9/19)
 
** Multiple choice questions
 
** Free-response question(s)
 
* Recursion Review & Practice
 
* Recursion Problems (prepare to submit to repl.it)
 
** public static int count(String s, String ch) - returns the number of occurrences of ch (single character string) within s
 
** public static String reverse(String s) - returns the reversed String s
 
** public static int reverse(int i) - returns an int that is the full digit reversal of i (e.g. 1234 -> 4321)
 
 
 
== Monday - Friday (12/31/18 - 1/4/19) ==
 
* Winter Break
 
  
 
== Archives ==
 
== Archives ==
 +
* [[APCS - 1819 - March]]
 +
* [[APCS - 1819 - February]]
 +
* [[APCS - 1819 - January]]
 
* [[APCS - 1819 - December]]
 
* [[APCS - 1819 - December]]
 
* [[APCS - 1819 - November]]
 
* [[APCS - 1819 - November]]

Revision as of 10:26, 22 April 2019

EXAM INFORMATION

Monday (4/22/19)

Agenda:

  • Flash card circle
    1. Number a sheet of paper from 1 through 10
    2. You will have 60 seconds for each simple statement
    3. Pass the card to your right
  • Review flash card answers
  • Topics review
    • APCS Java Subset
    • Make sure you read the notes at the bottom of the subset!
    • Class-walk through of every testable language feature
  • Compile a list with links of all the eIMACS Quick References (#1-19)
    • List the subtopics for each quick reference
    • Be sure to paste links
  • Example APCS exam review
  • AP/IB Exam Doodle (L-day mornings)

Homework:

Monday - Friday (4/15/19 - 4/19/19)

  • Spring Break

Thursday (4/11/19)

Agenda:

  • Flash card circle
    1. Number a sheet a paper from 1 through 13
    2. You will have a True/False flash card and you must answer it within 30 seconds. Make sure you write True/False in the appropriate number
    3. Pass the card to your right
  • Review True/False answers
  • 2016 Practice FRQ #2 - 22 mins total

Tuesday (4/9/19)

Warmup:

Agenda:

Homework:

Friday (4/5/19)

Agenda:

  • Go over HW
  • Demo image processing assignments

Homework:

Wednesday (4/3/19)

Agenda:

  • Demo Image Processing assignments

Homework:

Archives