SE1021
Outcomes

This is an old version of this course, from Winter 2013-2014. A newer version is available here.

Optional Goodeis

IntelliJ

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

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.