SE1021
		
		
		
Outcomes
		
Optional Goodies
IntelliJ
- Print & use shorcuts from this handy IntelliJ Reference card
 - Creating a Jar File
  
- Video of how to create JAR file and ZIP File Remember:You should include your source right beside the Jar and support files. (This is not covered in this video)
 - Dr. Taylor's class where he went over this
 
 
Week 1
Java Fundamentals
- Discuss the importance getter/setter methods play in encapsulating member variables
 - Be aware of the memory requirements and value ranges for primitive types
 - Use mathematic operations to manipulate characters
 - Interpret code in which automatic type conversions are present
 - Use type casting to explicitly convert data types
 - Explain the risks associated with explicit type casting
 - Use increment and decrement operators
 - Explain how pre- and post- increment/decrement operators differ in functionality
 - Use short-circuit evaluation to avoid divide-by-zero and null-pointer exceptions
 
Inheritance
- Use inheritance in creating classes
 - Explain why, if no default constructor is present in the superclass, a class should make an explicit call to a constructor of the superclass
 - Define aggregation
 - Define composition
 - Use aggregation and composition within user defined classes
 - Explain what is meant by "overriding a method"
 - Make use of 
superreference to call a parent method from within a method that overrides it 
Week 2
UML
- Name, draw, and describe each arrow used (so far) in a UML diagram
 - Read and understand UML class and sequence diagrams
 - Implement source that meets the design specified in a UML class and sequence diagram
 - Create UML class and sequence diagrams 
in Enterprise Architectby hand 
Week 3
Inheritance and Polymorphism
- Explain the role of the 
Objectclass - Explain how automatic type promotion works with object references
 - Override the 
equals()andtoString()methods for user defined classes - Explain the relationship between a reference type and the type of the object to which the reference points
 - Explain the concept of polymorphism/dynamic binding
 - Read code that uses inheritance and polymorphism and determine its output on execution
 - Identify legal and illegal assignments of references to objects based on the reference type and object type.
 - Give an example of a situation where casting from one reference type to another is allowed, but not implicit
 
Week 4
Inheritance and Polymorphism
- Explain what it means for a class to implement an interface
 - Use the 
protectedmodifier in defining an inheritance hierarchy - Describe when to use an abstract class
 - Explain the concept of the Java interface
 - Create an abstract method; describe the purpose of abstract methods
 - Describe the differences between an abstract class and an interface
 - Describe how to use instanceof to determine the type of class that a reference points to (.getClass() and .class will wait for a later class...)
 
Event-Driven Programming
- Explain the roles of event sources and event listeners in event-driven programming
 
GUI Components
- List at least three types of objects that can be contained in a 
JFrameobject - Identify two ways to position GUI components on the content pane of a 
JFrameobject - Modify the content pane of a 
JFrameobject - Design and implement a graphical user interface (GUI) programs using the 
JLabelandJTextFieldclasses from the Java Swing package 
Week 5
GUI Components
- Describe the differences between the AWT and Swing packages
 - Differentiate between layout managers such as: 
FlowLayout,BorderLayoutandGridLayout - Use the layout managers listed above to arrange components on a content pane
 - Design and implement a graphical user interface (GUI) programs using the 
JButtonclass 
Event-Driven Programming
- Define a GUI class that is derived from 
JFrameand implements theActionListenerinterface - List the two types of objects required for event driven programming in Java
 - Explain the role of "event source" objects and give examples of two classes whose instances are "event source" objects
 - Explain the role of "event listener" objects and give examples of two classes whose instances are "event listener" objects
 - Design and implement event handling methods to handle multiple Action Events
 - Implement code to handle an action event from the 
JButtonorJTextFieldJava Swing classes - Explain the purpose of the argument passed to the 
actionPerformed()method - Design and implement an 
ActionListenerclass - Determine an event source from within an 
actionPerformed()method - Determine the specific object that initiated an Action Event
 - Describe at least two different ways of structuring 
ActionListenerclasses and discuss advantages and disadvantages of each - Describe the differences between an inner class and a regular (non-inner) class
 - Make use of inner classes to implement 
ActionListenerclasses - Make use of anonymous inner classes to implement 
ActionListenerclasses - Annotate an inner class on a UML diagram
 
Week 6
GUI Components
- Use 
JPanelobjects to embed layout managers within 
Exception Handling
- Explain how exception handling increases the robustness of software
 - Define exception; explain the concepts of 
catchandthrowas they relate to exceptions - Explain why 
Errorexceptions should not be caught in application code - Explain the differences & similarities between a 
RuntimeExceptionand anError - For a given program and input condition, determine the control flow of a 
try-catchblock - Implement a method that catches an exception thrown by a class in the Java Standard Library
 - Implement a method that uses a 
try-catchblock and a repetition statement (i.e., loop) to validate user input - Distinguish between checked and unchecked exceptions
 - Explain the concept of exception propagation; explain the outcome if an exception is thrown and not caught by the program
 - Explain the consequences of not handling a checked exception within a method where the checked exception occurs
 
Week 7
Exception Handling
- Use multiple 
catchblocks to customize the way different types of exceptions are handled - Inspect a call stack trace displayed by an unhandled exception to determine what caused the exception to be thrown
 - Use the 
throwsclause to postpone when a checked exception is handled - For a given program and input condition, determine the control flow of a 
try-catchblock with and without thefinallyclause 
Week 8
File Input and Output (I/O)
- Describe how files are stored on the computer -- what is the basic component making up a file on disk?
 - Describe how plain-text (ASCII) and Unicode (Java characters) are stored in a file.
 - Explain why the top bit of an ASCII character is always 0
 - Explain the difference between an byte and a character
 - Create a Java 
Fileobject and associate it with a file on disk - Determine if a 
Fileobject exists - Determine if a 
Fileobject is a file or a directory - Associate a low-level input (i.e., 
FileInputStream) or output (i.e.,FileOutputStream) stream with aFileobject - Describe how low-level file I/O works (i.e., reading or writing of byte data, importance of the sequence of data)
 - describe how high-level (
DataOutputStreamandDataInputStream) file I/O works (i.e., methods for reading and writing of primitive data types, association with low-level stream, the importance of the sequence of data) - Explain why it is important to close a stream when file operations are complete
 - Explain what the 
PrintWriterclass is used for - Read text data from a file using 
Scannerobjects - Explain the difference between binary and text files
 - Describe how object I/O (
ObjectOutputStreamandObjectInputStream) works (i.e., methods for reading and writing of objects, association with low-level stream, the importance of the sequence of objects and type casting) - Describe some of the important exceptions that the java file IO classes generate.
 
Weeks 9 & 10
TBA
Acknowledgement
Dr. Taylor wrote the outcomes. I edited it to add any errors I thought were needed. (I may have removed some too...). I will be updating it throughout the semester. Some of the updates will be highlighted so you can review them more easily.