IB Computer Science 2

From WLCS
Revision as of 12:05, 18 November 2010 by Admin (talk | contribs)

Thursday (11/18/10)

Warmup:

  • Look at the board, identify the invalid node in each binary tree. Where should the invalid node go in order for the tree to be valid?

Agenda:

  • Review setters/getters
  • Review using methods of objects
  • Complete and demo a working AddressBook that uses LinkedList
  • How do we add sorting to our AddressBook?
  • Binary Trees!

Tuesday (11/16/10)

Warmup:

  1. Create a new class named ContactNode
  2. It should have two attributes:
    • Contact c = null
    • ContactNode next = null;
  3. It should have two constructors
    • Default constructor: ContactNode()
    • Specific constructor: ContactNode(Contact newC)
  4. You should make setters and getters for the attributes

Agenda:

  • Create a new class called ContactLinkedList
  • Convert your LinkedList to use ContactNode and call it ContactLinkedList
  • Be sure to test your ContactLinkedList
  • AddressBook class review
  • Convert your AddressBook to use ContactLinkedList instead of Contact[] array
    • Be sure to test your AddressBook with LOTS of contacts
    • HINT: Use a loop to auto-create 100s of Contacts and auto-add them
  • Introduction to Binary Trees

Friday (11/12/10)

Agenda:

  • Demo your completed LinkedList
  • Contact class review
  • Create a new class from your Node class and called ContactNode
  • Create a new class called ContactLinkedList
  • Convert your LinkedList to use ContactNode and call it ContactLinkedList
  • Be sure to test your ContactLinkedList
  • AddressBook class review
  • Convert your AddressBook to use ContactLinkedList instead of Contact[] array
    • Be sure to test your AddressBook with LOTS of contacts
    • HINT: Use a loop to auto-create 100s of Contacts and auto-add them

Friday - Tuesday (11/5/10 - 11/9/10)

Agenda:

  • Demo Media:DynamicStack.java
  • Demo Media:DynamicQueue.java
  • Introduction to Linked Lists
    • Media:LinkedList.java
    • Attributes: head, tail, size
    • Constructors: default
    • Methods:
      • boolean isEmpty() - returns true if the LinkedList is empty, and false otherwise
      • void append(int num) - adds a new Node with num at the end of the LinkedList
      • void add(int num, int index) - adds a new Node with num at the index specified
        • There are FIVE different scenarios when you add a Node
        • DRAW the before-and-after pictures for all FIVE secenarios
      • int remove(int index) - removes the index-th Node and returns its data
        • There are SIX different scenarios when you remove a Node
      • int getNum(int index) - returns the num found at the index (HINT: you'll need to traverse the LinkedList)
      • int search(int num) - returns the index of the Node with num (returns -1 if num not in list)
      • void print() - traverses the LinkedList and prints out each Node's data
  • Test your LinkedList using Media:LinkedListTestMain.java

Wednesday (11/3/10)

Warmup:

  • Draw the memory diagram after the following code executes:
Node head = new Node(14);
Node tail = head;
tail.next = new Node(15);
tail = tail.next;
head.next.next = new Node(926);
tail = tail.next;
tail.next = new Node(3);
tail = tail.next;

Agenda:

  • Turn in your Prototype Solutions
  • Return all papers
  • Demo your Media:DynamicStack.java
  • 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 (11/2/10)

  • Teacher Work Day

Archives