York University

CSE 1030: Introduction to Computer Science II

Winter 2012-13

Department of Computer Science and Engineering

Home

Weekly Calendar

Course Syllabus

Course Policies

Intended Learning Outcomes

Test and Lab Solutions
(see web site for your section)

Useful Links

Section M Web Site

Section Z Web Site



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*