Difference between revisions of "AP Computer Science"

From WLCS
(Tuesday - Thursday (12/17/19 - 12/19/19))
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tuesday - Thursday (12/17/19 - 12/19/19) ==
+
== Thursday (1/23/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Complete and demo Brick Breaker
+
* [https://djangogirls.org/arlington/ Django Girls workshop]
* Rectangle-circle collision detection
+
* 2nd Quarter Exam
** https://yal.cc/rectangle-circle-intersection-test/
+
** 25 multiple-choice AP-style questions, 1 hour
** Read above
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
** ...but wait...what about the corners? (Hint: Use our circle-circle collision resolution)
+
*# Upload your entire Minesweeper Processing folder to Google Drive (Documents -> Processing -> Minesweeper)
** http://flatredball.com/documentation/tutorials/math/circle-collision/
+
*# Submit a shared link to the Canvas assignment
* Brick Breaker description
+
 
*# Ball bounces around the screen and off of bricks and the paddle
+
== Tuesday (1/21/20) ==
*# Paddle that moves along the x-axis by following the mouse (lookup mouseX and mouseY)
+
'''Agenda:'''
*# Row of Bricks at the top of the screen
+
* 2nd Quarter Exam on '''Thursday (1/23/20)'''
*#* Bricks disappear if they are hit by the ball
+
** Topics: everything that we've done so far
*# Lose if ball goes past the bottom of the screen
+
** 25 multiple-choice AP-style questions, 1 hour
*# Win if all bricks are gone
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
* '''null''' keyword
+
 
* Arrays of objects
+
== Thursday (1/16/20) ==
** Object array instantiation (creation)
+
'''Agenda:'''
** Object array initialization
+
* Classes, Object Usage, and Object Arrays quiz
** Object array usage
+
* 2nd Quarter Exam on '''Thursday (1/23/20)'''
** Iteration through an object array
+
** Topics: everything that we've done so far
 +
** Timed multiple-choice
 +
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
 +
 
 +
'''Homework:'''
 +
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
  
== Friday (12/13/19) ==
+
== Tuesday (1/14/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Circle and Brick intersection test program
+
* Class construction quiz on '''Thursday (1/16/19)'''
** Create a small Processing program to test out the math between the intersection a circle and rectangle
+
* Objects & Arrays Quiz on '''Thursday (1/16/19)'''
** Use variables for everything
+
* ButtonGrid --> Simple [http://minesweeperonline.com/ Minesweeper]
** https://yal.cc/rectangle-circle-intersection-test/
+
** We will first create a single Button object that can be pressed in and out (pressed and depressed)
* Complete Brick class definition
+
*** What appropriate characteristics (instance variables) should we have for a Button?
* Brick Breaker description
+
*** What appropriate behaviors (methods) should we have for a Button?
*# Ball bounces around the screen and off of bricks and the paddle
+
** We will then create a row of Button objects that can be pressed in and out
*# Paddle that moves along the x-axis by following the mouse
+
** We will then create a simple grid of Button objects on the screen
*# Row of Bricks at the top of the screen
+
* Design and implement a simple version of Minesweeper
*#* Bricks disappear if they are hit by the ball
+
** What do you want to call each of the objects on the screen?
*# Lose if ball goes past the bottom of the screen
+
** What instance variables should they have?
*# Win if all bricks are gone
+
** What methods should they have?
 +
** What variables or data structures are necessary for our game?
 +
** What steps are necessary to setup and initialize the game?
 +
** How do you lose? and check for this?
 +
** How do you win? and check for this?
 +
* [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper specifications document]
  
== Monday - Wednesday (12/9/19 - 12/11/19) ==
+
== Friday (1/10/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Processing review
+
* Demonstrate a Brick Breaker game that uses arrays of objects
** Bouncing Ball
+
** Only one row of Bricks will give you partial credit
** Brick Breaker
+
** [][] two-dimensional array of objects gives you full credit (or a [] one-dimensional array able to track multiple rows)
* Class construction and object usage
+
** Challenge: implement a two-dimensional grid of Bricks using a single dimensional array (Hint: You determine row and column number from the object's index and how many Bricks are in a row)
** [https://repl.it/@paulbui/Ball-class-notes Ball class notes]
+
* ButtonGrid --> Simple [http://minesweeperonline.com/ Minesweeper]
** Brick objects for Brick Breaker
+
** We will first create a single Button object that can be pressed in and out (pressed and depressed)
*** What instance variables (attributes) should a Brick have?
+
*** What appropriate characteristics (instance variables) should we have for a Button?
*** What methods (behaviors) should a Brick have?
+
*** What appropriate behaviors (methods) should we have for a Button?
* Circle and Brick intersection test program
+
** We will then create a row of Button objects that can be pressed in and out
** Create a small Processing program to test out the math between the intersection a circle and rectangle
+
** We will then create a simple grid of Button objects on the screen
** Use variables for everything
+
* Design and implement a simple version of Minesweeper
* [https://drive.google.com/open?id=1ks5B3fsnGCX_utk_Adxt1cQtPtUsNtNVENb9swCaHpo Object usage slides]
+
** What do you want to call each of the objects on the screen?
* [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes slides]
+
** What instance variables should they have?
 +
** What methods should they have?
 +
** What variables or data structures are necessary for our game?
 +
** What steps are necessary to setup and initialize the game?
 +
** How do you lose? and check for this?
 +
** How do you win? and check for this?
 +
 
 +
== Wednesday (1/8/20) ==
 +
'''Warmup:'''
 +
# Take out a piece of paper
 +
# Draft the layout of one or more rows of Brick
 +
#* Include the x-y coordinates of each Brick
 +
#* Include the dimensions of the window, each Brick, and any gaps
 +
#* Number each Brick from 0, 1, 2, etc. horizontally (top-most left Brick is 0)
 +
# Find a pattern!
  
== Thursday (12/5/19) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
* Test 10 questions?
+
* for-loop initialization tricks
* Activity 12 check
+
* Two-dimensional for-loop tricks
* Coming soon...Processing review
+
* boolean checkWin(Brick[] bricks) method
** Bouncing Ball
+
** What are the different ways to determine if a we have cleared all the Brick objects?
** Brick Breaker
+
* Re-implement Brick Breaker such that it utilizes an array of Brick objects
 +
** Be sure to create a new sketch and do *not* to lose or overwrite your old program
 +
** Implement a one row of Brick in your object arrays Brick Breaker
 +
** Implement and demonstrate a multi-row Brick Breaker game that has winning and losing
  
== Tuesday (12/3/19) ==
+
== Monday (1/6/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Java Methods & Strings quiz
+
* Re-familiarize yourself with everything
* Repl.it reminder - all assignments should be completed by now
+
* [https://csteachers.org/page/csta-acm-cutler-bell-prize CSTA/ACM Cutler-Bell Scholarship]
* Multiple Variable Declarations
+
* Object-oriented programming review
* Overloaded Methods
+
* Brick Breaker (bad) demo and debrief
** Exercises & Examples
+
* '''null''' keyword review
** Why would we want to overload methods?
+
* Arrays of objects
* Complete Activity 12: Optional Arguments
+
** Object array instantiation (creation)
 +
** Object array initialization
 +
** Object array usage
 +
** Iteration through an object array
 +
* for-loop initialization tricks
 +
* Two-dimensional for-loop tricks
 +
* Re-implement Brick Breaker such that it utilizes an array of Brick objects
 +
** Be sure to create a new sketch and do *not* to lose or overwrite your old program
  
 +
== [[APCS - 1920 - December]] ==
 
== [[APCS - 1920 - November]] ==
 
== [[APCS - 1920 - November]] ==
 
== [[APCS - 1920 - October]] ==
 
== [[APCS - 1920 - October]] ==
 
== [[APCS - 1920 - September]] ==
 
== [[APCS - 1920 - September]] ==
 
== [[APCS - Archives]] ==
 
== [[APCS - Archives]] ==

Revision as of 09:16, 23 January 2020

Thursday (1/23/20)

Agenda:

  • Django Girls workshop
  • 2nd Quarter Exam
    • 25 multiple-choice AP-style questions, 1 hour
  • Complete Minesweeper
    1. Upload your entire Minesweeper Processing folder to Google Drive (Documents -> Processing -> Minesweeper)
    2. Submit a shared link to the Canvas assignment

Tuesday (1/21/20)

Agenda:

  • 2nd Quarter Exam on Thursday (1/23/20)
    • Topics: everything that we've done so far
    • 25 multiple-choice AP-style questions, 1 hour
  • Complete Minesweeper

Thursday (1/16/20)

Agenda:

  • Classes, Object Usage, and Object Arrays quiz
  • 2nd Quarter Exam on Thursday (1/23/20)
    • Topics: everything that we've done so far
    • Timed multiple-choice
  • Complete Minesweeper

Homework:

Tuesday (1/14/20)

Agenda:

  • Class construction quiz on Thursday (1/16/19)
  • Objects & Arrays Quiz on Thursday (1/16/19)
  • ButtonGrid --> Simple Minesweeper
    • We will first create a single Button object that can be pressed in and out (pressed and depressed)
      • What appropriate characteristics (instance variables) should we have for a Button?
      • What appropriate behaviors (methods) should we have for a Button?
    • We will then create a row of Button objects that can be pressed in and out
    • We will then create a simple grid of Button objects on the screen
  • Design and implement a simple version of Minesweeper
    • What do you want to call each of the objects on the screen?
    • What instance variables should they have?
    • What methods should they have?
    • What variables or data structures are necessary for our game?
    • What steps are necessary to setup and initialize the game?
    • How do you lose? and check for this?
    • How do you win? and check for this?
  • Minesweeper specifications document

Friday (1/10/20)

Agenda:

  • Demonstrate a Brick Breaker game that uses arrays of objects
    • Only one row of Bricks will give you partial credit
    • [][] two-dimensional array of objects gives you full credit (or a [] one-dimensional array able to track multiple rows)
    • Challenge: implement a two-dimensional grid of Bricks using a single dimensional array (Hint: You determine row and column number from the object's index and how many Bricks are in a row)
  • ButtonGrid --> Simple Minesweeper
    • We will first create a single Button object that can be pressed in and out (pressed and depressed)
      • What appropriate characteristics (instance variables) should we have for a Button?
      • What appropriate behaviors (methods) should we have for a Button?
    • We will then create a row of Button objects that can be pressed in and out
    • We will then create a simple grid of Button objects on the screen
  • Design and implement a simple version of Minesweeper
    • What do you want to call each of the objects on the screen?
    • What instance variables should they have?
    • What methods should they have?
    • What variables or data structures are necessary for our game?
    • What steps are necessary to setup and initialize the game?
    • How do you lose? and check for this?
    • How do you win? and check for this?

Wednesday (1/8/20)

Warmup:

  1. Take out a piece of paper
  2. Draft the layout of one or more rows of Brick
    • Include the x-y coordinates of each Brick
    • Include the dimensions of the window, each Brick, and any gaps
    • Number each Brick from 0, 1, 2, etc. horizontally (top-most left Brick is 0)
  3. Find a pattern!

Agenda:

  • for-loop initialization tricks
  • Two-dimensional for-loop tricks
  • boolean checkWin(Brick[] bricks) method
    • What are the different ways to determine if a we have cleared all the Brick objects?
  • Re-implement Brick Breaker such that it utilizes an array of Brick objects
    • Be sure to create a new sketch and do *not* to lose or overwrite your old program
    • Implement a one row of Brick in your object arrays Brick Breaker
    • Implement and demonstrate a multi-row Brick Breaker game that has winning and losing

Monday (1/6/20)

Agenda:

  • Re-familiarize yourself with everything
  • CSTA/ACM Cutler-Bell Scholarship
  • Object-oriented programming review
  • Brick Breaker (bad) demo and debrief
  • null keyword review
  • Arrays of objects
    • Object array instantiation (creation)
    • Object array initialization
    • Object array usage
    • Iteration through an object array
  • for-loop initialization tricks
  • Two-dimensional for-loop tricks
  • Re-implement Brick Breaker such that it utilizes an array of Brick objects
    • Be sure to create a new sketch and do *not* to lose or overwrite your old program

APCS - 1920 - December

APCS - 1920 - November

APCS - 1920 - October

APCS - 1920 - September

APCS - Archives