IB Computer Science 2
From WLCS
Contents
Monday - Wednesday (10/21/19 - 10/23/19)
Agenda:
- Introduction to Linked Lists
- add(), insert()
- append()
- get()
- size()
- remove(), delete()
- find(), search()
- edit(), modify()
- We must be able to sketch everything!
- Java Linked List class
- Linked Lists article]
- 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
- Work on Record of Tasks today
- We will break apart the design into multiple assignments
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:
- Circular Queue walk-through
- Object and References Review
- Node class
- More Node Practice!
- Node Quiz on Wednesday (10/9/19)
- 2 questions
- If given code, you can draw a memory diagram illustration
- If given a memory diagram illustration, you can write the code to create it
- Dynamic Stack Visualization
- Dynamic stack walk-through
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:
- Watch https://www.youtube.com/watch?v=N8IeMYsdgAY for review
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
- What attributes of a queue should we keep track of?
- What happens to the tail when data is added?
- 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