Difference between revisions of "IB Computer Science 1"

From WLCS
Line 14: Line 14:
 
*# 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)
 
*# 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
 
* Default constructor vs "specific" constructors
 +
** [https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html Oracle Java Constructor Tutorial]
 
* Ping w/ Objects
 
* Ping w/ Objects
 
*# Convert your Ping game so that it uses objects
 
*# Convert your Ping game so that it uses objects

Revision as of 06:55, 6 April 2017

Wednesday - Thursday (4/5/17 - 4/6/17)

Agenda:

  • Introduction to Objects Review
    • Emoji class walk-through
  • Object & Class Rules
    1. Separate classes in separate tabs or files
    2. Capitalize class names (e.g. Ball, Emoji)
    3. Remember to indent!
    4. Order of sections:
      • attributes
      • constructors
      • methods
    5. All class constructors and methods can access attributes
    6. 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
  • Ping w/ Objects
    1. Convert your Ping game so that it uses objects
    2. Create a new sketch named PingWithObjects
    3. Copy and paste your Ball class into a new tab in the sketch (separate classes should be in separate tabs)
    4. Create a new class in a new tab named Paddle
    5. Move the Ping paddle attribute variables to the Paddle class
    6. Create a default constructor in the Paddle class
    7. Add methods moveLeft() and moveRight() to the Paddle class
    8. Complete and demo the PingWithObjects conversion

Monday - Tuesday (4/3/17 - 4/4/17)

Agenda:

  • Complete and demo OOP: My First Object
  • Challenge: Create the Multiple Bouncing Balls using an array of Ball objects
  • Ping w/ Objects
    1. Convert your Ping game so that it uses objects
    2. Create a new sketch named PingWithObjects
    3. Copy and paste your Ball class into a new tab in the sketch (separate classes should be in separate tabs)
    4. Create a new class in a new tab named Paddle
    5. Move the Ping paddle attribute variables to the Paddle class
    6. Create a default constructor in the Paddle class
    7. Add methods moveLeft() and moveRight() to the Paddle class
    8. Complete and demo the PingWithObjects conversion

Thursday - Friday (3/30/17 - 3/31/17)

Agenda:

Thursday - Wednesday (3/23/17 - 3/29/17)

Agenda:

  • Complete and demo Pong w/ arrays and multiple balls
  • Complete and demo Gravity Launcher w/ arrays and multiple balls

Tuesday - Wednesday (3/21/17 - 3/22/17)

Agenda:

  • Demo missing assignments
  • Convert Project: Pong (Mouse vs Keyboard) to Java AND use arrays so that there are multiple balls on the screen
    • You must change the gameplay! If a ball passes a player's paddle, then give that person a point. When there are no more balls on the screen, then the player with fewer points wins.
    • Note: If you do not have the Python code, then just get a copy from somebody who does
    • key is a char, so you need to use single quotes
    • hit() function must be edited to accept an input parameter i
  • Convert Animation: Gravity Ball with Mouse Launcher to Java AND use arrays so that there are multiple balls (of different sizes) launched
    • Note: If you do not have the Python code, then just get a copy from somebody who does
    • Challenge: Give each ball a different radius. Correlate the initial energy for each particular ball to the radius

Wednesday - Monday (3/15/17 - 3/20/17)

Agenda:

  • Demo missing assignments
  • Demo Java converted Media: Loading & Playing Sounds
  • Arrays in Java (~Lists)
    • Media:JavaArrays_Basic.ppt
    • Use of the [] brackets
    • Explicit declaration
    • Implicit declaration
      • Primitive types
      • Complex types
    • Multiple bouncing balls - create a version of the bouncing balls program in Java that uses arrays and has multiple balls moving on the screen
  • Convert Project: Pong (Mouse vs Keyboard) to Java AND use arrays so that there are multiple balls on the screen
    • You must change the gameplay! If a ball passes a player's paddle, then give that person a point. When there are no more balls on the screen, then the player with fewer points wins.
    • Note: If you do not have the Python code, then just get a copy from somebody who does
    • key is a char, so you need to use single quotes
    • hit() function must be edited to accept an input parameter i
  • Convert Animation: Gravity Ball with Mouse Launcher to Java AND use arrays so that there are multiple balls (of different sizes) launched
    • Note: If you do not have the Python code, then just get a copy from somebody who does

Tuesday (3/14/17)

  • Winter Storm Stella Snow Day

Friday - Monday (3/10/17 - 3/13/17)

Agenda:

Wednesday - Thursday (3/8/17 - 3/9/17)

Agenda:

Monday - Tuesday (3/6/17 - 3/7/17)

Agenda:

Wednesday - Friday (3/1/17 - 3/3/17)

Agenda:

  • Complete the File R/W (I/O) Exercises:
    1. Read a file with first and last names of people. Extract all their initials, such that first and last initials are combined per person (Paul Bui -> PB). Write/Output that list of initials to a file
    2. Write a program that generates a textfile with 10000 random numbers from 0-100
    3. Read a file with 10000 random numbers from 0 to 100. Print out the frequency of each of the numbers (Hint: Use a list to track the frequencies)

Archives