Difference between revisions of "AP Computer Science"

From WLCS
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Thursday (12/5/19) ==
+
== Thursday (1/23/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Test 10 questions?
+
* [https://djangogirls.org/arlington/ Django Girls workshop]
* Activity 12 check
+
* 2nd Quarter Exam
* Processing review
+
** 25 multiple-choice AP-style questions, 1 hour
** Bouncing Ball
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
** Brick Breaker
+
*# Upload your entire Minesweeper Processing folder to Google Drive (Documents -> Processing -> Minesweeper)
 +
*# Submit a shared link to the Canvas assignment
  
== Tuesday (12/3/19) ==
+
== Tuesday (1/21/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Java Methods & Strings quiz
+
* 2nd Quarter Exam on '''Thursday (1/23/20)'''
* Repl.it reminder - all assignments should be completed by now
+
** Topics: everything that we've done so far
* Multiple Variable Declarations
+
** 25 multiple-choice AP-style questions, 1 hour
* Overloaded Methods
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
** Exercises & Examples
 
** Why would we want to overload methods?
 
* Complete Activity 12: Optional Arguments
 
  
 +
== 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 [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]
 +
 +
== Tuesday (1/14/20) ==
 +
'''Agenda:'''
 +
* Class construction quiz on '''Thursday (1/16/19)'''
 +
* Objects & Arrays Quiz on '''Thursday (1/16/19)'''
 +
* ButtonGrid --> Simple [http://minesweeperonline.com/ 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?
 +
* [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing 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 [http://minesweeperonline.com/ 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:'''
 +
# 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!
 +
 +
'''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
 +
* [https://csteachers.org/page/csta-acm-cutler-bell-prize 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 - 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