FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of...

28
FREEHOLD REGIONAL HIGH SCHOOL DISTRICT OFFICE OF CURRICULUM AND INSTRUCTION COMPUTER SCIENCE ACADEMY HONORS COMPUTER SCIENCE I COURSE PHILOSOPHY The philosophy of this course is to introduce the students to the fundamentals of computer programming and problem solving in a structured and effective manner so that they will be successful in future course work in the Computer Science Academy. COURSE DESCRIPTION Grade Level: 9 Department: Computer Science Academy Course Title: Honors Computer Science I Credits: 5 Course Code: 036050 BOARD OF EDUCATION ADOPTION DATE: AUGUST 31, 2009

Transcript of FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of...

Page 1: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

FREEHOLD REGIONAL HIGH SCHOOL DISTRICT

OFFICE OF CURRICULUM AND INSTRUCTION

COMPUTER SCIENCE ACADEMY

HONORS COMPUTER SCIENCE I

COURSE PHILOSOPHY

The philosophy of this course is to introduce the students to the fundamentals of computer programming and problem solving in a structured and effective manner so that they will be successful in future course work in the Computer Science Academy.

COURSE DESCRIPTION

Grade Level: 9 Department: Computer Science Academy Course Title: Honors Computer Science I Credits: 5 Course Code: 036050

BOARD OF EDUCATION ADOPTION DATE: AUGUST 31, 2009

Page 2: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

FREEHOLD REGIONAL HIGH SCHOOL DISTRICT

Board of Education

Mr. Ronald G. Lawson, President Mr. Christopher Placitella, Vice President

Mr. William Bruno Mr. Tom Caiazza

Mrs. Elizabeth Canario Mr. Barry Hochberg Mrs. Kathie Lavin Mr. Heshy Moses

Mrs. Jennifer Sutera

Mr. James Wasser, Superintendent Ms. Donna M. Evangelista, Assistant Superintendent for Curriculum and

Instruction

Curriculum Writing Committee

Mr. James Gill Ms. Rhonda Solomon

Supervisor

Ms. Marion Conrad

Page 3: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

Course Philosophy

The philosophy of this course is to introduce the students to the fundamentals of computer programming and problem solving in a structured and effective manner. This course will set the ground work for advanced programming concepts that the students will encounter in subsequent Computer Science courses. This class will begin with very basic concepts in computer programming and problem solving and progress to more advanced techniques and sophisticated topics. As time progresses the students will be exposed to object oriented programming and inheritance which will provide a solid foundation for future course work in the Computer Science Academy.

Course Description

This is the first computer science course in the Computer Science Academy. It will provide the basis for all future computer science courses. The course will start with very basic material and progress to the more advanced concepts. The programs will be coded in the Java programming language. The topics will include: 1) Assignment Statements 2) Arithmetic Operations 3) Logical operators 4) Loops 5) Arrays 6) Methods 7) Java Classes 8) Java Data Structures 9) Classes 10) Introduction to Recursion 11) Introduction to user-defined data structures 12) Introduction GUI interfaces

Page 4: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

4

Freehold Regional High School District Curriculum Map

Honors Computer Science I

Assessments Relevant

Standards1 Enduring

Understandings Essential Questions Diagnostic

(before) Formative (during)

Summative (after)

4.5 B1

Computer systems have evolved and become an intrinsic part of everyday life, both personal and in the workforce. Hardware and software work together to accomplish complex tasks.

What are the four generations of computers? What is the history of computers? What are the four parts of a computer system? How is data represented internal to the computer? What are the types of different programming languages? ( High level, assembly language, machine language) What is the function of a compiler?

Oral Questions /Discussion

Written Assignments

Unit Test

4.5 B1 8.1 B9, 11

A computer program is a set of instructions created to perform the steps specified in an algorithm.

What is an algorithm?

Define an algorithm and give an example of when you have used one.

Write an algorithm to perform an everyday task in your life.

Present algorithm (partner will follow instructions). Classmates will decide whether the algorithm is successful & offer suggestions to improve upon algorithm.

4.5 B1 8.1 B9, 11

Variables are used to store and access primitive data and objects to perform different tasks in the form of a computer program.

How do variables store data in memory? What are the different types of data? (i.e. int, double, etc…)

Oral questions / discussion.

Have students trace code and indicate what values are stored in variables as the program is executed.

Write a small program manipulating data using variables.

Page 5: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

5

Assessments Relevant

Standards1 Enduring

Understandings Essential Questions Diagnostic

(before) Formative (during)

Summative (after)

4.5 B1 8.1 B9, 11 8.2 B3

Fundamentals of computer program development include conditionals, looping, relational operators and the use of standard Java classes. (i.e. such as the String Class and the StringTokenizer Class.)

What determines whether a loop is executed? How are loops utilized to process large amounts of data? How does an Object defined from a class differ from primitive data?

Assignment / write program.

Graded programming assignment.

4.5 B1 8.1 B9, 11 8.2 B3

Computer program development involves the incorporation of methods to perform repeated tasks.

How are methods used to compartmentalize code? Under what circumstances is it desirable to include a method within the code?

Assignment / code program modules.

Unit test.

4.5 B1 8.1 B9, 11 8.2 B3

User defined classes allow many programs to use the same objects.

How are classes used in programming? How are objects and classes related?

Assignment / Develop various classes.

Execute program with required input.

4.5 B1 8.1 B9, 11 8.2 B3

Enhancement of classes by using formal interfaces aid in the development of a more elegant program.

How do interfaces encourage programmers to implement standard procedures? How does the interface Comparable force programmers to develop similar methods to compare objects?

Oral questions / discussions.

Assignment / Develop classes bounded by various interfaces. Assignment / Develop classes using the Comparable interface.

Execute program with required input. Unit test.

Page 6: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

6

Assessments Relevant

Standards1 Enduring

Understandings Essential Questions Diagnostic

(before) Formative (during)

Summative (after)

4.5 B1 8.1 B9, 11 8.2 B3

Incorporation of GUI methods are used to enhance the appearance of the program for the user.

What is a dialogue box? How are dialogue boxes used to enhance the input and output of data into a program?

Assignment / Modify previous programs with a GUI interface.

Demonstration of modified program.

4.5 B1 8.1 B9, 11 8.2 B3

Applications and applets have distinct uses.

How do you incorporate programs on the Internet? Assignment / Develop various applets that can be accessed by Internet Explorer.

Demonstration of applets.

4.5 B1 8.1 B9, 11 8.2 B3

Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data.

How are large volumes of the same data structure stored and manipulated without declaring multiple variables? What are the pros and cons of using arrays and ArrayLists? How do ArrayLists represent arrays of objects? What is the difference between a generic ArrayList and a raw ArrayList?

Assignment / Develop programs using arrays. Assignment / Develop programs using raw ArrayLists and generic ArrayLists.

Unit test. Demonstration of programs.

4.5 B1 8.1 B9, 11 8.2 B3

Inheritance and polymorphism are imperative in the development of complex programs and classes.

How do you use inheritance so as not to replicate code?

Oral questions / discussions.

Assignment / Develop an inheritance hierarchy involving several related classes.

Graded programs. Unit test.

Page 7: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

7

Assessments Relevant

Standards1 Enduring

Understandings Essential Questions Diagnostic

(before) Formative (during)

Summative (after)

4.5 B1 8.1 B9, 11 8.2 B3

Sorting and searching techniques are necessary to effectively organize and process large amounts of data.

How is data sorted? How is the field to be sorted upon determined? How do you sort objects?

Assignment / Develop programs involving basic sorting techniques including bubble and selection sorts.

Graded programs. Unit test.

4.5 B1 8.1 B9, 11 8.2 B3

Recursion is a powerful programming technique.

What is recursion? How does recursion work? Why do you need a base case in recursion?

Assignment / Develop numerous recursive methods.

Demonstration of recursive within programs.

4.5 B1 8.1 B9, 11 8.2 B3

Analyzing the running time of different techniques, such as sorting, in the form of Big Oh notation.

How do you determine running time of a sort? What types of sorts use recursion?

Assignment / Evaluate the running times of the basic sorts. Assignment / Evaluate the running times of recursive sorts.

Quiz.

4.5 B1 8.1 B9, 11 8.2 B3

Use of standard advanced data structures to enhance program development.

What standard data structures are useful in program development? What is the difference between a stack and a queue? What is the difference between an ArrayList and LinkedList?

Oral questions / Discussion

Assignment / Develop programs involving Java data structures.

Demonstration of programs. Unit test.

Page 8: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

8

Assessments Relevant

Standards1 Enduring

Understandings Essential Questions Diagnostic

(before) Formative (during)

Summative (after)

4.5 B1 8.1 B9, 11 8.2 B3

Development of user defined data structures to enhance program development.

How is a singly LinkedList developed? What is a priority queue? What is a binary search tree?

Assignment / Develop programs involving user defined data structures such as a Stack.

4.5 B1 8.1 B9, 11 8.2 B3

Use of files when accessing data is standard procedure.

How are files used as persistent data in programming?

4.5 B1 8.1 B9, 11 8.2 B3

A Wrapper Class represents primitive data as objects.

How do you represent a primitive data type as your object? How do you represent primitive data in an ArrayList? What methods are provided by a Wrapper Class?

Oral questions / Discussion

Assignment / Develop programs that access files.

Demonstration of programs. Unit test.

Page 9: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

9

Freehold Regional High School District

Course Proficiencies and Pacing Honors Computer Science I

Unit Title

Unit Understandings and Goals

Recommended Duration

Unit #1: Introduction to Computers

Computer systems have evolved and become an intrinsic part of everyday life, both personal and in the workforce. Hardware and software work together to accomplish complex tasks. A computer program is a set of instructions created to perform the steps specified in an algorithm. 1. The student will understand the development of the generations of computer systems 2. The student will understand how hardware and software work together

1 week

Unit #2: Arithmetic Operations

Variables are used to store and access both primitive data and objects in order to perform different tasks in the form of a computer program. 1. The student will understand how to represent data in the computer 2. The student will understand how to perform arithmetic operations in computer programming.

2 weeks

Unit #3: Logical Operators and Loops

Fundamentals of computer program development include conditionals, looping, relational operators and the use of standard Java classes. (i.e. String Class and StringTokenizer Class.) Computer program development involves the incorporation of methods to perform repeated tasks. 1. The student will know how to set up conditionals using if-then statements 2. The student will know how and when to use for-loops and while-loops. 3. The student will be able to perform operations on Strings 4. The student will know how to use the StringTokenizer class

4 weeks

Unit #4: Arrays: One Dimensional

Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data. 1. The student will know how to represent many values in an array 2. The student will know how to use an array with loops to perform repeated operations

3 weeks

Unit #5: Basic Sorting and Searching

Sorting and searching techniques are necessary to effectively organize and process large amounts of data. 1. The student will know how to perform a bubble sort and a selection sort algorithm 2. The student will know how to perform a sequential search. 3. The student will get an introduction to the running time of these algorithms by big-oh notation

2 weeks

Page 10: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

10

Unit #6: Arrays: Multi-dimensional

Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data. 1. The student will know how to populate and print out a two-dimensional array 2. The student will know how to perform various operations and manipulations on the rows and

columns of the two-dimensional array

2 weeks

Unit #7: Introduction to Classes

User defined classes allow many programs to use the same objects. 1. The student will know how to create a class and distinguish between class method and object

methods 2. The student will know how to create an array of objects and perform operations on them

2 weeks

Unit #8: Introduction to Java Interfaces

Enhancement of classes by using formal interfaces aid in the development of a more elegant program. 1. The student will know how to use the Comparable interface and create compartTo() methods

for various objects 2. The student will get several Java interfaces and understand their use and importance.

2 weeks

Unit #9: ArrayLists and Iterators

Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data. 1. The student will understand the difference between Raw ArrayLists and Generic ArrayLists 2. The student will know how to use iterators to traverse through a list.

2 weeks

Unit #10: Wrapper Classes and Enhanced for Loops

A Wrapper Class represents primitive data as objects. 1. The student will understand that ArrayLists only hold objects and not primitive data 2. The student will know how to wrap primitive data into objects using Wrapper Classes 3. The student will know how to use enhanced for loops to traverse through lists

2 weeks

Unit #11: Introduction to Inheritance

Inheritance and polymorphism are imperative in the development of complex programs and classes. 1. The student will be able to create a simple hierarchy of classes that will incorporate

polymorphism 2. The student will be able to use user defined interfaces, java interfaces, several user defined

classes to create a complex hierarchical structure involving inheritance (Optional).

2 weeks

Unit #12: Recursion Recursion is a powerful programming tool. 1. The student will be able to develop simple recursive methods 2. The student will understand how to perform a binary search 3. The student will understand how recursive sorts work such as mergesort and quicksort 4. The student will be able to sort using mergesort and quicksort. (Optional). 5. The student will know how to perform complex recursive algorithms that find paths through a

maze (Optional).

2 weeks

Page 11: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

11

Unit #13: Java Data Structures Use of standard advanced data structures to enhance program development. 1. The student will be able to use these Java Structures in their programs.

2 weeks

Unit #14: User Defined Data Structures

Development of user defined data structures to enhance program development. 1. The student will be able to create a simple linked-list class 2. The student will be exposed to the concept of a binary tree

2 weeks

Unit #15: Analysis of Algorithms

Analyzing the running time of different techniques, such as sorting, in the form of Big Oh notation. 1. Student will be able to analyze running time of algorithms and represent the result in Big Oh

notation.

1 weeks

Unit #16: GUI Interfaces Incorporation of GUI methods are used to enhance the appearance of the program for the user. 1. Students will know how to use dialog boxes to enter and display data

1 weeks

Unit #17: Applets Applications and applets have distinct uses. 1. The student will be able to create simple applets that will be executed in Internet Explorer

2 weeks

Page 12: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

12

Freehold Regional High School District Honors Computer Science I

Unit #1: Introduction to Computers

Enduring Understandings: Computer systems have evolved and become an intrinsic part of everyday life, both personal and in the workforce. Hardware and software work together to accomplish complex tasks. A computer program is a set of instructions created to perform the steps specified in an algorithm. Essential Questions: What are the four generations of computers? What is the history of computers? What are the four parts of a computer system? How is data represented internally to the computer? What are the types of different programming languages? (High level, assembly language, machine language) What is the function of a compiler? What is an algorithm? Unit Goals: The student will understand the development of the generations of computer systems

The student will understand how hardware and software work together Duration of Unit: 1 week NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How has the role of computers changed over time? What role does the binary number system play in computer science? What are characteristics of a computer system? What factor do computers play in industry? What differences exist between the various types of programming languages?

Brainstorm the impact of computers. Describe the changing roles of computers over the last fifty years. Identify specific areas in which computers impact life. Identify characteristics of the computer system. Define similarities and differences in the various programming languages.

Current textbook

Lecture and class discussion Compare and discuss student responses to different topics relating to computers

Written tests and quizzes

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 13: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

13

Freehold Regional High School District Honors Computer Science I

Unit #2: Arithmetic Operations

Enduring Understanding: Variables are used to store and access both primitive data and objects in order to perform different tasks in the form of a computer program. Essential Questions: How do variables store data in memory? What are the different types of data? (i.e. int, double, etc…) Unit Goals: The student will understand how to represent data in the computer The student will understand how to perform arithmetic operations in computer programming. Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How are different types of data represented? What role does the variable play in computer science? How is data inputted into a computer program? What are the types of primitive data? How is a String represented in a computer program? How is data outputted to a screen? How are arithmetic operations performed on data? What is the difference between an equation and an assignment statement?

Develop a program that accepts input and performs arithmetic computations such as calculating the area of a circle. Describe the different ways to represent data. Describe the different uses of the ‘+’ operator (concatenation, addition). Describe how to use the modulus operator. Describe how to use various methods from the Math class. Discuss how variables are used to store and manipulate data.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 14: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

14

Freehold Regional High School District

Honors Computer Science I Unit #3: Logical Operators & Loops

Enduring Understandings: Fundamentals of computer program development include conditionals, looping, relational operators and the use of standard Java classes. (i.e. String Class and StringTokenizer Class.) Computer program development involves the incorporation of methods to perform repeated tasks. Essential Questions: What determines whether a loop is executed? How are loops utilized to process large amounts of data? How does an Object defined from a class differ from primitive data? How are methods used to compartmentalize code? Under what circumstances is it desirable to include a method within code? Unit Goals: The student will know how to set up conditionals using if-then statements

The student will know how and when to use for-loops and while-loops. The student will be able to perform operations on Strings The student will know how to use the StringTokenizer class Duration of Unit: 4 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How is a ‘for’ loop implemented? How is a ‘while’ loop implemented? How are ‘if/then/else’ statements implemented? What are the methods of the String class? How is the StringTokenizer class used to parse strings? How are random numbers generated? How is a class (static) method implemented?

Develop a program to find the average of a given number of test grades. (using a ‘for’ loop) Develop a program to find the average of test grades using a sentinel value. (using a ‘do while’ loop) List and describe the methods of the String class. List and describe the purpose and the methods of the StringTokenizer class. Discuss the benefits of a class method. Generate random numbers in a given range.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 15: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

15

Freehold Regional High School District

Honors Computer Science I

Unit #4: Arrays: One Dimensional Enduring Understanding: Standard data structures such as Arrays and Array Lists are powerful tools used to represent and manipulate data. Essential Questions: How are large volumes of the same data structure stored and manipulated without declaring multiple variables? What are the pros and cons of using arrays and ArrayLists? How do ArrayLists represent arrays of objects? What is the difference between a generic ArrayList and a raw ArrayList? Unit Goals: The student will know how to represent many values in an array The student will know how to use an array with loops to perform repeated operations Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is an array? When is it appropriate to use an array? How is an initializer list used to populate an array? How is the Scanner class used to read data from a file into an array? How is an array sent as a parameter to a method?

Discuss the advantages of using arrays. Demonstrate how the Scanner class is used. Develop static methods using arrays as parameters. Populate arrays using various techniques.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 16: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

16

Freehold Regional High School District Honors Computer Science I

Unit #5: Basic Sorting and Searching

Enduring Understanding: Sorting and searching techniques are necessary to effectively organize and process large amounts of data. Essential Questions: How is data sorted? How is the field to be sorted upon determined? How do you sort objects? Unit Goals: The student will know how to perform a bubble sort and a selection sort algorithm The student will know how to perform a sequential search. The student will get an introduction to the running time of these algorithms by big-oh notation Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

Why is it necessary to sort an array? How is sorting and alphabetizing similar? How is String data represented in memory relative to alphabetizing? How is it determined which field to sort upon? How do you sort an array using the procedure selection sort? How do you sort an array using the procedure bubble sort? How do you perform a sequential search on an array?

Research the data representation in the Unicode table. Develop the algorithm for selection sort. Develop the algorithm for bubble sort. Alphabetize data in an array. Sort data in either ascending or descending order.

Current textbook Computers Printers

Lecture and class discussion Human sort (demonstrate bubble and selection sort algorithms with students holding numbers)

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 17: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

17

Freehold Regional High School District Honors Computer Science I

Unit #6: Arrays: Two-Dimensional

Enduring Understanding: Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data. Essential Questions: How are large volumes of the same data structure stored and manipulated without declaring multiple variables? How are large volumes of the same data structure stored and manipulated without declaring multiple variables? What are the pros and cons of using arrays and ArrayLists? How do ArrayLists represent arrays of objects? What is the difference between a generic ArrayList and a raw ArrayList? Unit Goals: The student will know how to populate and print out a two-dimensional array The student will know how to perform various operations and manipulations on the rows and columns of the two-dimensional array Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How is a two-dimensional array used to represent a matrix of data? How is a ragged array populated? How is a ragged array printed out? How is an initializer list used to populate a two-dimensional array? When is it appropriate to use a two-dimensional array?

Describe how to find the average of each row of a two-dimensional array. Describe how to find the average of each column of a two-dimensional array.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 18: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

18

Freehold Regional High School District Honors Computer Science I

Unit #7: Introduction to Classes

Enduring Understanding: User defined classes allow many programs to use the same objects. Essential Questions: How are classes used in programming? How are objects and classes related? Unit Goals: The student will know how to create a class and distinguish between class methods and object methods he student will know how to create an array of objects and perform operations on them Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is a class? How do you implement a class? How is a static method used? What is the difference between an ‘is-a’ and a ‘has-a’ relationship? What is a constructor? What is instance data? What is the difference between a public method and a private method?

Develop a student class. Create different types of constructors within the same class. Develop helper methods or private methods to aid in the functionality of the public methods.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 19: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

19

Freehold Regional High School District

Honors Computer Science I

Unit 8#: Introduction to Java Interfaces Enduring Understanding: Enhancement of classes by using formal interfaces aid in the development of a more elegant program. Essential Questions: How do interfaces encourage programmers to implement standard procedures? How does the interface Comparable force programmers to develop similar methods to compare objects? Unit Goals: The student will know how to use the Comparable interface and create compartTo () methods for various objects The student will get several Java interfaces and understand their use and importance. Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is the purpose of an interface? What are the requirements for implementing the Java interface Comparable? How do you create an array of objects? How do you write a compare To method for a class? How do you sort an array of objects using the Comparable interface?

Develop a class that implements the Comparable interface. Write a compare To method for a class. Create an array of objects and sort that array following the guidelines of the Comparable interface. Sort an array of Java objects that already have implemented the Comparable interface.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 20: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

20

Freehold Regional High School District Honors Computer Science I

Unit #9: ArrayLists and Iterators

Enduring Understanding: Standard data structures such as Arrays and ArrayLists are powerful tools used to represent and manipulate data. Essential Questions: How are large volumes of the same data structure stored and manipulated without declaring multiple variables? What are the pros and cons of using arrays and ArrayLists? How do ArrayLists represent arrays of objects? What is the difference between a generic ArrayList and a raw ArrayList? Unit Goals: The student will understand the difference between Raw ArrayLists and Generic ArrayLists The student will know how to use iterators to traverse through a list. Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is an ArrayList? What is the difference between an ArrayList and an array? What are the advantages of an ArrayList over an array? How do you use the methods in a generic ArrayList as opposed to a raw ArrayList?

Create a raw ArrayList of Strings. Create a generic ArrayList of Strings. Use the methods of an ArrayList to replace or insert objects into the ArrayList. Use a while loop and the remove method to delete all the objects of an ArrayList.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 21: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

21

Freehold Regional High School District

Honors Computer Science I

Unit #10: Wrapper Classes and Enhanced for Loops Enduring Understanding: A Wrapper Class represents primitive data as objects. Essential Questions: How do you represent a primitive data type as your object?

How do you represent primitive data in an ArrayList? What methods are provided by a Wrapper Class?

Unit Goals: The student will understand that ArrayLists only hold objects and not primitive data The student will know how to wrap primitive data into objects using Wrapper Classes The student will know how to use enhanced for loops to traverse through lists Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

Can an ArrayList hold primitive data? How can you represent primitive data as an object? What is a Wrapper class? How is a Wrapper class used? What is an enhanced for loop? How do you use an enhanced for loop? What are the different types of wrapper Classes and what are their methods?

Represent an array of ints in an ArrayList by wrapping the primitive data into the Integer class. Print out an ArrayList of Integers using an enhanced for loop. Perform arithmetic operations on the ArrayList of Integers by using various methods from the Integer Class. Perform similar operations on other Wrapper classes such as the Double class. Perform operations such as insertions, replacements and deletions on the ArrayList.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 22: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

22

Freehold Regional High School District Honors Computer Science I

Unit #11: Introduction to Inheritance

Enduring Understanding: Inheritance and polymorphism are imperative in the development of complex programs and classes. Essential Questions: How do you use inheritance so as not to replicate code? Unit Goals: The student will be able to create a simple hierarchy of classes that will incorporate polymorphism

The student will be able to use user defined interfaces, java interfaces, several user defined classes to create a complex hierarchical structure involving inheritance. (Optional)

Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is polymorphism? What is the difference between private, public and protected instance data? How do you create a simple hierarchy of classes?

Create a simple hierarchy of two classes that incorporate polymorphic methods? In a driver instantiate several objects of each class and perform certain operations using their pre-defined methods. Determine in an object which form of the polymorphic method will be implemented.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 23: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

23

Freehold Regional High School District

Honors Computer Science I Unit #12: Recursion

Enduring Understanding: Recursion is a powerful programming tool. Essential Questions: What is recursion? How does recursion work? Why do you need a base case in recursion? Unit Goals: The student will be able to develop simple recursive methods

The student will understand how to perform a binary search The student will understand how recursive sorts work such as mergesort and quicksort The student will be able to sort using mergesort and quicksort. (Optional)

The student will know how to perform complex recursive algorithms that find paths through a maze (Optional) Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is the difference between a recursive method and an iterative method? Why do we use recursion? Is recursion always more efficient than the iterative approach?

Develop simple recursive methods such as the sum of the first n numbers and the factorial of a number.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 24: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

24

Freehold Regional High School District

Honors Computer Science I

Unit #13: Java Data Structures Enduring Understanding: Use of standard advanced data structures to enhance program development. Essential Questions: What standard data structures are useful in program development? What is the difference between a stack and a queue? What is the difference between an ArrayList and LinkedList? Unit Goal: The student will be able to use these Java Structures in their programs. Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is a LinkedList? What are the methods of a LinkedList that are part of the Java API? What are the methods of the ArrayList class? What interface does the LinkedList class and ArrayList class implement?

Develop a LinkedList of Strings and perform basic operations on the data using methods in the Java API LinkedList class. List and describe the operations of a stack and its uses. List and describe the operations of a queue and its uses.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 25: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

25

Freehold Regional High School District Honors Computer Science I

Unit #14: User Defined Data Structures

Enduring Understanding: Development of user defined data structures to enhance program development. Essential Questions: How is a singly LinkedList developed? What is a priority queue? What is a binary search tree? Unit Goals: The student will be able to create a simple linked-list class The student will be exposed to the concept of a binary tree Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How is a Node class that will be used for a LinkedList developed? How is a binary search tree constructed?

Develop a Node class that will be used for a LinkedList that will include the methods getValue, getNext and setNext. Develop a LinkedList in a driver using the Node class and the String class. Discuss the operation of inserting or deleting a node. Discuss how LinkedLists can be used to develop a Stack class or a Queue class. Discuss how a binary tree is constructed. Discuss how to perform various traversals on the binary tree. Discuss the difference between a Queue and a Priority Queue.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 26: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

26

Freehold Regional High School District Honors Computer Science I

Unit #15: Analysis of Algorithms

Enduring Understanding: Analyzing the running time of different techniques, such as sorting, in the form of Big Oh notation. Essential Questions: How do you determine running time of a sort or search? What types of sorts use recursion? Unit Goal: Student will be able to analyze running time of algorithms and represent the result in Big Oh notation. Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

How do you determine the running time of a sequential or binary search? How do you determine the running time of a selection sort and bubble sort? What are the running times of Quick sort and Merge sort?

Determine the running times of sequential and binary sorts in Big Oh notation. Determine the running time of a selection sort and a bubble sort. Discuss the running times of the recursive sorts. Compare the running times of all previous sorts.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 27: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

27

Freehold Regional High School District

Honors Computer Science I

Unit #16: GUI Interfaces Enduring Understanding: Incorporation of GUI methods are used to enhance the appearance of the program for the user. Essential Questions: What is a dialogue box? How are dialogue boxes used to enhance the input and output of data into a program? Unit Goal: Students will know how to use dialog boxes to enter and display data Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is GUI? How are the Swing classes used to improve the user interface in a program?

Develop a program using the methods of JOptionPane class. Develop a program using the JFrame class that incorporates radio buttons, check boxes and text fields.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.

Page 28: FREEHOLD REGIONAL HIGH SCHOOL DISTRICT€¦ · freehold regional high school district . office of curriculum and instruction . computer science academy . honors computer science i

28

Freehold Regional High School District Honors Computer Science I

Unit #17: Applets

Enduring Understanding: Applications and applets have distinct uses. Essential Question: How do you incorporate programs on the Internet? Unit Goal: The student will be able to create simple applets that will be executed in Internet Explorer Duration of Unit: 2 weeks NJCCCS: 4.5 B1, 8.1 B9, 8.1 B11, 8.2 B3

Guiding / Topical Questions

Content, Themes, Concepts, and Skills

Instructional Resources and

Materials Teaching Strategies

Assessment Strategies

What is an applet? What methods are used to run an applet? How is HTML used to run an applet?

Develop a simple applet. Use HTML to access an applet Execute an applet using Internet Explorer. Execute an applet using applet viewer.

Current textbook Computers Printers

Lecture and class discussion

Written tests and quizzes Writing and debugging of computer programs.

Suggestions on how to differentiate in this unit: • Students with advanced skills can be given supplemental material. • Students who require additional assistance can be paired up with those with advanced skills.