Syllabus for SI 543 sec 1 - OOP & D Using Java
Jan 7 - Chapter 1 - Computers and how they work
Language of the computer - binary
Basic computer architecture - ALU, I/O, memory
Von Neumann model - stored program and data
Low level and high level language
Compiling vs interpreting source code
Jan 10 -
Jan 14 - Chapter 2 - Programming paradigms and programming style
Sequential
Structured
Procedural
Modular
Object Oriented
Parallel
Distributed
What is Java?
Writing programs in Java
Jan 17 - Chapter 3.1 through 3.4, 5.2 - The P in OOP - doing it in Java
Basic data types
Declaring and using variables
Java Operators
Arithmetic
Comparison
Logical
Bitwise
Assignment
Operator Precedence
Jan 21 - Chapter 3.5 through 3.8, 5.3, 5.4 - The P in OOP - doing it in Java (2)
Control structures in Java
Making choices - if, else, switch
Looping - do, while, for
Jan 24 - Chapter 4: 4.4 - The P in OOP - doing it in Java (3)
Writing methods
When do you need to write a method?
Designing methods
Parameters
pass by value
pass by reference
Returning values from methods
Jan 28 - Chapters 4 and 6.1 - The O in OOP - Objects in Java
Writing classes in Java
Encapsulation
Exploring the classes in the API
Jan 31 - Chapter 7 - Using objects - (encapsulation, inheritance,
polymorphism, and abstraction at work)
The Graphics class
Drawing shapes
Drawing images
The Color class
The Font class
Setting type, style, and size
Getting font info (FontMetrics)
Feb 4 - Chapter 8 - Inheritance
Making new classes from old ones
Polymorphism
Feb 7 - Chapter 9 - The O in OOP - Objects in Java (2)
Abstract classes and methods
Writing interfaces in Java
Creating packages in Java
Feb 11 - Java applet basics
Applets vs applications
Security and applets
The Applet class and its parent classes
Your applet and the browser
Applet tag
Methods for Milestones - init() start() stop() destroy()
Feb 14 - CRC modeling and Chapter 11 - The D in OOD
Feb 18 - CRC modeling practicum - The D in OOD (2)
Feb 21 - Java classes for building UIs - Containers and Components
java.awt.*
Feb 25 - Chapter 10.5 - 10.6 - Containers and putting stuff in them
Absolute positioning
FlowLayout
BorderLayout
CardLayout
GridLayout
GridBagLayout and GridBagConstraints
Writing your own Layout Manager
Feb 28 - Mar 3 -
Mar 6 -
Mar 10 - Putting them all together
Helper classes - Insets, Cursor, etc.
Designing UIs revisited
Creating UIs in Java
Three ways to add Components
Common component problems
Common layout problems
Mar 13 -
Mar 17 -
Mar 20 - Chapter 10.2 - Bringing your UI to life - handling events
Types of events
Event Listener interfaces
Event Adaptor classes
Event classes
Mar 24 - Bringing your UI to life - handling events (2)
Designing UIs re-revisited
Deciding which events to handle
Deciding which component should handle the event
Implementing your design decisions
Mar 27 - Images and Animation
Theory of animation
Practice of animation
Drawing animation
Animation with images
Controlling animation with Threads - run()
Mar 31 - Chapter 14.2 - Using interfaces - (encapsulation, inheritance,
polymorphism, and abstraction at work again)
More on Threads
Threads and the Runnable interface
Sound and the AudioClip interface
Apr 3 - Chapter 14.1 - Advanced animation
MediaTracker class
Controlling flicker
Clipping
Apr 7 - Exception handling - theory and practice
What are exceptions?
Why the programmer has to handle them
Kinds of exceptions
Advantages for program design
Java's exception class hierarchy
try blocks
catch - where the event is handled
finally blocks - cleaning up after your code
Rethrowing exceptions
Throwing your own exceptions
Apr 10 -
Apr 14 -