Syllabus for SI 543 sec 1 - Programming I

Jan 7 - 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 10 - 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 14 - 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 17 - Martin Luthur King Day - no class

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

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

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

Jan 31 - 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 4 - 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 7 - Chapter 9.1 through 9.6 - Inheritance
		Making new classes from old ones
		Polymorphism

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

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

Feb 25 - Java classes for building UIs - Containers and Components
		java.awt.*
                javax.swing.*

Feb 26 - Mar 5 -  spring break! 

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

Mar 10 - midterm 

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

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

Mar 20 - 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 24 - Images and Sounds

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


			
Mar 31 - Animation
                Theory of animation
                Practice of animation
                        Drawing animation
                        Animation with images
                Controlling animation with Threads - run()


Apr 3 - 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 7 -  Shipping that applet - network, web, and user friendly

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

Apr 14 -  Final exam