Syllabus for SI 543 sec 1 - Programming I
- Supported programming environment - Java 1.2 using Sun's JDK on Unix
- Grading Policy
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 -
Mar 6 - Chapter - Containers and putting stuff in them
Absolute positioning
Sun's Layout Managers
Writing your own Layout Manager
Mar 10 -
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 -
on the 4th floor of the undergraduate library during class time.
Apr 14 -