Department of Computer Science and Engineering
1030 Home
Online Forum
Course Syllabus
Course Policies
Prism Lab Hours of Operation
Java API
|
Intended Learning Outcomes
Here you will find a very detailed list of intended learning outcomes
for each part of the course.
Items marked with an asterisk (*) may not be covered.
Introduction
- navigate the Linux file system using the terminal
- create directories using the terminal
- start applications using the terminal
- write and run a Java program using Eclipse
- identify and understand six problem-solving techniques
- use problem-solving techniques to solve a programming task
- identify discrepancies between actual and expected results
- test a program for correctness
- identify forms of Academic Dishonesty, as defined by the Senate
Chapter 1 Implementing Static Features
- identify, correctly use, and
implement utility classes
- explain what the static modifier
means for attributes and methods
- use and draw UML diagrams for
utility classes
- draw memory diagrams for
utility classes
- define what the access
modifiers public and private mean for attributes and methods
- explain how the choice of
access modifier affects encapsulation
- define what the final modifier
means for attributes
- explain why utility classes
have a private constructor
- implement static attributes for
a utility class
- implement static methods for a
utility class
- write tests for static methods
- explain the difference between
arguments and parameters
- explain how local variables can
shadow class attributes
- explain the difference between
preconditions and validation
- implement static methods that
use parameter validation
- add documentation to a utility
class using Javadoc
- implement static methods having
interfaces as parameters
- implement static methods having
generics as parameters*
Chapter 2 Implementing Non-static
Features
- define what a class is in Java
- define what the this keyword
means in Java
- explain how non-static attributes and methods differ from
static attributes and methods
- use and draw UML diagrams of
classes
- draw memory diagrams for
classes
- define what a constructor is in
Java
- define what a default
constructor is in Java
- define what a copy constructor
is in Java
- implement constructors for a
class
- implement constructor chaining
for a class
- define what an accessor method
is
- define what a mutator method is
- implement accessor and mutator
methods for a class
- define what the toString method
is used for
- implement the toString method
for a class
- define what the equals method
is used for
- implement the equals method for
a class
- define what the compareTo
method is used for
- implement the compareTo method
for a class
- write tests for non-static
methods
- define what an immutable class
is (and why they are useful)
- implement an immutable class
- define what a class invariant
is (and why they are useful)
- describe when a class invariant
must be true
- define what the hashCode method
is used for
- implement the hashCode method
for a class
- implement methods that use
parameter validation
- add documentation to a class
using Javadoc
- implement methods having
interfaces as parameters
- implement methods having
generics as parameters*
Chapter 3 Mixing Static and
Non-static Features
- implement a class that can
count the number of objects created
- implement a class that stamps
serial numbers on objects
- implement a class that uses the
singleton pattern
- implement a class that enforces
one instance per state
Chapter 4 Implementing Aggregation
and Composition
- define aggregation
- define composition
- use and draw UML diagrams for
classes that use aggregation and composition
- draw memory diagrams for
classes that use aggregation and composition
- explain the differences in
constructors and methods between classes that use aggregation and
classes that use composition
- implement classes that use
aggregation
- implement classes that use
composition
- contrast aliasing, shallow
copying, and deep copying
Chapter 5 Implementing Inheritance
- use and draw UML diagrams for
classes that use inheritance
- draw memory diagrams for
classes that use inheritance
- define what a superclass (or
parent class) is
- define what a subclass (or
child class) is
- state what features are
inherited by subclasses
- define what the keyword extends
means in Java
- define what the keyword super
means in Java
- implement constructors for a
subclass
- define what an overridden
method is
- implement overridden methods
for a subclass
- explain how preconditions,
postconditions, and throws clauses behave in an inheritance
hierarchy
- define what the final modifier
means for methods
- define what the final modifier
means for classes
- define what an abstract class
is
- define what an abstract method
is
- implement an abstract class
- define what an interface is in
Java
- implement an interface
Chapter 6 Implementing Graphical
User Interfaces
- define what the model is in the
model-view-controller (MVC) pattern
- define what the view is in the
MVC pattern
- define what the controller is
in the MVC pattern
- draw the UML diagram for the
MVC pattern
- define what event-driven
programming is
- implement a graphical user
interface (GUI) using MVC
Chapter 7 Recursion
- identify base cases for a
recursive algorithm
- identify recursive cases for a
recursive algorithm
- implement a recursive algorithm
in Java to solve a problem
- derive a proof of correctness
for a recursive algorithm
- derive a proof of termination
for a recursive algorithm
Chapter 8 Arrays and Data Structures
- define what an array is
- create and use arrays
- implement a List using an array
- implement an iterator for a
class that models a collection
- implement a stack*
- implement a queue*
|