Difference between revisions of "AP Computer Science"
From WLCS
(89 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | == Tuesday (2/12/19) == |
− | * | + | '''Agenda:''' |
− | ** | + | * Class construction, object usage, & object arrays quiz |
− | ** | + | * Complete and demo War Card "Game"/Simulation |
− | * | + | ** Display how many cards each player has at the beginning of each round |
+ | ** You should display messages like "Player 1 reveals X of X" | ||
+ | ** Display a message of who wins each "round" | ||
+ | ** Display "I declare war!" | ||
+ | ** Display the eventual winner | ||
− | == | + | == Wednesday - Friday (2/6/19 - 2/8/19) == |
'''Agenda:''' | '''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:''' | '''Agenda:''' | ||
− | + | * Demo Item Collection Game w/ Object Arrays | |
− | * Demo | + | * 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:''' | '''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:''' | '''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 | ||
− | == Thursday ( | + | == Tuesday - Thursday (1/22/19 - 1/24/19) == |
'''Agenda:''' | '''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:''' | ||
+ | * Submit your Circle class to repl.it | ||
− | |||
'''Agenda:''' | '''Agenda:''' | ||
− | * | + | * Object-Oriented Programming cont'd |
− | * | + | ** OOP Review - attributes, constructors, setters, getters, public vs. private, this |
− | + | ** toString() method (using the Point class) | |
− | * | + | ** Submit Point class to repl.it |
− | * | + | ** [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides] |
− | + | * Complete the Car class assignments in repl.it | |
− | + | * [https://drive.google.com/file/d/1tQc3yOyfjy7xN6oz0glIeFHqJgORmuAd/view?usp=sharing Dino Game example] | |
− | + | ** Add another cactus to the dino game | |
− | + | ||
− | + | '''Homework:''' | |
− | * | + | * Complete eIMACS: Activity 14: Address Objects |
− | + | ||
− | + | == Tuesday (1/15/19) == | |
− | + | * Snow Day | |
− | * | ||
− | == Friday ( | + | == Friday (1/11/19) == |
'''Agenda:''' | '''Agenda:''' | ||
− | * | + | * Object-Oriented Programming cont'd |
− | * | + | ** Person class review |
− | * | + | ** 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:''' | ||
+ | * Create a Circle class and test it out | ||
+ | * Follow the [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides] | ||
− | == | + | == Wednesday (1/9/19) == |
'''Agenda:''' | '''Agenda:''' | ||
− | * [https:// | + | * Cornell Engineering Diversity Programs - one-week residential programs: |
− | * | + | ** [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 |
− | * Complete | + | * 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:''' | ||
+ | * Complete and submit recursion problems to repl.it | ||
+ | * Review SimpleProgramWithOOP notes that we did in class | ||
− | == | + | == 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 - December]] | ||
+ | * [[APCS - 1819 - November]] | ||
+ | * [[APCS - 1819 - October]] | ||
* [[APCS - 1819 - September]] | * [[APCS - 1819 - September]] | ||
* [[APCS - 1718]] | * [[APCS - 1718]] | ||
* [[APCS - 1516]] | * [[APCS - 1516]] |
Revision as of 07:03, 12 February 2019
Contents
- 1 Tuesday (2/12/19)
- 2 Wednesday - Friday (2/6/19 - 2/8/19)
- 3 Monday (2/4/19)
- 4 Thursday (1/31/19)
- 5 Tuesday (1/29/19)
- 6 Tuesday - Thursday (1/22/19 - 1/24/19)
- 7 Thursday (1/17/19)
- 8 Tuesday (1/15/19)
- 9 Friday (1/11/19)
- 10 Wednesday (1/9/19)
- 11 Monday (1/7/19)
- 12 Monday - Friday (12/31/18 - 1/4/19)
- 13 Archives
Tuesday (2/12/19)
Agenda:
- Class construction, object usage, & object arrays quiz
- Complete and demo War Card "Game"/Simulation
- Display how many cards each player has at the beginning of each round
- You should display messages like "Player 1 reveals X of X"
- Display a message of who wins each "round"
- Display "I declare war!"
- Display the eventual winner
Wednesday - Friday (2/6/19 - 2/8/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
- Attributes:
Tuesday - Thursday (1/22/19 - 1/24/19)
Agenda:
- Dino Game example
- We will convert the non-OOP version into an 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 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:
- Submit your Circle class to repl.it
Agenda:
- Object-Oriented Programming cont'd
- OOP Review - attributes, constructors, setters, getters, public vs. private, this
- toString() method (using the Point class)
- Submit Point class to repl.it
- Classes (Java) slides
- Complete the Car class assignments in repl.it
- Dino Game example
- Add another cactus to the dino game
Homework:
- Complete eIMACS: Activity 14: Address Objects
Tuesday (1/15/19)
- Snow Day
Friday (1/11/19)
Agenda:
- Object-Oriented Programming cont'd
- Person class review
- Vocab:
- class vs object
- declaration vs instantiation
- Point class example
- Point object instantiation
- Point object usage
- Classes (Java) slides
- Circle class example
- Dino Game example
Homework:
- Create a Circle class and test it out
- Follow the Classes (Java) slides
Wednesday (1/9/19)
Agenda:
- Cornell Engineering Diversity Programs - one-week residential programs:
- Catalyst Academy - juniors and seniors from underrepresented backgrounds
- 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
- Simple program without OOP example
- Simple program with OOP example
- Point class example
- Point object instantiation
- Point object usage
- Classes (Java) slides
- Circle class example
Homework:
- Complete and submit recursion problems to repl.it
- Review SimpleProgramWithOOP notes that we did in class
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