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 -  MLK Day - no class

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 -  spring break! 

Mar 6 - midterm 

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 -  project demos and critiques - in the DIAD

Apr 14 -  Final exam