Difference between revisions of "IB Computer Science 2"

From WLCS
(Friday (11/20/15))
Line 15: Line 15:
 
*** searching for data
 
*** searching for data
 
*** clearing all data
 
*** clearing all data
 +
** Complete [[Media:LinkedList.java]]
 +
** Test using [[Media:LinkedListTestMain.java]]
  
 
== Wednesday (11/18/15) ==
 
== Wednesday (11/18/15) ==

Revision as of 11:55, 20 November 2015

Friday (11/20/15)

Wednesday (11/18/15)

Agenda:

  • Finish DynamicStack walk-through
  • Testing DynamicStack
  • Dynamically-sized Queues - complete by the end of today
    1. On paper, draw the before-and-after pictures for enqueue()'s 2 scenarios:
      1. enqueueing to an empty queue
      2. enqueueing to a non-empty queue
    2. Draw the before-and-after pictures for dequeue()'s 3 scenarios:
      1. dequeueing an empty queue
      2. dequeueing the very last node
      3. dequeueing normally when the queue has more than one node
    3. Write the dynamically-sized queue code
      1. Use a combination of the StaticQueue and DynamicStack as templates
        • i.e. implement all the methods from StaticQueue (except for isFull())
      2. Be sure to test your DynamicQueue like the DynamicStack

Monday (11/16/15)

Agenda:

  • Node Quiz!
  • Dynamically-sized Stacks
    • Data Structure Visualizations
    • Stack scenarios and Before-&-After pictures
      1. What are the possible behaviors of a stack?
      2. What does the picture look like Before?
      3. What does the picture look like After?
    • Create a new class called DynamicStack
    • What attribute must we keep track of when we talk about stacks?
    • Create a Node reference for the most important stack attribute
    • Implement void push(data) using Nodes.
      • push() should not return anything
      • push() creates a new Node with the data, and set the new Node's next reference to the top
      • Don't forget to update the top to be the new node!
    • Implement int pop() using Nodes
      • pop() removes the value on top of the stack, return it
      • pop() should also update the top
      • pop() returns null if the stack is empty
    • Implement isEmpty() which returns true if the stack is empty, and false otherwise
    • Implement print() which should print your entire stack from top down (to null)
    • TEST YOUR STACK
      • Be sure to push A LOT of data to test the dynamic size
      • Also test popping A LOT of data to make sure it works too

Thursday (11/12/15)

Agenda:

  • Stacks and Queues Quiz
  • IDT Programming Contest meeting today for team registrations
  • Dual Enrollment for NVCC CSC201
  • Node review
  • Node Quiz on Monday (11/16/15)
    • Be able to trace code and draw memory diagram
    • Be able to write code that creates a given memory diagram
  • Dynamically-sized Stacks
    • Data Structure Visualizations
    • Stack scenarios and Before-&-After pictures
      1. What are the possible behaviors of a stack?
      2. What does the picture look like Before?
      3. What does the picture look like After?
    • Create a new class called DynamicStack
    • What attribute must we keep track of when we talk about stacks?
    • Create a Node reference for the most important stack attribute
    • Implement void push(data) using Nodes.
      • push() should not return anything
      • push() creates a new Node with the data, and set the new Node's next reference to the top
      • Don't forget to update the top to be the new node!
    • Implement int pop() using Nodes
      • pop() removes the value on top of the stack, return it
      • pop() should also update the top
      • pop() returns null if the stack is empty
    • Implement isEmpty() which returns true if the stack is empty, and false otherwise
    • Implement print() which should print your entire stack from top down (to null)
    • TEST YOUR STACK
      • Be sure to push A LOT of data to test the dynamic size
      • Also test popping A LOT of data to make sure it works too

Monday (11/9/15)

Agenda:

Monday - Thursday (11/2/15 - 11/5/15)

Warmup:

  1. List and describe the stack operations (names of methods and what they do)
  2. List and describe the queue operations (names of methods and what they do)

Agenda:

Thursday (10/29/15)

Warmup:

  • List the typical stack operations
  • Be able to describe what they do

Agenda:

  • Stack review
  • Complete static-sized Stack class walk-through
    • Implement a Stack using a static data structure (e.g. array)
    • Test out our implementation to find weaknesses
    • Fix the weaknesses in our implementation
  • Queues - Media:Queues.ppt
  • Work on Java - Static Queue Assignment

Tuesday - Thursday (10/27/15 - 10/29/15)

Agenda:

  • Introduction to Stacks - Media:Stacks.ppt
    • 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
  • Data Structure Visualizations
  • Practice Stack Exercises
    1. Push the following words onto a stack: "Washington-Lee", "Generals", "Computer", "Science". What will the words be in the order of popping them all.
    2. Imagine that you are stuck in a dungeon. You are using a stack to keep track of your movements so that you can find your way back to the beginning of the dungeon. Diagram the stack after the following moves: forward, left, left, right, forward, forward, right, forward, left. Using your stack, what would the order of moves be to return back to your starting position?
    3. Assume you are given a list of numbers that you can only access one at a time in their order. Describe how you would use stacks to reverse their order
  • Static-sized Stack class walk-through
    • Implement a Stack using a static data structure (e.g. array)
    • Test out our implementation to find weaknesses
    • Fix the weaknesses in our implementation

Friday (10/23/15)

Agenda:

Wednesday (10/21/15)

Agenda:

Monday (10/19/15)

Agenda:

  • Volunteer & job opportunities for juniors or seniors (if interested, come see Mr. Bui):
    • Ms. Carlson (PTA member)
      • Requirement: HTML skills, general I.T. skills
      • Paid work on various projects for non-profit clients: voter registration, e-mail broadcasting, fundraising website maintenance, Facebook page maintenance
    • Mr. Goldstein (school board candidate)
      • Requirement: general I.T. skills
      • Volunteer work on various I.T. projects: e-mail broadcasting, data entry
  • VCU Computer Science Day (open house)
  • Demo the following:

Thursday (10/15/15)

Agenda:

  • Demo any missing assignments to Mr. Bui
  • Complete the Point class definition from last class
  • Define more static methods in PointMain.java:
    • double distance(Point p1, Point p2) - returns distance between p1 and p2
    • Point midPoint(Point p1, Point p2) - returns a new Point, which is the midpoint between p1 and p2
  • Test your new methods in the main(). Demonstrate the tests to Mr. Bui
  • Person class lab assignment
  • Car class lab assignment
  • Vector class lab assignment

Tuesday (10/13/15)

Agenda:

  • Demo missing assignments
  • IA Progress Assignment (due tomorrow!) - via Google Classroom
    1. You will upload any/all code or tutorial documentation to justify your progress on the Internal Assessment.
    2. You must submit at least 3 artifacts demonstrating Internal Assessment progress for full credit.
    3. You may include screenshots of tutorial completions (e.g. CodeAcademy).
    4. At the top of each file, annotate the code or screenshot, explaining what it is and how it is a reasonable artifact for your Internal Assessment
    5. You may upload multiple files. Be sure to include your name in each document.
    6. LATE submissions will be penalized
  • Java Functions/Methods Review
  • Java Objects
  • Point Class assignment walk-through
    1. You will create two java files: Point.java and PointMain.java
      • Point.java - the Point class definition will be here
      • PointMain.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 PointMain.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 PointMain.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

Thursday (10/8/15)

Agenda:

  • Demo Two-Dimensional Array Assignment

Tuesday (10/6/15)

Agenda:

  • Search and sort quiz
  • Two-Dimensional Array Assignment
    1. Write a function: matrixAdd(a, b) that returns a new matrix that is the sum of a and b
      • Be sure to check if the two matrices are the same size (if not, then return null)
    2. Write a function: fliplr(m) that returns a new matrix that is the horizontal flip (left to right) of matrix m
    3. Write a function: flipud(m) that returns a new matrix that is the vertical flip (up to down) of matrix m
    4. Extra Credit: Write a function: matrixMult(a, b) that returns the product of matrix a and b
      • Be sure to check the rules of matrix multiplication
      • Return an null matrix if their sizes are different
  • Challenge: Write the function det(m) which returns the determinant of any matrix m

Friday (10/2/15)

Warmup:

Agenda:

  • Demo both selection sort and bubble sort
  • Media:Sorting.pptx
  • Quicksort discussion
  • Search and sort quiz next Tuesday (10/6/15). Be able to describe the step-by-step algorithm
    • Linear search
    • Binary search
    • Selection sort
    • Bubble sort
  • Reference variables overview
  • Two-Dimensional Arrays and Nested Loops
    1. Accessing all of the individual elements of a two-dimensional list
    2. Prompt the user to construct a two-dimensional list
      1. Prompt for the number of rows
      2. Prompt for the number of columns
      3. Prompt the user for each number in the two-dimensional list
    3. Write the function matrixPrint(m)
  • Two-Dimensional Array Assignment
    1. Write a function: matrixAdd(m1, m2) that returns a new matrix that is the sum of m1 and m2
      • Be sure to check if the two matrices are the same size (if not, then return null)
    2. Write a function: matrixMult(m1, m2) that returns the product of matrix m1 and m2
      • Be sure to check the rules of matrix multiplication
      • Return an null matrix if their sizes are different

Archives