IBCS2 - 1516 - October

From WLCS

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