Labs
- Lab 0: Preliminaries
- Please try and complete before your first scheduled lab session.
Doing so will give us an opportunity to resolve any outstanding issues
during this first session.
- Lab 1: Getting started, Java basics
- solutions:
Task 1,
Task 2,
Task 3,
Task 4
- Lab 2: Strings and arrays; a first look at reference types
- solutions:
Task 1,
Task 2,
Task 3, Challenge
- Lab 3: Static vs. object classes; writing custom/blueprint classes
- solutions:
Task 2,
Task 3,
Task 4
- Lab 4: Understanding inheritance and polymorphism; ArrayBag case study
- solutions:
Task 1,
Cat.java,
Abyssinian.java,
Task 2,
Task 3,
ArrayBag.java
- Lab 5: Recursion
- solutions:
Task 1,
Task 2,
Task 2.3,
Task 3.1-3.3,
Task 3.4
- Lab 6: Recursive backtracking; A first look at Big-O and Sorting Algorithm Analysis
- solutions:
Task 2,
Task 3,
Task 4
- Lab 7: More Sorting Analysis (Complete on your own)
- solutions:
Task 1,
quicksort,
Task 2
- Lab 8: A first look at linked lists; StringNode class
- solutions:
Task 1.1-1.3,
Task 1.4,
Task 2.1,
Task 2.2,
Task 3,
Task 4
- Lab 9: The List ADT
- solutions:
task 1,
task 2,
task 3,
ListClient.java
- Lab 10: Stacks and Queues
- solutions:
task 1,
task 2,
task 3,
StackClient.java
- Lab 11: Binary trees and search trees
- solutions:
task 1,
task 2.1,
task 2.2 (after deleting 6,
after deleting 15,
after deleting 20),
task 3
- Lab 12: 2-3 Trees; binary-tree iterators
- solutions:
task 1,
task 2
Lab 13: Hash tables; Heap basics