15-111 Tentative Schedule

Week 1

  • Administrivia
  • Primitives, Wrappers, and Casting; Strings vs String Buffers, I/O Framework
  • FSM and Regular Expressions, RegEx in Java

Week 2

  • No class -- Martin Luther King Observance
  • Arrays, Quadratic sorting, binary searching, Arrays class, intro to Big-O and asymptotic analysis
  • Hashing and Hashtable, Multi-dimensional arrays

Week 3

  • Stacks, and applications thereof, Java Stack class
  • Review/Slack
  • Exam #1

Week 4

  • Recursion, and Examples thereof
  • Recursive Problem Solving
  • Quicksort/Merge sort

Week 5

  • Linked List, intro
  • Linked List, implementation
  • Linked List, implementation

Week 6

  • Doubly Linked List, implementation and applications
  • Queues, scheduling
  • Queues and simulation design

Week 7

  • Interfaces and Abstract classes: List, ArrayList and LinkedList; Iterators and ListIterator; for-each; Collections class
  • Set, HashSet and TreeSet;
  • Exam #2

Week 8

  • Generics and Wrappers: A closer look
  • Mid-semester break -- no class

Spring Break -- No class

Week 9

  • Intro to trees, Expression trees and traversals (pre, post, in, dfs, bfs)
  • BSTs, intro
  • BSTs, implementation: insert, find, and remove

Week 10

  • Slack/Tree reinforcement
  • Heaps, Heap sort, Priority Queues
  • Introduction to Graphs, Graph representation

Week 11

  • Shortest Path, Dijkstra's
  • Spanning trees and Traversals
  • Minimum spanning trees and Prim's Algorithm

Week 12

  • Cycle Detection and Union-Find
  • Graph Reinforcement
  • Collection classes: Maps, HashMaps, TreeMaps

Week 13

  • Graphical Applications/Applets and Events
  • Graphical Applications/Applets and Events
  • No class - Carnival

Week 14

  • Threaded Programming and Synchronization
  • Serialization, SocketStream and Network Programming
  • Remote Method Invocation (RMI)

Week 15

  • Algorithm Analysis: Retrospective
  • Review/Slack
  • Exam #3