Difference between revisions of "IB Computer Science 2"

From WLCS
Line 2: Line 2:
 
'''Agenda:'''
 
'''Agenda:'''
 
* Introduction to Linked Lists
 
* Introduction to Linked Lists
** If we did not have to follow any specific rules for adding/removing (queue) or pushing/popping (stack).  What typical methods would we want to create for a list type of data structure?
+
** add(), insert()
** How do we know if this list of operations is complete?  What do we need to know for the exam?
+
** append()
 +
** get()
 +
** size()
 +
** remove(), delete()
 +
** find(), search()
 +
** edit(), modify()
 
** We must be able to sketch everything!
 
** We must be able to sketch everything!
 
* Variations of Linked Lists - and all of the operations
 
* Variations of Linked Lists - and all of the operations

Revision as of 10:35, 21 October 2019

Monday (10/21/19)

Agenda:

  • Introduction to Linked Lists
    • add(), insert()
    • append()
    • get()
    • size()
    • remove(), delete()
    • find(), search()
    • edit(), modify()
    • We must be able to sketch everything!
  • Variations of Linked Lists - and all of the operations
    • Singly-linked
    • Doubly-linked
    • Circular
  • What situations or scenarios would we want doubly or circular linked lists?
    • You can think of anything you want!
  • Linked List Quiz on Friday (10/25/19)
  • Criterion B: Design introduction/discussion

Thursday (10/17/19)

Agenda:

  • Stacks and Queues Quiz w/ Nodes (Linked List implementation)
  • Internal Assessment: Criterion A: Planning due today in Canvas
  • Introduction to Linked Lists
    • If we did not have to follow any specific rules for adding/removing (queue) or pushing/popping (stack). What typical methods would we want to create for a list type of data structure?
    • How do we know if this list of operations is complete? What do we need to know for the exam?
    • We must be able to sketch everything!
  • Variations of Linked Lists - and all of the operations
    • Singly-linked
    • Doubly-linked
    • Circular

Friday (10/11/19)

Agenda:

  • Stacks and Queues Quiz w/ Nodes (Linked List implementation) on Thursday (10/17/19)
    • You must be able to graphically illustrate how to use Linked List nodes to implement stacks and queues (and all of their appropriate operations)
    • You must be able to describe/outline how to use Linked List nodes to implement stacks and queues (and all of their appropriate operations)
  • Internal Assessment: Criterion A: Planning
    • Draft due on Thursday 10/17/19 via Canvas
    • Check out the Internal Assessment resources link on the left! Especially the examples, rubric, etc!

Wednesday (10/9/19)

Warmup:

  • Draw a dynamic stack (using Nodes) that traces the following stack operations
    • push W
    • push L
    • push H
    • pop
    • push S
    • pop
    • push !

Agenda:

  • Dynamic Queue discussion
    • Walk-through and code creation
    • You should be able to illustrate the usage of linked list nodes to create a queue, enqueue and dequeue
    • You should be able to describe the steps of what happens to the nodes and their references as you enqueue and dequeue from the queue (including any special cases)
  • Queue (linked list implementation) visualization
  • Node Quiz
  • Stacks and Queues Quiz w/ Nodes (Linked List implementation) on Thursday (10/17/19)
    • You must be able to graphically illustrate how to use Linked List nodes to implement stacks and queues (and all of their appropriate operations)
    • You must be able to describe/outline how to use Linked List nodes to implement stacks and queues (and all of their appropriate operations)

Monday (10/7/19)

Agenda:

Thursday (10/3/19)

Agenda:

  • Complete Queue (array implementation) and submit to repl.it
  • If you have completed the Queue, then implement the circular queue data structure. Be sure you save as a new project or file and rename the class to CircularQueue. Do not overwrite your original queue code!
  • Mini queue quiz in the last 15 minutes of class

Homework:

Tuesday (10/1/19)

Agenda:

  • Stacks quiz
  • Submit your String Stack assignment to repl.it
  • Introduction to Queues - Queues slides
  • Play with the Queues Array Implementation
    1. What attributes of a queue should we keep track of?
    2. What happens to the tail when data is added?
    3. What happens to the head when data is removed?
  • Implement the Queue class and its methods:
    • Queue() constructors - use a default array size of 15
    • void enqueue(int data)
    • int dequeue()
    • void add(int data) - this method should only have one line of code!
    • int remove() - this method should only have one line of code!
    • boolean isEmpty()
    • boolean isFull()
    • int peek() - returns the head of the queue if it's not empty; Integer.MIN_VALUE otherwise
    • String toString()
  • Submit your queue (array implementation) to the repl.it assignment
  • Queue challenge: If you add() and remove() a bunch of times, eventually, your queue will fail to work because the head and tail will hit the end of the array. Prevent this from happening by making a "circular queue".

Homework:

  • Queue (array implementation) to repl.it

IBCS2 - 1920 - September

IBCS2 - Archives