Unit I: Introduction to Programming

Note: This unit is rather large and easily broken into two separate units

Strands/Learning Outcomes

Comments

1A.  Students will have an understanding of procedures relating to the classroom, use of compiler, and computer procedures.

 

1B.  Students will have a basic familiarity with the layout of a driver program (main/begin) and how to run such a program

This includes a HelloWorld program where students identify the code which controls screen output, and also looking at Chapter 1 of the Java MBCS

1Ba. Students will learn to use the BlueJ environment to create an instance of an object and test individual methods

This will be used as students handle simple IO by passing parameters through blueJ to the methods and viewing the output as what is returned from the methods

1C.  Students will use, write and modify System.out.println() method calls

Could also introduce System.out.print() as well, and cover briefly string concatenation using the + operator

1D.  Students will be able to identify the escape sequences and determine output based on code that uses them

\n, \t, etc.

1E.  Students will be able to recognize and write comments to document their code

Use both // and /* */ notation

1F.  Students will have an understanding of basic syntax rules as they apply to case sensitivity and the use of the ; throughout program

 

1G.  Students will be able to declare variables of both primitive and object types.  As a part of this students should be able to:

  • Recognize the primitive variable types
  • Identify the parts of creating an object (creating the reference variable and assigning it to the memory location created by the constructor call)

This involves the use of new and the constructor call for objects.  (Random numbers?)

1H.  Students should be able to use the variables they declared in a series of mathematical operations.  As a part of this students will be able to:

  • Recognize the use of mathematical operators (except concatenation) must be used with primitive variable types.
  • Use the assignment operator to store the result of a calculation.

 

1I.  Students should be able to use method calls to assign values to variables.

For Example:

 

String name = new String(“Tony”);

int len = name.length();

 

Students should be reading API documentation and applying return values to assignments.

1J.  Students should understand and be able to use primitive numeric type casting (int to double and vice versa)

int x = (int)4.5;

Program Assignments/Chapter Resources

 

 

Unit 2: Input/Output

Please note that this unit can either be treated as a separate unit or taught as part of a larger course.  The primary focus here is not to teach students 1 method of input or output, but introduce a range of IO possibilities (some written by teacher) that will allow them to read object documentation and apply it to any situation.

Strands/Learning Outcomes

Comments

2A.  Students will have familiarity with basic concepts involved in sequential input.

Students will understand that when a series of values are entered into an input stream they are read from the stream in the same order in which they are entered.

2B.  Students will be able to read the documentation for an object that will provide them with input or output and utilize that object accordingly.

 

2C.  Students will be able to use the Integer and Double static parse methods to convert Strings into numbers

Useful when input is given as a string and needs to be converted into a number.

Possible IO packages include:

  • ObjectDraw (mouse input)
  • Swing (JOption Pane, and using other preset forms – as the course progresses students will eventually modify the frame code to create they layout of objects that they want)
  • Simple IO classes created by teacher to read from a file

Please note that these are not specifically recommended – they are just examples of possible IO packages that can be used for this unit.

Program Assignments/Chapter Resources

 

 

 

 

Unit III: Methods

Strands/Learning Outcomes

Comments

3A.  Students will be able to, given the outline of a data storage object, write simple methods that involve return statements with either just member data, a quick mathematical operation, or apply the IO principles covered already in the course.

Part II of case study

3B.  Students will be able to identify the difference between a regular method and a static method and how that applies to how the method is called.

Using other static methods inside the main method similar to free functions in C++  (Also use of Color.red, etc. as static …)

3C.  Students will know the rules of calling methods as they apply to calling a method from within the same object, as well as calling a method from an object reference.

 

3D.  Students will be able to read inherited objects, recognizing the ability to call super class methods as if they were members of the same object.

 

Program Assignments/Chapter Resources

 

 

Unit IV: Decision Structures

Strands/Learning Outcomes

Comments

4A.  Students will be able to use boolean expressions to return a true or false value from a method.

Part III Case Study

4B.  Students will be able to use if/then structures within methods to control the result of a method call.

 

4C.  Students will be able to utilize boolean method calls within an if/then structure

 

4D.  Students will be able to relational and logical operators to form complex boolean statements

 

4E.  Students will be able to trace code containing boolean statements.

 

4F.  Students will understand the creation and use of a class variable as a counter.

 

Program Assignments/Chapter Resources  

 

Unit V: Looping Structures

Strands/Learning Outcomes

Comments

5A.  Students will be able to recognize patterns in code that can be condensed into a repetition structure

Part IV of case study

5B.  Students will be able to use a for structure to condense code that contains patterns.

Adding a series of objects to a collection..

5C.  Students will understand the underlying structure of a collection class and be able to store values in a set.

 

5D.  Students will be able to use a while structure to loop through an unknown number of iterations

Using an iterator (while(it.hasNext()) to retrieve values stored in a set.

5E.  Students will be able to perform the following algorithms using either a set or an ArrayList and an iterator:

  • Place a series of values inside a collection
  • Print a series of objects stored in a collection
  • Perform a simple search  of a series of objects in an Iterator
  • Sort the items stored in an unordered collection (such as a set) and transfer the sorted group to a list
  • Count objects with a specific attribute stored in a collection
  • Accumulate a total based upon an attribute of an object (ie. You have a collection of car dealerships from an area.  Find the total number of cars sold within the area – sum of cars sold at each individual dealer)

Many of these algorithms were done in procedural programs from a series of input values.  The use of collection classes (and abstract IO classes) allows for the implementation of these algorithms with abstract collections (sets and lists).

5F.  Students will be able to use object casting when retrieving an object from a container

 

Program Assignments/Chapter Resources

 

 

Unit VI: Introduction to Indexing/Array Lists

Strands/Learning Outcomes

Comments

6A.  Students will be able to iterate through an ArrayList using the .get() method with an index value.

 

6B.  Students will be able perform the algorithms addressed in the previous chapter using indexing of a list as opposed to iterating through a collection.

 

6C.  Students will be able to use ArrayLists whose subscripts are representative of an aspect of the data

 

6D.  Students will understand the concept of object casting and the need for it when using container classes.  Students will also be able to determine appropriate casting based on sub and super class relationships

 

Program Assignments/Chapter Resources

 

 

AP I: More Algorithms for Collections

Strands/Learning Outcomes

Comments

AP1A.  Students will be able to identify the three main interface collection classes specified by the subset and describe the individual properties of each.

Set, Map, List

AP1B.  Students will be able to identify and read documentation for the instance classes that implement the interfaces from CCA.

HashSet, TreeSet, HashMap, TreeMap, LinkedList

AP1C.  Students will be able to implement data structure changes to the MBS Case Study using the Collection Classes for environment implementations.

Case Study Part V

AP1D.  Students will have knowledge of abstraction and how it applies to interface and implementation classes as demonstrated through the collection classes.

 

AP1E.  Students will become familiar with different sort algorithms and the timing (Big-O) associated with each.

 

AP1F. Students will be able to trace and make generic statements about algorithms using a variety of data structures.

 

AP1G.  Students will be able to take an implementation of an algorithm and reimplement it using a different collection class, and discuss the ramifications in memory and timing associated with the changes.

 

Program Assignments/Chapter Resources  

 

Unit AP 2:Recursion

Strands/Learning Outcomes

Comments

AP2A.  Students will be able to identify a recursive method from code.

 

AP2B.  Students will be able to name the base case of a recursive method

 

AP2C.  Students will be able to trace recursive method calls and predict outcome of code based upon input values

 

AP2D.  Students will be able to use abstraction to make generalized statements about a recursive method without being given a specific starting value or series of values.

 

Program Assignments/Chapter Resources

 

 

Unit AP 3: Built in Arrays/2D Arrays

Strands/Learning Outcomes

Comments

AP3A.  Students will be able to make comparisons between lists and built in 1 dimensional arrays

 

AP3B.  Students will be able to construct, fill, and manipulate 1 dimensional arrays of primitive values

 

AP3C.  Students will be able to construct, fill, and manipulate 1 dimensional arrays of objects, and recognize the impact of the null references for unconstructed objects that belong to that array

 

AP3D.  Students will be able to recreate the algorithms used in chapters 5 and 6 with iterators and ArrayLists for 1 dimensional arrays.

 

AP3E.  Students will be able to pass arrays to methods and write methods with return values that are arrays

 

AP3F.  Students will be able to construct two dimensional arrays of primitives and objects

 

AP3G.  Students will be able to perform the following algorithms with two dimensional arrays:

  • Traverse the two dimensional array for the purpose of storing information.
  • Print all elements of the array (or some property thereof)
  • Traverse the array with a counter, counting elements with a specific attribute
  • Traverse the array with an accumulator, performing a mathematical calculation based upon data stored in the two dimensional array
  • Traverse the array and change the state of the items stored within it

 

Program Assignments/Chapter Resources

 

 

Unit AP 4: Stacks and Queues

Strands/Learning Outcomes

Comments

AP4A.  Students will understand the difference between the usage of stacks, queues and priority queues.

FIFO and LIFO data structure…

AP4B.  Students will apply the interface objects Stack, Queue, and Priority Queue as supplied by the CollegeBoard to various problem solving situations.

 

AP4C.  Students will be able to implement the Stack, Queue, and Priority Queue interface objects using either the collection classes or the List/Tree Node objects supplied by the CollegeBoard.

 

AP5D.  Students will be able to implement changes to the MBS Case Study using these data structures

 

Program Assignments/Chapter Resources

 

 

Unit AP 5: List and Tree Implementations

Strands/Learning Outcomes

Comments

AP5A.  Students will be able to use (and trace code using) the ListNode interface supplied by the CollegeBoard to implement a linked list data structure

 

AP5B.  Students will be able to implement the abstract Java List object using ListNode

 

AP5C.  Students will be able to create data storage objects that use ListNodes as member data

 

AP5D.  Students will be able to use (and trace code using) the TreeNode interface supplied by the CollegeBoard to implement a tree data structure

 

AP5E.  Students will be able to implement a version of the abstract Java List object using TreeNode

 

AP5F.  Students will be able to create data storage objects that use TreeNodes as member data

 

Program Assignments/Chapter Resources  

 

Unit AP 6:Object Oriented Design/Large Systems

Strands/Learning Outcomes

Comments

AP6A.  Students will be able to dissect a problem statement into a series of interacting objects that are representative of the data storage and controllers needed to solve the problem.

 

AP6B.  Students will be able to write classes that implement the objects they describe from OODA.

 

AP6C.  Students will be able to create object maps based on existing programs as well as ones they design

 

AP6D.  Students will be able to write documentation of objects they design.

 

Program Assignments/Chapter Resources