Tentative Schedule (subject to change)

Date

Title

Topics

Reading

Assignments

Code Snippets

Lab

Slides

Week  1

Introduction & Structured Programming Review

How to build a basic program and class.

Review: Java 3

New:Java 4.1

 

 

ReviewAndInfix

161Review & JavaAndTwos, start IntroToClassDesign

 

Intro to Classes

Intro to class concepts and class design.

4.1

Fractions V2.0 given

DateV1,

 DateV2

 

IntroToClassDesign

Week 2

Class Composition & Information Hiding (access modifiers)

Access modifiers (public, private), getters & setters (with leaks)

Java 4.1-4.2

 

mutateInt,

mutateScanner

DateV3

Date,Shape,

CharList,Math

JavaAndTwos (last review)

ClassDefinitionsPartISplitUp

 

 

Overloading & Constructors

C’tor design, multiple c’tors, copy c’tors

Java 4.3, 4.4

Fractions V2.0 Due; Money & Bill Given

Point2D, Date, PointWithDate

 

ClassDefinitionsPartISplitUp;

Constructors&Overloading

Week 3

Encapsulation & Abstract data types, Privacy Leaks

Inheritance (Shape)

Privacy leaks, getters & setters without leaks

Java 4.2, 5.1, 5.2

 

 

 

ClassDefinitionsPartISplitUp

 

 

Data Structures with Arrays:

 

Inheritance  II (Employee, Exception)

Stacks, Queues, List Abstraction, IntList, ArrayList

 

Inheritance & Exceptions, Exception Handling

Java Chap 6: Arrays,  Java 14.1,  

 Money and Bill due; Shapes & Data Structures Given

PartiallyFilledArray (p375) is IntList

 

DataStructuresPartI

Week 4

References & Class parameters; Intro to Memory

More Array-Based Data Structures

Pass by reference; Pass by value. The implicit “this” parameter.

Java 5.1,5.2, 357-361, 842

Shapes due

 

 

StaticWrapperClassesMemory

 

Midterm

The Stack, Heap, (not Code and Static sections yet, only main and not foo(), leaf())

Java 5.3-5.4, Ethics A

 Data Structures due;

 

 

 

Week 5

Introduction to algorithm analysis (Big O)

Reference functions, counting instructions, Big O Proofs

Java p.860-865

 

Factorial, Fibonnacci, Power, Sum,

RecursionLab

 

 

 

 

Recursion I

 

Base & Terminating cases, recursive applications, FractalFlake

Java 11.1-11.2,

 

 

 

 

Week 6

Data Structures Part II

 

Recursion Part  II

Links & Nodes: Linked Lists, Stacks & Queues

Recursive size, toString, insert, contains, Binary Search, Linear Search

Java 7.1-7.3, 9.1-9.2

 

 Linked Data Structures Given

 

 

LinkedListRecursive

 

InheritancePart2PracticalExceptions.pptx

 

Finish Recursion Part II

 

 

Searching Algorithms {Linear, Binary}, Recursion Part II ,

 

 

 

Debugging Recursion, Recursive Linked Lists

 

 

Linear & Binary Search

Ethics C,

Java 11.3,

 

 

 

 

 

 Week 7

Sorting {Bubble, Insertion, Selection, Quick}

 

Interfaces {Runnable,Comparable, List, Serializable, Cloneable, ActionListener} & Generics

 

Java 13.1-13.2, 14.1, Java 14.2, 16.1-16.2

 

Java 15.1-15.2

 Linked Data Structures due, Recursive Binary Search Given

 

 

 

 

Finish Interfaces

Intro to Trees

 

Java 15.1, 15.4

 

 

 

RecursionII.pptx

Week 8

Data Structures Part 3:  Trees { K-nary Trees, Binary Search Trees} ,

 

Java 11, Java 15.1, 15.4

QuickSort Due, Interfaces Given, Pizza Manager Given

FractalFlake, PolyDemo,

 

RecursionII.pptx (needs updating; remove old content and add linear search content)

Finish Trees

Generics {methods, classes} & Collections

 

 Java 14.2, 16.1-16.2

 

 

 

 

 Week 9

Special Topics

& Exam Review

 

 Interfaces Due, Binary Trees Given

 

 

 

 

Final Exam

 

 All HW due