Difference between revisions of "AP Computer Science"

From WLCS
(Tuesday (11/26/19))
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tuesday (11/26/19) ==
+
== Thursday (1/23/20) ==
'''Warmup:'''
 
* Complete the Java Methods Review Worksheet in Canvas
 
 
 
 
'''Agenda:'''
 
'''Agenda:'''
* Complete all missing assignments
+
* [https://djangogirls.org/arlington/ Django Girls workshop]
* Convert the following to methods (repl.its coming soon)
+
* 2nd Quarter Exam
** double sum(double[] nums) - returns the sum of the nums array
+
** 25 multiple-choice AP-style questions, 1 hour
** double min(double[] nums) - returns the minimum element from the nums array
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
** double max(double[] nums) - returns the maximum element from the nums array
+
*# Upload your entire Minesweeper Processing folder to Google Drive (Documents -> Processing -> Minesweeper)
** int linearSearch(double[] nums, double key) - returns the index of the element matching key from the nums array, return -1 if not found (uses linear/sequential search algorithm)
+
*# Submit a shared link to the Canvas assignment
** int binarySearch(double[] nums, double key) - returns the index of the element matching key from the nums array, return -1 if not found (uses binary search algorithm)
 
*** Be sure to sort the array at the beginning of the method (Hint: How did Mr. Bui do this in the repl.it assignment?)
 
* Java Methods & Strings quiz on '''Tuesday (12/3/19)'''
 
  
== Friday (11/22/19) ==
+
== Tuesday (1/21/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* AP Classroom: Unit 3 & Unit 4
+
* 2nd Quarter Exam on '''Thursday (1/23/20)'''
** If you did not score in the green, then you will be re-assigned the questions next week
+
** Topics: everything that we've done so far
** Take some time to go over your results and your questions
+
** 25 multiple-choice AP-style questions, 1 hour
* break keyword
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
* Introduction/Review of [https://docs.google.com/presentation/d/1L-tbBp51YuUoTWldXFBr6JGcyHF5sBy_flfPGiqlVAQ/edit?usp=sharing Methods]
 
** Methods examples
 
** return keyword
 
** static vs. non-static methods
 
* Complete Activity 11
 
* Complete Test 10
 
 
 
'''Homework:'''
 
* Complete any missing assignments or assignments that you did not finish in class
 
  
== Wednesday (11/20/19) ==
+
== Thursday (1/16/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* [https://www.youtube.com/user/udiprod More Sorting Videos]
+
* Classes, Object Usage, and Object Arrays quiz
* Complete Insertion sort repl.it
+
* 2nd Quarter Exam on '''Thursday (1/23/20)'''
* Complete the AP Classroom Progress Checks (these are timed!)
+
** Topics: everything that we've done so far
** Unit 3 (Boolean Expressions and if Statements) - 47 minutes
+
** Timed multiple-choice
** Unit 4 (Iteration) - 41 minutes
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
  
 
'''Homework:'''
 
'''Homework:'''
* Complete any assignments that you did not complete in class
+
* Complete [https://docs.google.com/document/d/184kTQrY-sIxX-OoIQp1z4bgQQ8tEddIXIxMrHvzaOf0/edit?usp=sharing Minesweeper]
  
== Monday (11/18/19) ==
+
== Tuesday (1/14/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* For loops quiz
+
* Class construction quiz on '''Thursday (1/16/19)'''
* [https://docs.google.com/presentation/d/1Y5JOINM2w744nqimZf2iVuFpi6N6gM2B7GM4ArGjChQ/edit?usp=sharing Sorting slides]
+
* Objects & Arrays Quiz on '''Thursday (1/16/19)'''
** Selection sort review
+
* ButtonGrid --> Simple [http://minesweeperonline.com/ Minesweeper]
** Bubble sort walk-through
+
** We will first create a single Button object that can be pressed in and out (pressed and depressed)
** Complete the Bubble sort repl.it
+
*** What appropriate characteristics (instance variables) should we have for a Button?
* Insertion sort
+
*** What appropriate behaviors (methods) should we have for a Button?
** Complete the insertion sort repl.it
+
** 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]
  
== Thursday (11/14/19) ==
+
== Friday (1/10/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Missing repl.its
+
* Demonstrate a Brick Breaker game that uses arrays of objects
* Enhanced for loop (for "each" loop / for "each & every" loop) review
+
** Only one row of Bricks will give you partial credit
** Examples and common pitfalls
+
** [][] two-dimensional array of objects gives you full credit (or a [] one-dimensional array able to track multiple rows)
** Complete the for loop vs enhanced for loop assignment in Canvas
+
** 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)
* Test 9 questions?
+
* ButtonGrid --> Simple [http://minesweeperonline.com/ Minesweeper]
* For loops (both types) quiz on '''Monday (11/18/19)'''
+
** We will first create a single Button object that can be pressed in and out (pressed and depressed)
* Group sorting activity
+
*** What appropriate characteristics (instance variables) should we have for a Button?
*# Form 3-4 person groups
+
*** What appropriate behaviors (methods) should we have for a Button?
*# Receive playing cards
+
** We will then create a row of Button objects that can be pressed in and out
*# With your group, document step-by-step an algorithm (steps) of how you sort the cards out
+
** We will then create a simple grid of Button objects on the screen
*# Every group will share their algorithm in class
+
* Design and implement a simple version of Minesweeper
*# Paste your sorting algorithm in this [https://docs.google.com/document/d/1Jh9Uz3FdomH2cB9VKUSTfL_BSluWEoROHmhwbpM_qaA/edit?usp=sharing group document] - Don't forget to put your names
+
** What do you want to call each of the objects on the screen?
* Introduction to Sorting
+
** What instance variables should they have?
** [https://docs.google.com/presentation/d/1Y5JOINM2w744nqimZf2iVuFpi6N6gM2B7GM4ArGjChQ/edit?usp=sharing Sorting slides]
+
** What methods should they have?
* Complete Selection sort assignment in repl.it
+
** 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?
  
== Tuesday (11/12/19) ==
+
== Wednesday (1/8/20) ==
'''Agenda:'''
+
'''Warmup:'''
* for loop review
+
# Take out a piece of paper
* Complete the 6 for loop repl.its:
+
# Draft the layout of one or more rows of Brick
** for loop - Linear Search (try attempting without looking at your previous code)
+
#* Include the x-y coordinates of each Brick
** for loop - Find Min/Max (try attempting without looking at your previous code)
+
#* Include the dimensions of the window, each Brick, and any gaps
** for loop - Binary Search (try attempting without looking at your previous code)
+
#* Number each Brick from 0, 1, 2, etc. horizontally (top-most left Brick is 0)
** for loop - Count Words
+
# Find a pattern!
** for loop - double[] Average
 
** for loop - Reverse String Print
 
* Enhanced for loop
 
** Examples and common pitfalls
 
** Complete the for loop vs enhanced for loop assignment in Canvas
 
* Complete eIMACS: Test 9
 
 
 
'''Homework:'''
 
* Complete the for loop repl.it exercises if you did not do so in class
 
* Complete Test 9 if you did not do so in class
 
* Read eIMACS: Methods->Static Methods before class
 
  
== Thursday (11/7/19) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
* Test 8 Questions?
+
* for-loop initialization tricks
* Activity 7 work time - go on to the repl.its if you have already completed these
+
* Two-dimensional for-loop tricks
* Complete the 3 for loop repl.its:
+
* boolean checkWin(Brick[] bricks) method
** for loop - Count Words
+
** What are the different ways to determine if a we have cleared all the Brick objects?
** for loop - double[] Average
+
* Re-implement Brick Breaker such that it utilizes an array of Brick objects
** for loop - Reverse String Print
+
** Be sure to create a new sketch and do *not* to lose or overwrite your old program
* Enhanced for loop
+
** Implement a one row of Brick in your object arrays Brick Breaker
** Examples and common pitfalls
+
** Implement and demonstrate a multi-row Brick Breaker game that has winning and losing
** Complete the for loop vs enhanced for loop assignment in Canvas
 
 
 
'''Homework:'''
 
* Complete any missing assignments above
 
  
== Monday (11/4/19) ==
+
== Monday (1/6/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Read the eIMACS chapter on for loops
+
* Re-familiarize yourself with everything
* Complete Test 8
+
* [https://csteachers.org/page/csta-acm-cutler-bell-prize CSTA/ACM Cutler-Bell Scholarship]
* Read the eIMACS chapter on for-each loops
+
* Object-oriented programming review
* Complete Activity 7: Checksums
+
* 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 - 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