Difference between revisions of "IB Computer Science 1"

From WLCS
 
(799 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tuesday - Wednesday (5/2/16 - 5/3/17) ==
+
== [[IBCS1 - Archives]] ==
'''Agenda:'''
 
* What you should have as of now:
 
** A BrickClassTest that defines a Brick class and declares and sets up a Brick[] (array)
 
** The draw() should loop through the Brick[] and display each brick
 
* Today, you should:
 
*# Create a new sketch named BrickBreaker or Breakout
 
*# Copy over the Brick class and its setup and display code
 
*# Copy over your Ball and Paddle from Ping
 
*# Go through the code and clean it up, making any necessary changes
 
*# Add a new method named checkBrickBottomCollision(Brick br, Ball ba)
 
*#* It should check if a Ball ba collides with a Brick br's bottom edge, return true and false accordingly
 
* Demonstrate your preliminary BrickBreaker/Breakout game for credit
 
 
 
== Friday - Monday (4/28/17 - 5/1/17) ==
 
'''Warmup:'''
 
* Look at the board's drawing
 
* Look at your nested for-loop that drew the bricks
 
* Determine a single for-loop that would calculate and generate the same brick coordinates as the nested for-loop
 
 
 
'''Agenda:'''
 
* Create a Brick class with all the appropriate attributes (x, y, w, h, c)
 
* Your Brick class should have default and specific constructors
 
* Implement the Brick class's display() method
 
* Create a BrickClassTest sketch that does the following
 
*# Create a Brick[] named bricks
 
*# Setup your window
 
*# Within setup(), use a for-loop to initialize all the Brick objects in the Brick array
 
*# Within draw(), use a for-loop to display all the bricks
 
 
 
== Wednesday - Thurdsay (4/26/17 - 4/27/17) ==
 
'''Warmup:'''
 
# Go to Google Classroom
 
# Complete the Breakout prompt: List the major functional requirements of the game Breakout
 
#* e.g. A moving paddle that responds to user input
 
#* e.g. A moving ball that bounces at the edges
 
#* etc.
 
 
 
'''Agenda:'''
 
* [https://en.wikipedia.org/wiki/Breakout_(video_game) Breakout]
 
** What do we already know how to do?
 
** What do we still need to figure out how to do?
 
* How to draw bricks efficiently
 
 
 
== Monday - Tuesday (4/24/17 - 4/25/17) ==
 
'''Agenda:'''
 
* Complete and demo [https://docs.google.com/document/d/19wbHYrxSwuMyAqVs9lSUSieNncnAZfs0liFqO6rbYQM/edit?usp=sharing OOP: Ping]
 
* Implement the advanced challenges in [https://docs.google.com/document/d/19wbHYrxSwuMyAqVs9lSUSieNncnAZfs0liFqO6rbYQM/edit?usp=sharing OOP: Ping]
 
 
 
== Thursday - Friday (4/20/17 - 4/21/17) ==
 
'''Agenda:'''
 
* Work on [https://docs.google.com/document/d/19wbHYrxSwuMyAqVs9lSUSieNncnAZfs0liFqO6rbYQM/edit?usp=sharing OOP: Ping]
 
 
 
== Tuesday - Wednesday (4/18/17 - 4/19/17) ==
 
'''Agenda:'''
 
* Object & classes review
 
* Emoji Assignment
 
*# Add a new mood to your Emoji class
 
*# In the main setup() and draw(), create multiple Emoji objects of different sizes, colors, and moods at different locations on the screen.
 
*# Display and demo your program to Mr. Bui
 
* Begin working on [https://docs.google.com/document/d/19wbHYrxSwuMyAqVs9lSUSieNncnAZfs0liFqO6rbYQM/edit?usp=sharing OOP: Ping]
 
 
 
== Monday - Friday (4/10/17 - 4/14/17) ==
 
* Spring Break!
 
 
 
== Friday (4/7/17) ==
 
'''Agenda:'''
 
* Emoji Assignment
 
*# Add a new mood to your Emoji class
 
*# In the main setup() and draw(), create multiple Emoji objects of different sizes, colors, and moods at different locations on the screen.
 
*# Display and demo your program to Mr. Bui
 
* Ping w/ Objects
 
*# Convert your Ping game so that it uses objects
 
*# Create a new sketch named PingWithObjects
 
*# Copy and paste your Ball class into a new tab in the sketch (separate classes should be in separate tabs)
 
*# Create a new class in a new tab named Paddle
 
*# Move the Ping paddle attribute variables to the Paddle class
 
*# Create a default constructor in the Paddle class
 
*# Add methods moveLeft() and moveRight() to the Paddle class
 
*# Complete and demo the PingWithObjects conversion
 
 
 
== Wednesday - Thursday (4/5/17 - 4/6/17) ==
 
'''Agenda:'''
 
* Introduction to Objects Review
 
** Emoji class walk-through
 
* Object & Class Rules
 
*# Separate classes in separate tabs or files
 
*# Capitalize class names (e.g. Ball, Emoji)
 
*# Remember to indent!
 
*# Order of sections:
 
*#* attributes
 
*#* constructors
 
*#* methods
 
*# All class constructors and methods can access attributes
 
*# Use common sense to organize which code happens in which methods (i.e. each method has a specific purpose, and it should only worry about that purpose)
 
* Default constructor vs "specific" constructors
 
** [https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html Oracle Java Constructor Tutorial]
 
* Ping w/ Objects
 
*# Convert your Ping game so that it uses objects
 
*# Create a new sketch named PingWithObjects
 
*# Copy and paste your Ball class into a new tab in the sketch (separate classes should be in separate tabs)
 
*# Create a new class in a new tab named Paddle
 
*# Move the Ping paddle attribute variables to the Paddle class
 
*# Create a default constructor in the Paddle class
 
*# Add methods moveLeft() and moveRight() to the Paddle class
 
*# Complete and demo the PingWithObjects conversion
 
 
 
== Monday - Tuesday (4/3/17 - 4/4/17) ==
 
'''Agenda:'''
 
* Complete and demo [https://docs.google.com/document/d/1ZoXB12Md1zbG_liXn1yfIDosZ2p9i2ZqqsU4Hx8WV5A/edit?usp=sharing OOP: My First Object]
 
* Challenge: Create the Multiple Bouncing Balls using an array of Ball objects
 
* Ping w/ Objects
 
*# Convert your Ping game so that it uses objects
 
*# Create a new sketch named PingWithObjects
 
*# Copy and paste your Ball class into a new tab in the sketch (separate classes should be in separate tabs)
 
*# Create a new class in a new tab named Paddle
 
*# Move the Ping paddle attribute variables to the Paddle class
 
*# Create a default constructor in the Paddle class
 
*# Add methods moveLeft() and moveRight() to the Paddle class
 
*# Complete and demo the PingWithObjects conversion
 
 
 
== Archives ==
 
* [[IBCS1 - 1617 - March]]
 
* [[IBCS1 - 1617 - February]]
 
* [[IBCS1 - 1617 - January]]
 
* [[IBCS1 - 1617 - December]]
 
* [[IBCS1 - 1617 - November]]
 
* [[IBCS1 - 1617 - October]]
 
* [[IBCS1 - 1617 - September]]
 
* [[IBCS1 - 1516]]
 

Latest revision as of 08:28, 13 September 2023