SE1021
Outcomes
This is an old version of this course, from Winter 2013-2014. A newer version is available here.
Optional Goodeis
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
Enterprise Architect
Week 1
Java Fundamentals
- 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
with a superclass other than object should make an explicit call to a constructor of the superclass if no default constructor is present in the superclass (Clarification only )
- Define aggregation
- Define composition
- Use aggregation and composition within user defined classes
- Explain what is meant by "overriding a method"
- Make use of
super
reference to call a parent method from within a method that overrides it
Week 2
UML
- Name 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 Architect
Week 3
Inheritance and Polymorphism
- Explain the role of the
Object
class
- Explain how automatic type promotion works with object references
- Override the
equals()
and toString()
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
protected
modifier 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 one or two ways to determine the type of class that a reference points to (one uses instanceof, the other .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
JFrame
object
- Identify two ways to position GUI components on the content pane of a
JFrame
object
- Modify the content pane of a
JFrame
object
- Design and implement a graphical user interface (GUI) programs using the
JLabel
and JTextField
classes 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
, BorderLayout
and GridLayout
- Use the layout managers listed above to arrange components on a content pane
- Design and implement a graphical user interface (GUI) programs using the
JButton
class
Event-Driven Programming
- Define a GUI class that is derived from
JFrame
and implements the ActionListener
interface
- 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
JButton
or JTextField
Java Swing classes
- Explain the purpose of the argument passed to the
actionPerformed()
method
- Design and implement an
ActionListener
class
- 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
ActionListener
classes 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
ActionListener
classes
- Make use of anonymous inner classes to implement
ActionListener
classes
Week 6
GUI Components
- Use
JPanel
objects to embed layout managers within
Exception Handling
- Explain how exception handling increases the robustness of software
- Define exception; explain the concepts of
catch
and throw
as they relate to exceptions
- Explain why
Error
exceptions should not be caught in application code
- Explain the differences & similarities between a
RuntimeException
and an Error
- For a given program and input condition, determine the control flow of a
try
-catch
block
- Implement a method that catches an exception thrown by a class in the Java Standard Library
- Implement a method that uses a
try
-catch
block 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
catch
blocks 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
throws
clause to postpone when a checked exception is handled
- For a given program and input condition, determine the control flow of a
try
-catch
block with and without the finally
clause
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
File
object and associate it with a file on disk
- Determine if a
File
object exists
- Determine if a
File
object is a file or a directory
- Associate a low-level input (i.e.,
FileInputStream
) or output (i.e., FileOutputStream
) stream with a File
object
- 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 (
DataOutputStream
and DataInputStream
) 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
PrintWriter
class is used for
- Read text data from a file using
Scanner
objects
- Explain the difference between binary and text files
- Describe how object I/O (
ObjectOutputStream
and ObjectInputStream
) 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
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
- Video of how to create JAR file and ZIP File
Enterprise Architect
Week 1
Java Fundamentals
- 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
with a superclass other than object should make an explicit call to a constructor of the superclass if no default constructor is present in the superclass(Clarification only ) - Define aggregation
- Define composition
- Use aggregation and composition within user defined classes
- Explain what is meant by "overriding a method"
- Make use of
super
reference to call a parent method from within a method that overrides it
Week 2
UML
- Name 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 Architect
Week 3
Inheritance and Polymorphism
- Explain the role of the
Object
class - 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
protected
modifier 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 one or two ways to determine the type of class that a reference points to (one uses instanceof, the other .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
JFrame
object - Identify two ways to position GUI components on the content pane of a
JFrame
object - Modify the content pane of a
JFrame
object - Design and implement a graphical user interface (GUI) programs using the
JLabel
andJTextField
classes 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
,BorderLayout
andGridLayout
- Use the layout managers listed above to arrange components on a content pane
- Design and implement a graphical user interface (GUI) programs using the
JButton
class
Event-Driven Programming
- Define a GUI class that is derived from
JFrame
and implements theActionListener
interface - 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
JButton
orJTextField
Java Swing classes - Explain the purpose of the argument passed to the
actionPerformed()
method - Design and implement an
ActionListener
class - 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
ActionListener
classes 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
ActionListener
classes - Make use of anonymous inner classes to implement
ActionListener
classes
Week 6
GUI Components
- Use
JPanel
objects to embed layout managers within
Exception Handling
- Explain how exception handling increases the robustness of software
- Define exception; explain the concepts of
catch
andthrow
as they relate to exceptions - Explain why
Error
exceptions should not be caught in application code - Explain the differences & similarities between a
RuntimeException
and anError
- For a given program and input condition, determine the control flow of a
try
-catch
block - Implement a method that catches an exception thrown by a class in the Java Standard Library
- Implement a method that uses a
try
-catch
block 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
catch
blocks 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
throws
clause to postpone when a checked exception is handled - For a given program and input condition, determine the control flow of a
try
-catch
block with and without thefinally
clause
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
File
object and associate it with a file on disk - Determine if a
File
object exists - Determine if a
File
object is a file or a directory - Associate a low-level input (i.e.,
FileInputStream
) or output (i.e.,FileOutputStream
) stream with aFile
object - 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 (
DataOutputStream
andDataInputStream
) 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
PrintWriter
class is used for - Read text data from a file using
Scanner
objects - Explain the difference between binary and text files
- Describe how object I/O (
ObjectOutputStream
andObjectInputStream
) 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.