Difference between revisions of "AP Computer Science"

From WLCS
(Wednesday (2/5/20))
(Wednesday (2/5/20))
Line 8: Line 8:
 
'''Agenda:'''
 
'''Agenda:'''
 
* ArrayList Quiz on '''Friday 2/7/20'''
 
* ArrayList Quiz on '''Friday 2/7/20'''
* Card example
+
* [https://repl.it/@paulbui/Card-Example Card example]
 +
*# Create a new repl.it called ArrayList Card Practice
 +
*# Create a new file within the repl.it named Card.java
 +
*# Copy and paste Mr. Bui's incomplete Card.java file into yours
 
* public vs private
 
* public vs private
 
** examples
 
** examples

Revision as of 09:28, 5 February 2020

Wednesday (2/5/20)

Warmup:

  1. Write a Java program that creates an ArrayList<Double>
  2. Generate 100 random numbers (0 - 1000) and put them in your ArrayList
  3. Write a loop that finds the minimum and maximum values from your ArrayList
  4. Print them out

Agenda:

  • ArrayList Quiz on Friday 2/7/20
  • Card example
    1. Create a new repl.it called ArrayList Card Practice
    2. Create a new file within the repl.it named Card.java
    3. Copy and paste Mr. Bui's incomplete Card.java file into yours
  • public vs private
    • examples
  • ArrayList<Card> examples
    • Total the value of your hand
    • Finding the smallest Card (minimum)
    • Finding the largest Card (maximum)
    • Finding a card (i.e. search)
    • Sort your Cards
  • Expectation: you should be able to repeat any of the above with any object!

Monday (2/3/20)

Agenda:

  • ArrayList Quiz on Friday 2/7/20
  • Minesweeper demos
  • BrickBreaker w/ ArrayLists demos
  • AP CS Guide
    • Review Unit 7: ArrayList's Essential Knowledge
  • AP-expected algorithms:
    • Min/Max
    • Searching
      • Linear search
      • Binary search
    • Sorting
      • Selection sort
      • Insertion sort

Wednesday (1/29/20)

Agenda:

  • ArrayLists
    • Creating/instantiating an ArrayList
    • ArrayList methods
    • ArrayList traverals
      • regular for loop
      • enhanced for loop
    • ArrayList of primitives?
      • Wrapper classes (Integer, Double, Boolean)
  • Activity 16: On the Menu
  • BrickBreaker w/ ArrayLists
    1. Go back to your BrickBreaker game and save it as a new version
    2. Modify BrickBreaker so that it uses ArrayLists instead of arrays

Homework:

  • Activity 16: On the Menu
  • BrickBreaker w/ ArrayLists

Monday (1/27/20)

Agenda:

  • Read eIMACS: ArrayLists (all 12 pages that begins on page 181)
  • Complete Activity 16: On the Menu
  • BrickBreaker w/ ArrayLists
    1. Go back to your BrickBreaker game and save it as a new version
    2. Modify BrickBreaker so that it uses ArrayLists instead of arrays

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