1/20,22
Introduction: major components of CS2; blending math, science
and engineering; plans for the course; expectations; responsibilities;
Review of Java fundamentals
Ch.1, notes
1/25,27,29 Problem solving techniques
and software engineering concepts;
Object-oriented modeling and design; classes, data, behavior; message
passing
Ch.2, notes
2/1,3
OOP and Java concepts: inheritance,
interface, implementation, application and extensibility; Object class,
toString and other common methods
notes
2/5,8,10,12 Linked data representation: pointers/reference
in Java; linked list:
behaviors: insert, delete, search node; variations in linked list
Ch.3
2/15,17,19 Recursion: basic principles;
applications; efffect on running times
Ch.4
2/22,24,26 Modularity and Data abstraction:
Abstract Data Types (ADTs), priority
queue ADT, Java support in packages, interfaces and implementations
Ch.5
3/1
EXAM 1
Ch.1 to Ch.5
3/3,5,15,17 Linear Data Structures: Stacks
and queues: definition, implementations;
Study Java API's version; applications
Ch.6
3/19,22,24,26 Lists, Strings, Dynamic memory allocation; Java stringBuffer;
garbage
collection and handling memory allocation failure
Ch.7
3/29,31,4/2 Non-linear data structures: Trees:
Expression tree, binary tree,
traversals, special algorithms; AVL trees, tries; Graphs: flow graphs,
graph
search and applications; Priority queues and heap
Ch.8
4/5
EXAM 2
Ch.6 to Ch.8
4/7,9,12,14 (continue)trees and graphs; Hashing
and Table ADT
Ch.9
4/16,19,21,23 Analysis of algorithms; sorting algorithms; Big-O
notation
Ch.10
4/16,19,21,23 Transition to C++; Java advanced concepts; component
programming;
javabeans
notes
5/3
Review for final exam
Miscellaneous Topics: Effective solution design, style factors, good
programming practices, ethical issues and human factors will be covered
throughout the semester.