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:
|
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:
|
|
|
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; |
|
|
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:
|
Please note that these are not specifically recommended – they are just examples of possible IO packages that can be used for this unit. |
|
|
|
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. |
|
|
|
|
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 |
|
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:
|
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 |
|
|
|
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 |
|
|
|
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 |
|
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. |
|
|
|
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:
|
|
|
|
|
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 |
|
|
|
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. |
|
|
|