Difference between revisions of "IB Computer Science 2"

From WLCS
Line 1: Line 1:
== Thursday (10/27/11) ==
+
== Thursday - Monday (10/27/11 - 10/31/11) ==
 
'''Agenda:'''
 
'''Agenda:'''
 
* Download and complete [[Media:LinkedList.java]]
 
* Download and complete [[Media:LinkedList.java]]
 
* Create your own main that tests out each of the Linked Lists's methods
 
* Create your own main that tests out each of the Linked Lists's methods
 +
  
 
== Tuesday (10/25/11) ==
 
== Tuesday (10/25/11) ==

Revision as of 13:46, 31 October 2011

Thursday - Monday (10/27/11 - 10/31/11)

Agenda:

  • Download and complete Media:LinkedList.java
  • Create your own main that tests out each of the Linked Lists's methods


Tuesday (10/25/11)

Agenda:

Friday (10/21/11)

Warmup:

  • List several methods of data collection (during the analysis stage of the software development cycle)
    • Discuss the advantages and disadvantages of each.

Agenda:

Homework:

Wednesday (10/19/11)

Warmup:

  • What does FIFO stand for?
  • What type of scenarios would we want to use a queue? Give examples.

Agenda:

Monday (10/17/11)

Warmup:

  • Draw what you think a Queue with numbers 8, 6, 7, 5 would look like using Nodes. Remember head and tail!
  • Draw what you think an empty Queue would look like. Remember head and tail!

Agenda:

  • Demo DynamicStack
  • Review Dynamic Queue
    • Memory diagrams for each method
    • Begin/Starting scenarios for each method
    • Draw the before-and-after pictures for adding a Node to an empty Queue (be sure to use head and tail!)
    • Draw the before and after pictures for adding a Node to a non-empty Queue
    • Draw the before-and-after pictures for removing a Node from an empty Queue
    • Draw the before and after pictures for removing a Node from a non-empty Queue
  • Complete and demo Media:DynamicQueue.java

Thursday (10/13/11)

Agenda:

  • Node References Quiz
  • Stack memory diagrams
  • Dynamically-sized Stacks
    • 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 push(int num) using Nodes.
      • push() should not return anything
      • push() creates a new Node with the num, and set the new Node's next reference to the top
      • Don't forget to update the top to be the new node!
    • Implement pop(), which should POP and return the value on top of the stack and update the top
    • Implement top(), which should just return the value on top of the stack
    • Implement isEmpty() which returns true if the stack is empty
    • Implement print() which should print your entire stack
    • TEST YOUR STACK USING MR. BUI'S STACK MAIN OR YOUR OWN MAIN METHOD
  • Review Dynamic Queue
    • Memory diagrams for each method
    • Begin/Starting scenarios for each method
    • Draw the before-and-after pictures for adding a Node to an empty Queue (be sure to use head and tail!)
    • Draw the before and after pictures for adding a Node to a non-empty Queue
    • Draw the before-and-after pictures for removing a Node from an empty Queue
    • Draw the before and after pictures for removing a Node from a non-empty Queue
  • Complete and demo Media:DynamicQueue.java

Tuesday (10/11/11)

Warmup:

  1. Obtain a whiteboard and marker
  2. Draw the memory diagram on the board
  3. Write the lines of code that would create the memory diagram

Agenda:

  • Node Review
  • Node references practice
    1. Pair up with somebody near you
    2. Each group will be given a memory diagram drawing from Mr. Bui
    3. Individually write the lines of code to create the memory diagram
    4. Compare your code with your partner's
    5. Go up to the board and present
  • Nodes Quiz on Thursday (10/13/11)
    • Be able to trace code and draw memory diagram
    • Be able to write code that creates a given memory diagram
  • Static vs. Dynamic
  • Dynamically-sized Stacks
    • 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 push(int num) using Nodes.
      • push() should not return anything
      • push() creates a new Node with the num, and set the new Node's next reference to the top
      • Don't forget to update the top to be the new node!
    • Implement pop(), which should POP and return the value on top of the stack and update the top
    • Implement top(), which should just return the value on top of the stack
    • Implement isEmpty() which returns true if the stack is empty
    • Implement print() which should print your entire stack
    • TEST YOUR STACK USING MR. BUI'S STACK MAIN OR YOUR OWN MAIN METHOD

Homework:

  • Node Quiz on Thursday (10/13/11)
    • Be able to trace code and draw memory diagram
    • Be able to write code that creates a given memory diagram

Thursday (10/6/11)

Warmup:

  • What does FIFO stand for?
  • When would you want to use a queue? Give an example
  • Assume the following queue operations have occurred:
    1. Add "Andrew"
    2. Add "Kyla"
    3. Add "JJ"
    4. Remove
    5. Add "Biniam"
    6. Remove
    7. What is left in the queue?

Agenda:

Tuesday (10/4/11)

Agenda:

Homework:

Friday (9/30/11)

Agenda:

  • Sorting Quiz
  • Introduction to Abstract Data Type (ADT)
  • Introduction to Data Structures
  • Stacks
  • Stack Practice
    1. After studying the stack code, you will attempt to re-create the Stack.java code
    2. Create a new Java project called StackPractice
    3. Download Media:EmptyStack.java
    4. Rename EmptyStack.java to Stack.java AND add it to your StackPractice project
    5. Download Media:StackMain.java and add it to your StackPractice project
    6. Fill in the code for all the empty stack methods
    7. Test your own stack code with StackMain.java

Homework:

  • Analyzing the Problem due Tuesday (10/4/11)
  • Quick Stack Quiz on Tuesday (10/4/11)

Wednesday (9/28/11)

Warmup:

  1. Repeatedly comparing adjacent elements and swapping them so that they are in the correct order. Which sort am I?
  2. Repeatedly look for the smallest thing currently in the collection and putting it aside. Which sort am I?

Agenda:

  • If you have no missing assignments, complete the optional survey.
  • Insertion Sort
    • From the very beginning...insert the value into the correct spot (there may need to be some shifting around)
  • Quick Sort
    1. Start with a partition (will be the entire list in the beginning)
    2. Pick an element at random. It will be the pivot value.
    3. Go through the list and values less than the pivot are put before it and values greater than the pivot will come after.
    4. The pivot also partitions the list into two sublists. Repeat steps 1-4 for each of the sub-lists.
  • Sorting Animations
  • Quicksort
  • Sorting Quiz this Friday (9/30/11)
    • Be able to explain each of the sorts
  • Work on your Analysis of the Problem
  • Demo missing assignments

Homework:

  • Sorting Quiz this Friday (9/30/11)
  • Analyzing the Problem due Tuesday (10/4/11)

Back to School Night (9/26/11)

Monday (9/26/11)

Agenda:

  • SelectionSort Review
  • Demo SelectionSort.java
  • Demo the sort option added to your AddressBook
  • Introduction to Bubble Sort
  1. Initialize the front to be the top or beginning of the array
  2. Now go to the bottom/end of the array
  3. Compare the two adjacent elements to see if they are in proper sequential order
    1. Swap the elements if they are out of order (bigger number to the left of smaller number)
  4. Move to the next pair of adjacent elements/numbers
  5. Repeat steps 3 and 4 until the smallest number has "floated" to the top/front
  6. After you traverse the entire array
    1. Move the front so that the sorted numbers are ignored
    2. Go back to the end of the array
    3. Repeat steps 2 through 6 for the unsorted part of the array

Homework:

  • Any leftover AddressBook demonstrations (including a sort option)
  • SelectionSort and BubbleSort
  • Analyzing the Problem due Tuesday (10/4/11)

Thursday (9/22/11)

Warmup:

  1. Form a group of 3 people
  2. Receive several playing cards from Mr. Bui
  3. Shuffle the cards
  4. Sort them in numerical order by repeatedly finding the smallest card and separating it

Agenda:

  • Introduction to Selection Sort
  1. Find the smallest element
  2. Move to the front of the array (swap with front)
  3. Repeat Steps 1&2, but ignoring the sorted front
if (str1.compareTo(str2) < 0)
{
  System.out.println(str1 + " goes before " + str2);
}
  • So inside your AddressBook, you'd have something like this:
if (myContacts[i].getLastName().compareTo(myContacts[j].getLastName()) < 0)

Friday - Tuesday (9/16/11 - 9/20/11)

Warmup:

Agenda:

  • Return Software Development Quizzes
    • Corrections for 1/2 partial credit (Turn in corrections by the end of the week)
  • Complete AddressBook class lab assignment by the end of class

Wednesday (9/14/11)

Warmup:

Agenda:

  • Java Review?
    • How does it all work?
    1. Create Java Classes (object blueprints)
    2. Create a separate main class with a main method. The main method can use other objects defined in classes.
  • Review Arrays
  • Array practice activities
    1. Create a new Java class named ArrayPractice1. Create an array of 10 Strings (Use names of students in the room). Using a for loop, print out all the Strings in the array.
    2. Create a new Java class named ArrayPractice2. Create an array of 10 integers (make a bunch of numbers up). Using a for loop and an if statement, print print out only numbers greater than 10.
    3. Create a new Java class named ArrayPractice3. Create an array of 10 integers. Using a for loop, calculate the sum and average.
  • AddressBook beginning walk-through
  • AddressBook class lab assignment

Homework:

  • Install the Java JDK on your computer (be sure to choose your corresponding operator system)
  • Install Eclipse Classic on your computer (be sure to choose your corresponding operator system on the right)
  • Test it out, and let Mr. Bui know if you run into problems

Monday - Wednesday (9/12/11 - 9/14/11)

Warmup:

  • Redo the Comfort Zone Survey
  • Be prepared to demo Contact
  • Cram for quiz (Hint: There is a question on almost every slide...lol!)

Agenda:

Homework:

  • Install the Java JDK on your computer (be sure to choose your corresponding operator system)
  • Install Eclipse Classic on your computer (be sure to choose your corresponding operator system on the right)
  • Test it out, and let Mr. Bui know if you run into problems


Tuesday - Thursday (9/6/11 - 9/8/11)

Warmup:

Agenda:

Homework:

Summer