Syllabus for SI 615 sec 1 - OOP & D Using Java

Jan 7 - Chapter 1, 5.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 9 - Chapter 2 - Programming paradigms and programming style
		Sequential
		Structured
		Procedural
		Modular
		Object Oriented
		Parallel
		Distributed
		
		What is Java?
		Writing programs in Java

Jan 14 - 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 16 - 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 21 - 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 23 - Chapters 4 and 6.1 - The O in OOP - Objects in Java
		Writing classes in Java
		Encapsulation
		Exploring the classes in the API

Jan 28 - 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)

Jan 30 - Chapter 8 - Inheritance
		Making new classes from old ones
		Polymorphism

Feb 4 - Chapter 9 - The O in OOP - Objects in Java (2)
		Abstract classes and methods
		Writing interfaces in Java
		Creating packages in Java

Feb 6  - 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 11 - CRC modeling and Chapter 11 - The D in OOD

Feb 13 - CRC modeling practicum - The D in OOD (2)

Feb 18 - Java classes for building UIs - Containers and Components
		java.awt.*

Feb 20 - 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
	Programming assignment 8 - List the components, containers, and layout
				managers you will need for your project and
				draw the containment hierarchy
Feb 25 - midterm 

Feb 27 - Putting them all together
		Helper classes - Insets, Cursor, MediaTracker
		Designing UIs revisited
		Creating UIs in Java
			Three ways to add Components
			Common component problems
			Common layout problems
	Programming assignment 9 - Create your UI
				
Feb 28 - Mar 8 -  spring break! 

Mar 11 - Chapter 10.2 - Bringing your UI to life - handling events
		Types of events
		Event Listener interfaces
		Event Adaptor classes
		Event classes

Mar 13 - 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
	Programming assignment 10 - Add event handling to your project

Mar 18 - Images and Animation
                Theory of animation
                        Effects of frame rate
                        Flicker
                        Clipping
                Practice of animation
                        Drawing animation
                        Animation with images
                Controlling animation with Threads - run()

Mar 20 - 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

Mar 25 - Chapter 14.1 - Exception handling - theory
		What are exceptions?
		Why the programmer has to handle them
		Kinds of exceptions
		Advantages for program design
		Java's exception class hierarchy
			
Mar 27 - Exception handling - practice
		try blocks
		catch - where the event is handled
		finally blocks - cleaning up after your code
		Rethrowing exceptions
		Throwing your own exceptions
	Programming assignment 11 - Grade a classmate's program and work on 
					your project

Apr 1 - Strings StringBuffer and StringTokenizer classes
		Exploring the String class
		Creating Strings
		Changing Strings to numeric values
		Changing numbers to Strings
		Getting input from the user in applets and applications
		Methods for manipulating strings

Apr 3 - Reading and writing files

Apr 8 - Chapter 13 - Sorting and searching

Apr 10 - Communications
		Thread - thread
		Applet - applet
		Applet - browser
		Applet - web

Apr 15 -  project demos and critiques 

Apr 17 -  Final exam