Difference between revisions of "IB Computer Science 2"

From WLCS
(Wednesday (9/25/19))
Line 13: Line 13:
 
* [https://www.cs.usfca.edu/~galles/visualization/StackArray.html Stack array implementation]
 
* [https://www.cs.usfca.edu/~galles/visualization/StackArray.html Stack array implementation]
 
* Study the code in [[Media:Stack.java]] and [[Media:StackMain.java]]
 
* Study the code in [[Media:Stack.java]] and [[Media:StackMain.java]]
** Stack code walk-through.  We'll make a couple edits so it matches this [[https://www.cs.usfca.edu/~galles/visualization/StackArray.html Stack array implementation]
+
** Stack code walk-through.  We'll make a couple edits so it matches this [https://www.cs.usfca.edu/~galles/visualization/StackArray.html Stack array implementation]
 
* Stack quiz in your future...
 
* Stack quiz in your future...
  

Revision as of 10:21, 25 September 2019

Wednesday (9/25/19)

Agenda:

  • Here is a list of cards and the integer values to create them
  • Here are several test cases and the integer values to create them. Note, I'm only give you test cases for the first few poker hands, you should be able to create your own for the rest
  • Complete Poker Hands: Part 1
  • Complete Poker Hands: Part 2
  • Introduction to Stacks - Stacks slides
    • Be able to describe the characteristics of a stack
    • Be able to explain the operations of a stack
    • Be able to describe different stack applications
    • If given a list or an array, be able to explain their use as stacks
    • Be able to implement the programming code for a stack that uses an array
  • Stack array implementation
  • Study the code in Media:Stack.java and Media:StackMain.java
  • Stack quiz in your future...

Homework:

  • Complete Poker Hands: Part 1
  • Complete Poker Hands: Part 2

Monday (9/23/19)

Agenda:

  • 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.
  • Work on Poker Hands: Part 1
  • Work on Poker Hands: Part 2

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