Syllabus for SI 543 sec 1 - Programming I

Jan 5 - Chapter 1.1 through 1.5 - 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 8 - Chapter 1.6 through 1.12 and 4.1 through 4.3 - Programming paradigms
		Sequential
		Structured
		Procedural
		Modular
		Object Oriented
		Parallel
		Distributed
		
		What is Java?
		Writing programs in Java

Jan 12 - Chapter 2.1 through 2.6 - 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 15 - Martin Luthur King Day - no class

Jan 19 - Chapter 5 - The P in OOP - doing it in Java (2)
		Control structures in Java
			Making choices - if, else, switch

Jan 22 - Chapter 6 - The P in OOP - doing it in Java (3)
		Control structures in Java
			Looping - do, while, for

Jan 26 - Putting it all together

Jan 29 - Chapter 3.1 and 3.2 and Chapter 7 - The P in OOP - doing it in Java (4)
		Writing methods
			When do you need to write a method?
			Designing methods
			Parameters
				pass by value
				pass by reference
			Returning values from methods

Feb 2 - Chapters 3.3 through 3.9 and 9.8 - The O in OOP - Objects in Java
		Writing classes in Java
		Encapsulation
		Exploring the classes in the API

Feb 5 - Chapter 4.4 through 4.8 - Using objects - (encapsulation, inheritance, 
				polymorphism, and abstraction at work)	
		The Graphics and Graphics2D classes
			Drawing shapes
			Drawing images
		The Color class
		The Font class
			Setting type, style, and size
			Getting font info (FontMetrics)

Feb 9 - Chapter 9.1 through 9.6 - Inheritance
		Making new classes from old ones
		Polymorphism

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

Feb 16  - 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()
		JApplets

Feb 19 - 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

Feb 23 - midterm 

Feb 24 - Mar 4 -  winter break! 

Mar 5 - CRC modeling and Chapter 14 - The D in OOD

Mar 9 - CRC modeling practicum - The D in OOD (2)

Mar 12 - Java classes for building UIs - Containers and Components
		java.awt.*
                javax.swing.*

Mar 16 - Chapter 12.1 - Containers and putting stuff in them
                Sun's Layout Managers
                Absolute positioning
                Writing your own Layout Manager

Mar 19 - more on gui design - using Frames in applets and applications

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

Mar 26 - 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 30 - Images and Sounds

Apr 2 - Animation
                Theory of animation
                Practice of animation
                        Drawing animation
                        Animation with images

Apr 6 - Threads

Apr 9 -  Helper classes
		in java.lang - Math, "wrapper" classes for primitive types
      		in java.awt - GridBagConstraints, Cursor,
      			Dimension/Point/Rectangle/Polygon, FontMetrics,
      			Toolkit(getDefaultToolkit, createCustomCursor, getImage)
      		in javax.swing - BorderFactory, ImageIcon, LookAndFeel, 
			SwingUtilities 

Apr 13 -  project demos and critiques - in the DIAD
 on the 4th floor of the undergraduate library during class time.

Apr 16 -  Final exam