|
Program of Study for High School Mathematics
1) allows students to develop programming skills and an understanding of object-orientation in order to prepare them for future study or work in the field of computer science, and
2) develops students’ problem solving and design skills through an object-oriented environment and group problem-solving tasks.
This course uses an object-oriented approach to Java programming, including the concepts of data abstraction, information hiding, encapsulation, polymorphism and inheritance, and allows students to design, implement, and analyze solutions to a wide range of mathematical and non-mathematical problems using the computer. Additional topics from the areas of computer systems, graphics, logic, ethics, history, and the Internet will be addressed.
To help students see the big picture of object-oriented programming early, the course will begin with an investigation of some simple Java classes that implement Karel J. Robot (the Java version of Karel the Robot). In just a few weeks, students receive a basic introduction to key aspects of object-oriented programming, making later topics in the course much easier to handle.
The FCPS Computer Science POS is a superset of the 2003 Virginia Standards of Learning (SOL) for Computer Mathematics. Required FCPS POS indicators and terms that go beyond the Virginia SOLs are in italics type, while the Virginia SOL indicators are referenced by their COM numbers.
- Morelli, Ralph. Java, Java, Java: Object-Oriented Programming. Prentice Hall. 2002.
- Savitch, Walter. Java: An Introduction to Computer Science and Programming. Prentice Hall. 2001.
- Farrell, Joyce. Java Programming. Thomson Learning. 2003.
Benchmark
Students describe and implement the program development cycle: defining the problem, planning a solution, carrying out the plan, debugging the program, and providing program documentation. By taking control of the object-oriented programming process, students develop skills in problem-solving, including finding sources of information that support further learning.
Key Terms
| algorithm |
classes |
object oriented design |
| pseudo code |
objects |
stepwise refinement |
| debug |
instantiate |
top-down design |
| input/output |
API |
bottom-up design |
- Write program specifications that define the constraints of a problem. These include descriptions of pre-conditions, post-conditions, the desired output, analysis of the available input and indications to whether or not the program is solvable under the given conditions. Think of the solution as a set of interacting objects. (COM. 3)
- Design and implement a plan (algorithm) to solve a given problem. Again we must think of a program solution as a set of well-defined objects interacting with each other. (COM. 2, 4, 20)
- Test a program using appropriate sets of data. The data sets should be comprehensive and test for all expected outcomes. (COM. 17)
- Debug programs using appropriate techniques and identify the differences between syntax errors and logic errors. (COM. 19)
- Document a program, including internal and external documentation. (COM. 2)
back to top
II. Program Implementation
Benchmark
Students design, develop, and implement a solution to a problem, often by reading, modifying, and extending existing classes. Students should be able to code fluently in Java and incorporate standard Java classes.
Indicators
- Divide problems by task into manageable sections (modules). (COM. 5)
- Design and implement the input phase of a program including user interface, screen layout and various methods of streaming data and error trapping. (COM. 6)
- Design and implement the output phase of a program including output layout and format. Access various output devices. (COM. 7)
- Translate mathematical expressions into computer statements using assignment statements and order of operations. (COM. 11)
- Select and implement built-in functions and appropriate libraries (header files) to process data. (COM. 12)
- Design and implement conditional statements including if, if/else, switch and Boolean logic. (COM. 13)
- Design conditional and interactive loops including for, while, and do while. Pre-conditions, post-conditions, recursion and loop invariance will be included. ( COM. 14)
- Use pre-existing classes in an object-oriented environment. (COM. 5, 16)
- Modify objects from existing libraries and create new objects. (COM. 5)
- Re-use code from a well-defined library of classes when appropriate. (COM. 5,16)
- Design and implement computer graphics as an end in itself, an enhancement to other output, and as a vehicle for reinforcing programming techniques. (COM. 8)
back to top
III. Data Structures
Benchmark
Students select and design data types that best represent and manage the data elements in a program.
Key Terms
| array |
boolean |
char |
| data type |
double |
float |
| int |
long |
string |
Indicators
- Define and use primitive variable data types, including int, char, double, and Boolean. (COM. 9)
- Select, design and use appropriate data structures including single and multi-dimensional arrays, strings, and classes. Implementation will include constructing structures, populating, manipulating and retrieving their data. (COM. 15)
back to top
IV. Algorithms
Benchmark
Students select and implement well-known algorithms to solve problems.
Key Terms
| Binary search |
Bubble sort |
Selection sort |
|
Sequential search |
|
Indicators
- Identify, modify and implement pre-existing algorithms, including summing routines, grouping routines, string manipulating routines, recursive routines, sort routines, search routines and animation routines. (COM. 16)
- Informally analyze running time and execution count of an algorithm for program efficiency.
- Solve mathematical, probability, statistical and practical consumer problems using formulas, equations, graphs, tables, charts, and functions. (COM. 1)
back to top
V. Computer Systems
Benchmark
Students identify the major hardware and software components of a computer system, their relationship to one another and the roles of these components within the system.
Key Terms
| byte |
binary |
byte code |
| compiler |
editor |
CPU |
| floppy disk |
interpreter |
hard drive |
| JVM |
machine language |
source code |
| RAM |
|
ROM |
Indicators
- Use operating system commands including creating a file, opening an existing file, saving a file, making a printed copy of a file, and compiling and executing a program.
- Describe the way the computer stores, accesses and processes information. Different variable and constant types, reference and value parameters, scope of variables, public and private data, file types, data storage and memory allocation should be included as topics. (COM. 10)
- Recognize and describe major hardware components including primary and secondary memory, processors, and peripherals.
- Recognize and describe major system software including language translators and operating systems.
- Relate the evolution and hierarchy of hardware and programming languages.
back to top
VI. Computers in Society
Benchmark
Students recognize the ethical and social implications of computer use.
Key Terms
| Copyright |
|
Information Age |
Indicators
- Investigate career opportunities and real-world applications of computer science.
- Investigate the social and ethical implications of programming computers and their use.
- Use the Internet as a research tool as well as a programming medium.
- Interpret the history of computer science through the development of the information age.
David Van Vleet
Mathematics Specialist
DVanVleet@fcps.edu
703-846-8650
Donald Lacey Instructional Center
3705 Crest Drive
Annandale, VA 22003
|