SE1021
Outcomes
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
- If no default constructor is present in the superclass, explain why a constructor of a subclass 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
- Read and understand UML class and sequence diagrams
- Implement source that meets the design specified in a UML class and sequence diagram
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.
- 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
- Explain why Java prohibits multiple inheritance
Week 4
GUI Components
- List at least three types of objects that can be contained in a
Parentobject - Design and implement a graphical user interface (GUI) programs using the
LabelandButtonclasses from the JavaFX package
Event-Driven Programming
- Explain the roles of event sources and event listeners in event-driven programming
- 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
- Derive from the
Applicationclass and create a simple GUI application - Implement the
EventHandlerinterface as an inner class - Implement an
EventHandleras a lambda expression - Explain the purpose of the argument passed to the
handle()method - Determine the event source that caused the
handle()method to be called
Week 5
GUI Components
- Differentiate between layout panes such as:
GridPane,FlowPane,HBox, andVBox - Use the layout panes listed above to arrange components on a scene
FX Markup Language
- Describe the differences between creating JavaFX applications using imperative programming and using FXML with declarative style programming
- Use scene builder to create an FXML file describing a GUI layout
- Implement controller classes and make appropriate modifications to FXML files to provide functionality to UI controls such as
ButtonandTextFieldclasses
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 - 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 6
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 7
File Input and Output (I/O)
- 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
- Be familiar with how object I/O (
ObjectOutputStreamandObjectInputStream) works - Describe some of the important exceptions that the java file IO classes generate.
Week 8
GUI Components
- Use
FileChooserto select an open files - Be familiar with the following UI controls:
RadioButton,Checkbox,ComboBox,ScrollPane,ListView,Slider,MenuBar,Menu, andMenuItem
Week 9
Secure Software Development
- Explain how encapsulation supports software security
- Implement deep copying in accessors to avoid breaking encapsulation
- Make use of
finalto guard against data corruption
Functional Programming
- Explain how functional programming differs from object oriented programming
- Describe when it is appropriate to replace code with a lambda expression
- Demonstrate correct use of lambda expressions
- Describe the purpose of the
Streaminterface - Make use of the
Iterable.forEach()method - Be familiar with the following methods from the
Streaminterface:count(),distinct(),filter,
limit(), and sorted()
Week 10
Documentation and Distribution
- Generate HTML documentation using the Javadoc tool
- Generate executable JAR files
Last modified: Thursday, 16-Feb-2017 17:34:44 EST