York University

CSE 1030: Introduction to Computer Science II

Fall 2013-14

Department of Computer Science and Engineering

Home

Weekly Calendar

Lectures

Labs and Lab Solutions

Course Syllabus

Course Policies

Textbook

Intended Learning Outcomes

Test Solutions

Useful Links



York University

Intended Learning Outcomes

Here you will find a very detailed list of intended learning outcomes for each chapter of the Course Notes.

Items marked with an asterisk (*) may not be covered.

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
  • solve a recurrence relation*

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 recursive data structure such as a linked list or tree*
  • implement a stack*
  • implement a queue*
  • understand the basic operations on recursive data structures such as linked lists and binary trees*
  • understand the basic operations on stacks and queues*