Course Schedule

Week #1 — Jan 25, Jan 27

Course Description and Organization
Review of CSCI 2911
  • Introduction to Computers and Java
  • Java Fundamentals
  • Files
  • GUI Applications
  • Arrays and the ArrayList Class
Introduction to Computer Programming
Programming Experience Survey
Extra Credit, Self Introduction
Programming Assignment #1 due on Sunday, Feb 05

Week #2 — Feb 01, Feb 03

2D Arrays, Sorting, and Binary Search
  • Two-Dimensional Arrays
  • Some Sorting Algorithms
  • Binary Search
Classes and Objects I
  • Review of Instance Fields and Methods
  • Static Class Members
  • Static Fields
  • Static Methods
  • Passing Objects as Arguments
  • Returning Objects from Methods
  • The toString Method
  • The equals Method
  • Methods that Copy Objects
Quiz #1 Wednesday, Friday

Week #3 — Feb 08, Feb 10

Classes and Objects II
  • Aggregation
  • Returning References to Private Fields
  • null References
  • The this Reference
  • Enumerated Types
  • Garbage Collection
Quiz #2 Wednesday, Friday
Quiz #1 Review
Programming Assignment #1 Review
Programming Assignment #2 due on Sunday, Feb 26

Week #4 — Feb 15, Feb 17

Classes and Objects II
  • The finalize Method
  • Class Collaboration
  • CRC Cards
Recursion
  • Introduction to Recursion
  • Solving Problems with Recursion
  • Direct and Indirect Recursion
  • Summing a Range of Array Elements
  • Palindromes
  • The Fibonacci Series
  • Greatest Common Divisor (GCD)
  • Recursive Binary Search
  • The Towers of Hanoi
  • Binary Fractal Tree
Quiz #3 Wednesday, Friday
Quiz #2 Review
Code Review
Programming Assignment #2 Questions

Week #5 — Feb 22, Feb 24

Exam #1
Quiz #3 Review
Programming Assignment #2 Questions

Week #6 — Feb 29, Mar 02

Quiz #4 Wednesday, Friday
Exam #1 Review Wednesday, Friday
Programming Assignment #2 Review
Programming Assignment #3 due on Sunday, Mar 18

Week #7 — Mar 07, Mar 09

Text Processing and Wrapper Classes I
  • Introduction to Wrapper Classes
  • Wrapper Classes
  • Character Testing and Conversion With the Character Class
  • Searching Strings
  • Extracting Substrings
  • Extracting Characters to Arrays
  • Returning Modified Strings
  • The valueOf Methods
  • The StringBuilder Class
  • Appending to a StringBuilder Object
Text Processing and Wrapper Classes II
  • Replacing a Substring in a StringBuilder Object
  • Other StringBuilder Methods
  • The StringTokenizer Class
  • The String Class split Method
  • Numeric Data Type Wrappers
  • The toString Methods
  • Autoboxing and Unboxing
  • Problem Solving Exercise
Quiz #5 Wednesday, Friday
Quiz #4 Review
Programming Assignment #3 Questions

Week #8 — Mar 14, Mar 16

Inheritance I
  • What is Inheritance?
  • The “is a” Relationship
  • Inheritance, Fields, and Methods
  • Inheritance and Constructors
  • Overriding Superclass Methods
  • Preventing a Method from Being Overridden
  • Protected Members
  • Default Members
  • Access Specifiers
  • Chain of Inheritance
Quiz #6 Wednesday, Friday
Quiz #5 Review
Programming Assignment #3 Questions

Week #9 — Mar 21, Mar 23

Inheritance II
  • The Object Class
  • Polymorphism
  • Polymorphism and Dynamic Binding
  • Abstract Classes
  • Abstract Methods
  • Interface
  • Fields in Interfaces
  • Implementing Multiple Interfaces
  • Polymorphism with Interfaces
Quiz #7 Wednesday, Friday
Quiz #6 Review
Programming Assignment #3 Review
Programming Assignment #4 due on Sunday, April 15

Week #10 — Mar 28, Mar 30

Spring Break

Week #11 — Apr 04, Apr 06 (Good Friday)

Exceptions and Advanced File I/O I
  • Exceptions
  • Why Exceptions?
  • Exception Classes
  • Handling Exceptions
  • Polymorphic References to Exceptions
  • Handling Multiple Exceptions
  • The finally Clause
  • The Stack Trace
  • Uncaught Exceptions
  • Checked and Unchecked Exceptions
  • Throwing Exceptions
Quiz #8 Wednesday
Quiz #7 Review
Programming Assignment #4 Questions

Week #12 — Apr 11, Apr 13

Exam #2
Quiz #8 Review
Programming Assignment #4 Questions

Week #13 — Apr 18, Apr 20

Exceptions and Advanced File I/O II
  • Creating Exception Classes
  • The @exception Tag in Documentation Comments
  • Binary Files
  • Writing and Reading Strings
  • Appending Data to Binary Files
  • Random Access Files
  • The File Pointer
  • Object Serialization
Quiz #9 Wednesday, Quiz #8 Friday
Exam #2 Review Wednesday, Friday
Programming Assignment #4 Review with a Simple Example
Programming Assignment #5 due on Sunday, May 06

Week #14 — Apr 25, Apr 27

Advanced GUI Applications I
  • The Swing and AWT Class Hierarchy
  • Read Only Text Fields
  • Lists
  • Combo Boxes
  • Displaying Images in Labels and Buttons
  • Mnemonics
  • Tool Tips
  • File Choosers
  • Color Choosers
  • Menus
  • Text Areas
  • Fonts
  • Sliders
  • Look and Feel
Quiz #10 Wednesday, Quiz #9 Friday
Quiz #9 Review, Quiz #8 Review
Programming Assignment #5 Questions

Week #15 — May 02, May 04

Advanced GUI Applications II
  • Introduction to Applets
  • Applet Limitations
  • Introduction to HTML
  • Document Structure Tags
  • Text Formatting Tags
  • Breaks in Text
  • HTML Links
  • Creating Applets With Swing
  • Running an Applet
  • Using appletviewer
  • Java Applet Tutorial
Quiz #11 Wednesday, Quiz #10 Friday
Quiz #10 Review
Programming Assignment #5 Questions
Final Exam Review

Week #16 — May 09, May 11

Exam #3 — Final
  • Section A: May 09 from 5:15 to 7:30 pm at FC 102A
  • Section B: May 11 from 8:35 to 10:50 am at FC 110