IB Computer Science 2
From WLCS
Contents
- 1 Tuesday (10/25/11)
- 2 Friday (10/21/11)
- 3 Wednesday (10/19/11)
- 4 Monday (10/17/11)
- 5 Thursday (10/13/11)
- 6 Tuesday (10/11/11)
- 7 Thursday (10/6/11)
- 8 Tuesday (10/4/11)
- 9 Friday (9/30/11)
- 10 Wednesday (9/28/11)
- 11 Back to School Night (9/26/11)
- 12 Monday (9/26/11)
- 13 Thursday (9/22/11)
- 14 Friday - Tuesday (9/16/11 - 9/20/11)
- 15 Wednesday (9/14/11)
- 16 Monday - Wednesday (9/12/11 - 9/14/11)
- 17 Tuesday - Thursday (9/6/11 - 9/8/11)
- 18 Summer
Tuesday (10/25/11)
Agenda:
- Carney, Inc. - JamTech - October, 29th
- Turn in Criteria for Success!
- Peer Edits
- Demos
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:
- Dropbox, Google Docs, etc.
- Demo missing assignments
- Demo Media:DynamicQueue.java
- Work on Media:CriterionA2_criteriaforSuccess.doc
Homework:
- Media:CriterionA2_criteriaforSuccess.doc due Tuesday (10/25/11)
Wednesday (10/19/11)
Warmup:
- What does FIFO stand for?
- What type of scenarios would we want to use a queue? Give examples.
Agenda:
- Node References Quiz Review
- Complete and demo Media:DynamicQueue.java
- Problem Analysis peer edits
- Criteria for Success
- Media:CriterionA2_criteriaforSuccess.doc due Tuesday (10/25/11)
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:
- Obtain a whiteboard and marker
- Draw the memory diagram on the board
- Write the lines of code that would create the memory diagram
Agenda:
- Node Review
- Node references practice
- Pair up with somebody near you
- Each group will be given a memory diagram drawing from Mr. Bui
- Individually write the lines of code to create the memory diagram
- Compare your code with your partner's
- 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:
- Add "Andrew"
- Add "Kyla"
- Add "JJ"
- Remove
- Add "Biniam"
- Remove
- What is left in the queue?
Agenda:
- Demo your completed Media:Queue.java using Media:QueueMain.java
- Object and References Review
- Node class
- Node references practice
- Pair up
- Each person should type up an example main that uses Nodes
- Each person should then draw the memory diagram of the other person's code
- Repeat!
- Everybody must be an expert using Nodes and references
Tuesday (10/4/11)
Agenda:
- Turn in Dossier: Analysis of the Problem
- Stacks Quiz
- Queueueueueues (Queues)
- Fix Media:Queue.java so that it works. You must fill in all the method bodies
Homework:
- Fix Media:Queue.java so that it works. You must fill in all the method bodies
Friday (9/30/11)
Agenda:
- Sorting Quiz
- Introduction to Abstract Data Type (ADT)
- Introduction to Data Structures
- Stacks
- Stack Practice
- After studying the stack code, you will attempt to re-create the Stack.java code
- Create a new Java project called StackPractice
- Download Media:EmptyStack.java
- Rename EmptyStack.java to Stack.java AND add it to your StackPractice project
- Download Media:StackMain.java and add it to your StackPractice project
- Fill in the code for all the empty stack methods
- 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:
- Repeatedly comparing adjacent elements and swapping them so that they are in the correct order. Which sort am I?
- 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
- Start with a partition (will be the entire list in the beginning)
- Pick an element at random. It will be the pivot value.
- Go through the list and values less than the pivot are put before it and values greater than the pivot will come after.
- 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
- Initialize the front to be the top or beginning of the array
- Now go to the bottom/end of the array
- Compare the two adjacent elements to see if they are in proper sequential order
- Swap the elements if they are out of order (bigger number to the left of smaller number)
- Move to the next pair of adjacent elements/numbers
- Repeat steps 3 and 4 until the smallest number has "floated" to the top/front
- After you traverse the entire array
- Move the front so that the sorted numbers are ignored
- Go back to the end of the array
- Repeat steps 2 through 6 for the unsorted part of the array
- Sorting Animations
- More Sorting Animations
- Download Media:BubbleSort.java
- Fill in the commented parts of the BubbleSort.java file. Where there is a comment, you need to write code.
- Demo to Mr. Bui at the end of class
- Introduction to the Program Dossier
- Media:CriterionA1_problemAnalysis.doc
- Analyzing the Problem due Tuesday (10/4/11)
- Work on your Analyzing the Problem section
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:
- Form a group of 3 people
- Receive several playing cards from Mr. Bui
- Shuffle the cards
- Sort them in numerical order by repeatedly finding the smallest card and separating it
Agenda:
- Introduction to Selection Sort
- Find the smallest element
- Move to the front of the array (swap with front)
- Repeat Steps 1&2, but ignoring the sorted front
- Selection Sort Animation
- Another Selection Sort Animation
- Sorting Animations
- Download Media:SelectionSort.java
- Fill in the commented parts of the SelectionSort.java file. Where there is a comment, you need to write code.
- Demo SelectionSort
- Add a (s)ort option to your AddressBook
- In order to compare Strings:
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:
- Download Media:ConsoleInput.java
- Download Media:ConsoleInputExample.java
- Create a new Java project to test out ConsoleInput
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?
- Create Java Classes (object blueprints)
- Create a separate main class with a main method. The main method can use other objects defined in classes.
- Person class lab assignment - Complete in 5-10 minutes
- Car class lab assignment - Complete in 5-10 minutes
- CodingBat - Java - Practice!
- Review Arrays
- Array practice activities
- 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.
- 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.
- 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:
- Software Development Quiz
- Demo Contact class lab assignment. It must be completed in order to do the 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
Tuesday - Thursday (9/6/11 - 9/8/11)
Warmup:
- Complete the Comfort Zone Survey
Agenda:
- Introductions
- Name cards
- Lab setup/config
- Login username is your first initial and lastname (e.g. pbui)
- Your password is your student ID number
- Go to Apple (upper left) -> System Preferences -> Accounts -> Change Password
- Student Surveys
- Turn in IBCS2 Summer Assignment
- IB Computer Science II Syllabus
- Introduction to Software Development
- Software Development Quiz on Monday (9/12/11)
- Contact class lab assignment
- Demo at the beginning of next class.
Homework:
- Software Development Quiz on Monday (9/12/11)
- Contact class lab assignment