|
Unit 0: Procedural Programming (PP) Review in Java
Writing complex programs with many helper functions
|
Jan 20 |
Half-day lecture: syllabus, readings & class process |
|
22 |
Java Data Types: primitives vs. references (==/.equals() )
Process: incremental development, tests suite;
codingBat demo
|
2.1, 2.2, 2.3, 3.2 |
Reading: 3.3 (up to Table 3.3)
for/conditional syntax &
String methods
Lab #1
codingBats
|
|
24 |
Java Programs: class, main, static ; javac/java
Process: taking note
Review: for/conditional
[code main]
|
1.1, 1.2, 1.3, 2.4, 4.2
|
Hw: Problem Solving sheet
|
|
Jan 27 |
PP I: helper methods and scope (inner most);
actual vs. formal parameters
[code param passing]
|
PJ TUT 2.1, 2.2 (Java String is Special)
3.1, 1.4, 1.5 |
Read 7.2 &
How to Pair Program?
Review CPE sections
Lab #2
array practice (in pair)
|
Project #1 out Path Runner
Read Processing File: 6.2, 6.3
|
29 |
Java Structure: arrays, parameters passing primitives vs. references
[code array]
[Procedural template]
|
4.3, 7.1, 2.5 |
31 |
Java Implementation: memory layout; immutable String
Handout: guessing game
|
3.3 (interactive & Scanner ), 6.1, 7.3 |
|
Feb 3 |
PP II: Design review
Process: Managing scope with class variables and constants, global vs. local
API: Using Random , Scanner methods (console System.in and File )
[code guessing game]
|
5.1, 5.2, 5.3, 3.4 |
|
|
Unit 1: Object-Oriented Programming (OOP)
Writing a class, an interface and an abstract class; polymorphism; inheritance (IS-A) vs. composition (HAS-A)
|
5 |
Defining class : class (template) vs. object (instance)
client vs. object code, constructor: class Radio example
[guessing game refactor] (Scanner class variable)
|
7.5, 8.1 |
Read 8.2
Lab #3
OOP intro
|
Read Design Expectations:
4.4, 4.5, 5.4, 5.5 & 5.6
Project # 1 Milestone
DEMO in lab (Part I)
Explorer Part II
files
|
7 |
class Rational : instance variables, constructors (this redirection), instance methods, toString()
[code blank rational]
|
8.3, 8.4
|
|
Feb 10 |
class Rational cont.: getters/setters, mutable vs. immutable, equals , instanceof |
8.5 |
Re-read 8, especially 8.4
Lab #4
credit card
|
|
12 |
Exam I: Procedural Programming in Java
review material available on Moodle
|
14 |
class Rational cont.: implicit parameter this , instance vs. class methods
[code rational completed] |
Re-read 8 |
Project #1 due |
|
Feb 17 |
Inheritance I: class Object , extends
Recursion review, FIX ME activity, extends Exception
[OOP_FIX ME sheet]
|
9.1, 9.2
|
Read: 7.4, 7.5
Optional Reading: 3G.1
Lab #5
silver game (in pair)
|
Project #2 out
|
19 |
Inheritance II: super , abstract class
class StaffMember/Employee/Volunteer.. (NGO example)
[code]
|
9.3 |
20 |
Inheritance III: polymorphism
[code]
|
9.4, 9.5 |
|
Feb 24 |
Inheritance IV: interface , implements , IS-A (inheritance) vs HAS-A (composition)
[code]
|
9.6 |
|
|
Unit 2: Linear Data Structures
Using and implementing ArrayList (continuous) vs. LinkedList (dynamic allocation)
Constrained Linear Structure: Stack (LIFO) vs. Queue (FIFO)
|
26 |
Using a Linear Structure: generics (parametrized type); Collections, ArrayList
[code]
|
10.1
|
Re-read 9, especially 9.3
Silver Game DEMO
Lab #6
software company
|
|
28 |
Implementing Linear Structure I: interface List , class ArrayList design
[code]
|
10.2, 15.1 |
Mar 2 |
TBA
|
15.2 |
Optional Reading: 3G.2
Lab #7
shape graphics
|
|
4 |
ArrayList implementation: remove/clear/set
|
13.1,
13.2
|
Project #2 due
|
6 |
"Extensible" ArrayList : ensuring capacity, i.e inner array big enough
Incrementind or doubling for reallocation
|
13.3, 13.4 |
|
Mar 9 |
Complexity Analysis: Space vs. Time Complexity; Running Time comparison
order categories; linear vs. quadratic; analyzing loops
|
15.3, 15.4
|
Re-read 13.2
Lab #8
Running Time Packet (in group/POGIL)
|
|
11 |
Exam II: Object-Oriented Programming (include using ArrayList)
review material available on Moodle
|
13 |
Practice of Running time: counting copies for ArrayList array reallocation (linear vs. quadratic)
Binary search for sorted list: log n , just a big constant
|
11.1
|
Project #3 out
Read code review
|
Mid-Term Recess
|
|
Mar 23 |
Implementing Linear Structure II: Iterator implementation for ArrayList ; inner-class
[code]
|
16.1, 12.1
|
Read Chapters 90 & 91
Lab #9
Sorting Packet (in group/POGIL)
|
TBD
|
25 WD deadline |
Memory allocation: ArrayList (continuous/packed) vs. LinkedList (dynamic)
LinkedList Introduction: implementing a classNode and making a chain of them
[code]
|
16.2, 12.2
|
27 |
Implementing Linear Structure III: LinkedList implementation; drawing diagrams
[code] |
Chapter 100
|
|
Mar 30 |
LinkedList implementation: insertFirst , deleteFirst ; insertLast/deleLast as homework
sorting, compareTo
[code]
|
Chapters 92, 16.3, 12.3
|
Re-read 16.2
Lab #10 Linked List
|
|
Apr 1 |
LinkedList implementation II: Generics version |
|
Apr 3 |
Implementing Linear Structure IV: Iterator implementation for LinkedList
|
16.4, 16.5
|
|
Apr 6 |
Constraint Linear Structures: Stack vs. Queue
|
14.1, 12.6 |
Lab #11
|
|
8 |
Implementing Linear Structure V: Stack/Queue implementation with LinkedList s;
Each implementation HAS-A particular LList ; delegation pattern
[code]
|
14.2
|
10 |
Problem solving with Stack : postponing applications
|
14.3, 14.4
|
|
Apr 13 |
Implementing Linear Structure VI: Stack/Queue implementation array based;
Circular queue
|
??? |
|
|
15 |
Exam III: Linear Data Structures
review material available on Moodle
|
|
|
Unit 3: Advanced Data Structures
HashTable and Binary Search Tree
|
17 |
Linear vs. Non-linear Structure: Binary Search with nodes
Binary Search Tree (BST), linear vs. log review
Advanced Data Structure I: hashing, hashcode() for String
|
17.1, 11.2
|
Lab #12
|
|
Apr 20 |
Advanced Data Structure I: Dictionary Implementation
|
11.3
|
Lab # 13
|
|
22 |
Advanced Data Structure I: Handling Collisions
|
18.1
|
24 |
|
|
|
Apr 27 |
Advanced Data Structure II: Binary Trees |
17.2, 17.3
|
|
|
29 |
Advanced Data Structure III: Binary Search Trees
|
17.4
|
May 1 |
|
17.5
|
|
R May 7 |
Exam 12:00--2:00
|
|