Difference between revisions of "IB Computer Science 2"

From WLCS
(Thursday (9/19/19))
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
== Thursday (9/19/19) ==
 +
'''Agenda:'''
 +
* Class Construction Quiz
 +
* Intro Poker Hand Methods
 +
** int getHighCardValue(Card c0, Card c1, Card c2, Card c3, Card c4)
 +
*** returns the value of the highest Card
 +
** Do not continue with the other poker hand methods like above b/c we will be making new versions using arrays!
 +
* Introduction to Arrays of Objects
 +
** Walkthrough -- take notes!  Pay attention!
 +
* String[] arrays
 +
** String comparison methods review
 +
** Sort a String[]
 +
* Basic Card[] methods - implement the following, test, and demo for credit
 +
** void printCards(Card[] cards)
 +
*** Use a for loop to iterate through all the cards, and print them to the screen
 +
** void shuffle(Card[] cards)
 +
**# Write a for loop that runs a bunch of times (e.g. 10000)
 +
**# Generate two random numbers from 0 to the length of cards
 +
**# Swap the cards at the locations of the two random numbers
 +
** void sort(Card[] cards)
 +
*** Implement either selection sort or bubble sort to sort your Card[] array.  You can literally copy and paste your sorting code from before, and then tweak it to use the value of the cards (i.e. getValue())
 +
*** You should be able to test your code by generating a bunch of cards, sorting it, and then printing it out.  They should display in order of value.
 +
 +
== Tuesday (9/17/19) ==
 +
'''Agenda:'''
 +
* Algorithm Identification Quiz 1
 +
* Sorting Identification Quiz 1
 +
* Class Construction Quiz on '''Thursday (9/19/19)'''
 +
* Repl.it class construction assignments progress check
 +
* Intro Poker Hand Methods
 +
** int getHighCardValue(Card c0, Card c1, Card c2, Card, c3, Card c4)
 +
*** returns the value of the highest Card
 +
** Do not continue with the other poker hand methods like above b/c we will be making new versions using arrays!
 +
* Introduction to Arrays of Objects
 +
** Walkthrough -- take notes!  Pay attention!
 +
* Basic Card[] methods - implement the following, test, and demo for credit
 +
** void printCards(Card[] cards) - we will do this one together
 +
*** Use a for loop to iterate through all the cards, and print them to the screen
 +
** void shuffle(Card[] cards)
 +
**# Write a for loop that runs a bunch of times (e.g. 10000)
 +
**# Generate two random numbers from 0 to the length of cards
 +
**# Swap the cards at the locations of the two random numbers
 +
** void sort(Card[] cards)
 +
*** Implement either selection sort or bubble sort to sort your Card[] array.  You can literally copy and paste your sorting code from before, and then tweak it to use the value of the cards (i.e. getValue())
 +
*** You should be able to test your code by generating a bunch of cards, sorting it, and then printing it out.  They should display in order of value.
 +
 +
== Friday (9/13/19) ==
 +
'''Agenda:'''
 +
* Search & Sorting Algorithms Quiz on '''Tuesday (9/17/19)'''
 +
** You should be able to identify the algorithm visually
 +
** You should be able to identify the algorithm if given code
 +
** You should be able to fill in missing lines of code for any algorithms
 +
* Java Objects Slides
 +
** [https://docs.google.com/presentation/d/1hb_8wMUlQQl7W-JF2f3gax021yDHLkLENJYy0fUMGy8/edit?usp=sharing Classes (Java) slides]
 +
** [https://docs.google.com/presentation/d/1ks5B3fsnGCX_utk_Adxt1cQtPtUsNtNVENb9swCaHpo/edit?usp=sharing Object Usage (Java) slides]
 +
** [https://docs.google.com/presentation/d/1Vq2mTZRJIBkwpsHqFmKRICpUOoqOOSKSyRKWMGKZovY/edit?usp=sharing Object-Oriented Programming (Java) slides]
 +
* Point class assignment - complete in NetBeans or repl.it (*must* submit to repl.it for auto-testing)
 +
*# You will create two java files: '''Point.java''' and '''Main.java'''
 +
*#* '''Point.java''' - the Point class definition will be here
 +
*#* '''Main.java''' - only the main() method will be located here
 +
*# Declare and initialize the following '''private''' attributes in the Point class
 +
*#* double x = 0.0
 +
*#* double y = 0.0
 +
*# Define two Point() constructors:
 +
*#* default constructor: Point()
 +
*#* specific constructor Point(double newX, double newY)
 +
*# Define the following '''public''' methods in the Point class
 +
*#* double getX() - returns the x-coordinate
 +
*#* double getY() - returns the y-coordinate
 +
*#* void setX(double newX) - sets the x-coordinate to the new x-coordinate parameter
 +
*#* void setY(double newY) - sets the y-coordinate to the new y-coordinate parameter
 +
*#* String toString() - returns a String representation of the Point object
 +
*# Go to your Main.java file to test out your Point class
 +
*# In the main method, create several new instances of Point objects
 +
*# Print out each of your Point objects
 +
*# Define a static method in Main.java named '''double slope(Point p1, Point p2)''' - returns the slope between p1 and p2
 +
*# Test and print out your slope method when you use it with your instantiated Point objects in the main() method
 +
* Complete the other repl.it assignments:
 +
** Car class
 +
** Vector class
 +
** Card class
 +
 +
== Wednesday (9/11/19) ==
 +
'''Agenda:'''
 +
* Group sorting activity
 +
*# Form 3-4 person groups
 +
*# Receive playing cards
 +
*# With your group, document an algorithm (steps) of how you sort the cards out
 +
*# Paste your numbered steps in the appropriate document:
 +
*#* [https://docs.google.com/document/d/1ydtes6Vppf66Xk1z2yC2N_kom2OnjdrAfmeWh9_4t70/edit?usp=sharing Period 4]
 +
*#* [https://docs.google.com/document/d/1RFuWUM8vp-U3B3bdzEz8XI1f7-fWK1eTuFKdMjQ7Vro/edit?usp=sharing Period 6]
 +
* Introduction to Sorting
 +
** [https://docs.google.com/presentation/d/1Y5JOINM2w744nqimZf2iVuFpi6N6gM2B7GM4ArGjChQ/edit?usp=sharing Sorting slides]
 +
* Selection sort assignment in repl.it
 +
* Bubble sort assignment in repl.it
 +
* Internal Assessment meetings
 +
 +
'''Challenge:'''
 +
* Implement quick sort yourself
 +
 +
'''Homework:'''
 +
* Complete both Selection Sort and Bubble Sort
 +
 +
== Monday (9/9/19) ==
 +
'''Warmup:'''
 +
* Complete the Find Min/Max repl.it
 +
 +
'''Agenda:'''
 +
* Submit Guessing Game to repl.it
 +
* [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Cheatsheet]
 +
* [https://docs.google.com/presentation/d/1L-tbBp51YuUoTWldXFBr6JGcyHF5sBy_flfPGiqlVAQ/edit?usp=sharing Java Methods]
 +
* [https://docs.google.com/a/apsva.us/presentation/d/1Ayzvd1q-6RwZKplUtLHDCCLyO5XIR5kyeKUi8-htErY/edit?usp=sharing Java Arrays]
 +
** Additional review material: [[Media:IntroArrays.ppt]]
 +
* [https://docs.google.com/presentation/d/1GLpwZbqLcyix2WHqS9lLJT3qCeIeWGQ9UDwr6f9VgoE/edit?usp=sharing Searching slides]
 +
** Linear (Sequential) Search
 +
** Binary Search
 +
** Complete the LS and BS repl.it assignments
 +
 +
'''Homework:'''
 +
* 1-2 sentence description of your Internal Assessment idea in Canvas
 +
 +
== Thursday (9/5/19) ==
 +
'''Warmup:'''
 +
* Complete the Student Survey in Canvas
 +
* Complete the Abstract Data Structures Pre-assessment in Canvas
 +
** Do not guess if you do not know the answer
 +
 +
'''Agenda:'''
 +
* [[IBCS2 Summer Assignment]] reminder - '''due Monday (9/9/19)'''
 +
* Misc Logistics:
 +
** Mr. Bui has C Lunch
 +
* [[IB Computer Science II Syllabus]]
 +
** Complete online syllabus agreement form by '''Monday (9/9/19)'''
 +
* Extra credit demonstrations?
 +
** Why did Mr. Bui give this task?
 +
* App Catalog (AirWatch) installers
 +
** Java installer(s)
 +
* Java Review - [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Cheatsheet]
 +
* Recreate the [[Guessing Game Assignment]] in Java
 +
** You can always refer to the [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Programming Cheatsheet]
 +
** This exercises should take you no more than 10-15 minutes
 +
* [[Internal Assessment]]
 +
** Read the [[Media:IBCS_InternalAssessmentGuidelines.pdf]]
 +
** Begin thinking/working on Criterion A
 +
* Repl.it classroom
 +
* Join our class: https://repl.it/classroom/invite/d4LbLcD
 +
 +
'''Homework:'''
 +
* [[IBCS2 Summer Assignment]] due '''Monday (9/9/19)'''
 +
* [[IB Computer Science II Syllabus]] agreement form by '''Monday (9/9/19)'''
 +
* Complete the Java guessing game assignment
 +
 
== Tuesday (9/3/19) ==
 
== Tuesday (9/3/19) ==
 
'''Agenda:'''
 
'''Agenda:'''
 
* [[IBCS2 Summer Assignment]] reminder - '''due Monday (9/9/19)'''
 
* [[IBCS2 Summer Assignment]] reminder - '''due Monday (9/9/19)'''
 +
** Update your profile's last name so that it follows the following naming convention: # - Last Name (please note the spacing)
 
* Re-introductions & attendance
 
* Re-introductions & attendance
 
** [https://docs.google.com/presentation/d/1Nzo-2anihJvunXw6plSr3pdw9mS26Mv0CZLT-inhGoc/edit?usp=sharing About Me]
 
** [https://docs.google.com/presentation/d/1Nzo-2anihJvunXw6plSr3pdw9mS26Mv0CZLT-inhGoc/edit?usp=sharing About Me]

Revision as of 12:34, 19 September 2019

Thursday (9/19/19)

Agenda:

  • Class Construction Quiz
  • Intro Poker Hand Methods
    • int getHighCardValue(Card c0, Card c1, Card c2, Card c3, Card c4)
      • returns the value of the highest Card
    • Do not continue with the other poker hand methods like above b/c we will be making new versions using arrays!
  • Introduction to Arrays of Objects
    • Walkthrough -- take notes! Pay attention!
  • String[] arrays
    • String comparison methods review
    • Sort a String[]
  • Basic Card[] methods - implement the following, test, and demo for credit
    • void printCards(Card[] cards)
      • Use a for loop to iterate through all the cards, and print them to the screen
    • void shuffle(Card[] cards)
      1. Write a for loop that runs a bunch of times (e.g. 10000)
      2. Generate two random numbers from 0 to the length of cards
      3. Swap the cards at the locations of the two random numbers
    • void sort(Card[] cards)
      • Implement either selection sort or bubble sort to sort your Card[] array. You can literally copy and paste your sorting code from before, and then tweak it to use the value of the cards (i.e. getValue())
      • You should be able to test your code by generating a bunch of cards, sorting it, and then printing it out. They should display in order of value.

Tuesday (9/17/19)

Agenda:

  • Algorithm Identification Quiz 1
  • Sorting Identification Quiz 1
  • Class Construction Quiz on Thursday (9/19/19)
  • Repl.it class construction assignments progress check
  • Intro Poker Hand Methods
    • int getHighCardValue(Card c0, Card c1, Card c2, Card, c3, Card c4)
      • returns the value of the highest Card
    • Do not continue with the other poker hand methods like above b/c we will be making new versions using arrays!
  • Introduction to Arrays of Objects
    • Walkthrough -- take notes! Pay attention!
  • Basic Card[] methods - implement the following, test, and demo for credit
    • void printCards(Card[] cards) - we will do this one together
      • Use a for loop to iterate through all the cards, and print them to the screen
    • void shuffle(Card[] cards)
      1. Write a for loop that runs a bunch of times (e.g. 10000)
      2. Generate two random numbers from 0 to the length of cards
      3. Swap the cards at the locations of the two random numbers
    • void sort(Card[] cards)
      • Implement either selection sort or bubble sort to sort your Card[] array. You can literally copy and paste your sorting code from before, and then tweak it to use the value of the cards (i.e. getValue())
      • You should be able to test your code by generating a bunch of cards, sorting it, and then printing it out. They should display in order of value.

Friday (9/13/19)

Agenda:

  • Search & Sorting Algorithms Quiz on Tuesday (9/17/19)
    • You should be able to identify the algorithm visually
    • You should be able to identify the algorithm if given code
    • You should be able to fill in missing lines of code for any algorithms
  • Java Objects Slides
  • Point class assignment - complete in NetBeans or repl.it (*must* submit to repl.it for auto-testing)
    1. You will create two java files: Point.java and Main.java
      • Point.java - the Point class definition will be here
      • Main.java - only the main() method will be located here
    2. Declare and initialize the following private attributes in the Point class
      • double x = 0.0
      • double y = 0.0
    3. Define two Point() constructors:
      • default constructor: Point()
      • specific constructor Point(double newX, double newY)
    4. Define the following public methods in the Point class
      • double getX() - returns the x-coordinate
      • double getY() - returns the y-coordinate
      • void setX(double newX) - sets the x-coordinate to the new x-coordinate parameter
      • void setY(double newY) - sets the y-coordinate to the new y-coordinate parameter
      • String toString() - returns a String representation of the Point object
    5. Go to your Main.java file to test out your Point class
    6. In the main method, create several new instances of Point objects
    7. Print out each of your Point objects
    8. Define a static method in Main.java named double slope(Point p1, Point p2) - returns the slope between p1 and p2
    9. Test and print out your slope method when you use it with your instantiated Point objects in the main() method
  • Complete the other repl.it assignments:
    • Car class
    • Vector class
    • Card class

Wednesday (9/11/19)

Agenda:

  • Group sorting activity
    1. Form 3-4 person groups
    2. Receive playing cards
    3. With your group, document an algorithm (steps) of how you sort the cards out
    4. Paste your numbered steps in the appropriate document:
  • Introduction to Sorting
  • Selection sort assignment in repl.it
  • Bubble sort assignment in repl.it
  • Internal Assessment meetings

Challenge:

  • Implement quick sort yourself

Homework:

  • Complete both Selection Sort and Bubble Sort

Monday (9/9/19)

Warmup:

  • Complete the Find Min/Max repl.it

Agenda:

Homework:

  • 1-2 sentence description of your Internal Assessment idea in Canvas

Thursday (9/5/19)

Warmup:

  • Complete the Student Survey in Canvas
  • Complete the Abstract Data Structures Pre-assessment in Canvas
    • Do not guess if you do not know the answer

Agenda:

Homework:

Tuesday (9/3/19)

Agenda:

  • IBCS2 Summer Assignment reminder - due Monday (9/9/19)
    • Update your profile's last name so that it follows the following naming convention: # - Last Name (please note the spacing)
  • Re-introductions & attendance
  • IB Computer Science II Syllabus
  • Complete syllabus agreement assignment in Canvas by Monday (9/9/19)

IBCS2 - Archives