Difference between revisions of "IBCS2 - November"

From WLCS
(Removing all content from page)
Line 1: Line 1:
 +
== Tuesday (11/24/09) ==
 +
'''Agenda:'''
 +
* Dossier - Data Structures
 +
* [[Media:CriterionB1_dataStructures.doc]]
 +
* Demo your LinkedList AddressBook
 +
* Create 3 new classes called ContactBinaryTreeNode, ContactBinaryTree, and ContactBTTestMain
 +
** [[Media:BinaryTreeNode.java]]
 +
** [[Media:BinaryTree.java]]
 +
** [[Media:BinaryTreeTestMain.java]]
 +
* Convert the 3 given binary tree classes to use Contacts instead of ints
 +
* Create and demo a BinaryTreeAddressBook
  
 +
'''Homework:'''
 +
* Demo BinaryTreeAddressBook - due (Tuesday 12/1/09)
 +
* Dossier - Data Structures rough draft - due (Thursday 12/3/09)
 +
 +
== Friday (11/20/09) ==
 +
'''Agenda:'''
 +
* Demo your LinkedList AddressBook.  It should be able to do the following:
 +
** add a Contact
 +
** print list of Contacts
 +
** find a Contact
 +
** sort list of Contacts
 +
* Re-Introduction to Binary Tree
 +
** [[Media:BinaryTreeNode.java]]
 +
** [[Media:BinaryTree.java]]
 +
** [[Media:BinaryTreeTestMain.java]]
 +
* Create 3 new classes called ContactBTNode, ContactBinaryTree, and ContactBTTestMain
 +
* Convert the 3 given binary tree classes to use Contacts instead of ints
 +
 +
== Wednesday (11/18/09) ==
 +
'''Warmup:'''
 +
* What is the algorithm for a linear search?
 +
* What is the algorithm for a selection sort?
 +
* What is the algorithm for a bubble sort?
 +
 +
'''Agenda:'''
 +
* int find(String fn, String ln) in the ContactLinkedList
 +
** Add the find() option to your AddressBookMain and AddressBook
 +
** find() in the AddressBook should use the ContactLinkedList's find() and then ContactLinkedList's getContact()
 +
* void selectionSort() in the ContactLinkedList
 +
* You should move the bubbleSort() into the ContactLinkedList and complete the method yourself
 +
* Removing a Contact
 +
** Add a remove option to your AddressBookMain
 +
** Create a remove(String fn, String ln) method in your AddressBook
 +
** In the method, use the ContactLinkedList's find() method to get the index of the Contact
 +
** Check if the index is valid (not the error code), and if so, then use the ContactLinkedList's remove() method using that index
 +
* Demo a completely working AddressBook
 +
 +
== Monday (11/16/09) ==
 +
'''Warmup:'''
 +
* Open your Contact class and review the code
 +
 +
'''Agenda:'''
 +
* Contact class review as a class
 +
* Create a new class from your Node class and called ContactNode
 +
** Do this as a class...quickly
 +
* Create a new class called ContactLinkedList
 +
** Do this as a class...quickly
 +
* Convert your LinkedList to use ContactNode and call it ContactLinkedList
 +
** Go through one or two examples as a class
 +
* Be sure to test your ContactLinkedList
 +
* AddressBook class review as a class
 +
* Convert your AddressBook to use ContactLinkedList instead of an array
 +
** Comment out the parts for find(), selectionSort(), and bubbleSort().  We will convert these later
 +
** Be sure to test your AddressBook with LOTS of contacts
 +
 +
'''Homework:'''
 +
* Complete the AddressBook conversion over to ContactLinkedList by Wednesday (11/18/09)
 +
* Be ready to demo your AddressBookMain
 +
 +
== Thursday (11/12/09) ==
 +
'''Agenda:'''
 +
* Abstract data types review
 +
* Introduction to Binary Tree
 +
** [[Media:BinaryTreeNode.java]]
 +
** [[Media:BinaryTree.java]]
 +
** [[Media:BinaryTreeTestMain.java]]
 +
* Demo your 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 array
 +
** Comment out the methods for find(), selectionSort(), and bubbleSort().  We will convert these later
 +
** Be sure to test your AddressBook with LOTS of contacts
 +
 +
== Monday (11/9/09) ==
 +
'''Agenda:'''
 +
* Turn in homework
 +
* Demo DynamicQueue
 +
* Introduction to Linked Lists
 +
** [[Media:LinkedList.java]]
 +
** Attributes: head, tail, size
 +
** Constructors: default
 +
** Methods:
 +
*** isEmpty() - returns true if the LinkedList is empty, and false otherwise
 +
*** void add(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
 +
*** print() - traverses the LinkedList and prints out each Node's data
 +
** Create a main method to test out all the methods and scenarios of LinedList
 +
 +
'''Homework:'''
 +
* Complete the LinkedList class and all its methods by the beginning of class on Thursday (11/12/09)
 +
* Mr. Bui will give you his LinkedListMain on Thursday to test
 +
 +
== Thursday (11/5/09) ==
 +
'''Warmup:'''
 +
* 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
 +
 +
'''Agenda:'''
 +
* Return 1st Quarter Exams
 +
* Dynamically-sized Queues
 +
** Create a new class called DynamicQueue
 +
*** [[Media:DynamicQueue.java]]
 +
** Test out your DynamicQueue using the original QueueMain file
 +
* Introduction to Linked Lists
 +
** [[Media:LinkedList.java]]
 +
** Attributes: head, tail, size
 +
** Constructors: default
 +
** Methods:
 +
*** isEmpty() - returns true if the LinkedList is empty, and false otherwise
 +
*** void add(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
 +
*** print() - traverses the LinkedList and prints out each Node's data
 +
 +
'''Homework:'''
 +
* Complete DynamicQueue!
 +
* Draw the before-and-after diagrams (all SIX scenarios) for the LinkedList's remove() method
 +
 +
== Monday (11/2/09) ==
 +
'''Warmup:'''
 +
* Assume that you have allocated memory for a new int array of 10000 elements.  An int is 32-bits in size, and there are 8-bits in 1 byte.  How many bytes of memory are you taking up?
 +
* If there are 1024 bytes in a kilobyte, how many kilobytes are you taking up?
 +
 +
'''Agenda:'''
 +
* Dynamically-sized Stacks
 +
** Create a new class called DynamicStack
 +
*** [[Media:DynamicStack.java]]
 +
** 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
 +
 +
== Archives ==
 +
* [[IBCS2 - May]]
 +
* [[IBCS2 - April]]
 +
* [[IBCS2 - March]]
 +
* [[IBCS2 - February]]
 +
* [[IBCS2 - January]]
 +
* [[IBCS2 - December]]
 +
* [[IBCS2 - November]]
 +
* [[IBCS2 - October]]
 +
* [[IBCS2 - September]]

Revision as of 13:09, 6 May 2010

Tuesday (11/24/09)

Agenda:

Homework:

  • Demo BinaryTreeAddressBook - due (Tuesday 12/1/09)
  • Dossier - Data Structures rough draft - due (Thursday 12/3/09)

Friday (11/20/09)

Agenda:

  • Demo your LinkedList AddressBook. It should be able to do the following:
    • add a Contact
    • print list of Contacts
    • find a Contact
    • sort list of Contacts
  • Re-Introduction to Binary Tree
  • Create 3 new classes called ContactBTNode, ContactBinaryTree, and ContactBTTestMain
  • Convert the 3 given binary tree classes to use Contacts instead of ints

Wednesday (11/18/09)

Warmup:

  • What is the algorithm for a linear search?
  • What is the algorithm for a selection sort?
  • What is the algorithm for a bubble sort?

Agenda:

  • int find(String fn, String ln) in the ContactLinkedList
    • Add the find() option to your AddressBookMain and AddressBook
    • find() in the AddressBook should use the ContactLinkedList's find() and then ContactLinkedList's getContact()
  • void selectionSort() in the ContactLinkedList
  • You should move the bubbleSort() into the ContactLinkedList and complete the method yourself
  • Removing a Contact
    • Add a remove option to your AddressBookMain
    • Create a remove(String fn, String ln) method in your AddressBook
    • In the method, use the ContactLinkedList's find() method to get the index of the Contact
    • Check if the index is valid (not the error code), and if so, then use the ContactLinkedList's remove() method using that index
  • Demo a completely working AddressBook

Monday (11/16/09)

Warmup:

  • Open your Contact class and review the code

Agenda:

  • Contact class review as a class
  • Create a new class from your Node class and called ContactNode
    • Do this as a class...quickly
  • Create a new class called ContactLinkedList
    • Do this as a class...quickly
  • Convert your LinkedList to use ContactNode and call it ContactLinkedList
    • Go through one or two examples as a class
  • Be sure to test your ContactLinkedList
  • AddressBook class review as a class
  • Convert your AddressBook to use ContactLinkedList instead of an array
    • Comment out the parts for find(), selectionSort(), and bubbleSort(). We will convert these later
    • Be sure to test your AddressBook with LOTS of contacts

Homework:

  • Complete the AddressBook conversion over to ContactLinkedList by Wednesday (11/18/09)
  • Be ready to demo your AddressBookMain

Thursday (11/12/09)

Agenda:

  • Abstract data types review
  • Introduction to Binary Tree
  • Demo your 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 array
    • Comment out the methods for find(), selectionSort(), and bubbleSort(). We will convert these later
    • Be sure to test your AddressBook with LOTS of contacts

Monday (11/9/09)

Agenda:

  • Turn in homework
  • Demo DynamicQueue
  • Introduction to Linked Lists
    • Media:LinkedList.java
    • Attributes: head, tail, size
    • Constructors: default
    • Methods:
      • isEmpty() - returns true if the LinkedList is empty, and false otherwise
      • void add(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
      • print() - traverses the LinkedList and prints out each Node's data
    • Create a main method to test out all the methods and scenarios of LinedList

Homework:

  • Complete the LinkedList class and all its methods by the beginning of class on Thursday (11/12/09)
  • Mr. Bui will give you his LinkedListMain on Thursday to test

Thursday (11/5/09)

Warmup:

  • 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

Agenda:

  • Return 1st Quarter Exams
  • Dynamically-sized Queues
    • Create a new class called DynamicQueue
    • Test out your DynamicQueue using the original QueueMain file
  • Introduction to Linked Lists
    • Media:LinkedList.java
    • Attributes: head, tail, size
    • Constructors: default
    • Methods:
      • isEmpty() - returns true if the LinkedList is empty, and false otherwise
      • void add(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
      • print() - traverses the LinkedList and prints out each Node's data

Homework:

  • Complete DynamicQueue!
  • Draw the before-and-after diagrams (all SIX scenarios) for the LinkedList's remove() method

Monday (11/2/09)

Warmup:

  • Assume that you have allocated memory for a new int array of 10000 elements. An int is 32-bits in size, and there are 8-bits in 1 byte. How many bytes of memory are you taking up?
  • If there are 1024 bytes in a kilobyte, how many kilobytes are you taking up?

Agenda:

  • 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

Archives