Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm Indicator 2.a.5 Compare and contrast compiling and executing a program Indicator 2.a.7 Debug a program Indicator 4.a.1 Design a step-by-step plan to solve a problem Indicator 4.a.2 Utilize diagrams and organizational structures for problem-solving Indicator 5.a.6 Subdivide a problem into modules by defining suitable objects Indicator 5.a.7 Write code that implements an object-oriented solution to the problem Indicator 5.a.8 Modify objects from existing libraries and create new objects Indicator 14.a.1 Construct a simple Boolean expression to evaluate a given condition Indicator 14.a.2 Construct an if/then statement to perform a specific task Indicator 14.a.3 Construct an if/then/else statement to perform a specific task Indicator 14.a.4 Use conditional statements for decision making in programs Indicator 15.a.1 Determine when a loop is needed in a program Indicator 15.a.2 Implement loops in programs Indicator 15.a.3 Incorporate singel entry and exit point, pre- and post-conditions Indicator 15.a.5 Incorporate loop invariants into loops Indicator 18.a.1 Test a program using an appropriate and complete set of data Indicator 19.a.2 Identify the differences among syntax, runtime, and logic errors a. Classes and Objects i. Inheritance ii. Polymorphism iii. Constructors iv. Instance methods b. Algorithms & Control Structures i. while ii. if iii. for iv. boolean methods v. void methods c. Abstract Classes and Interfaces FCPS Java Packets, Unit 1, Labs00-15
Unit 2: Graphics 4 weeks Indicator 8.a.1 Design computer graphics Indicator 8.a.2 Implement computer graphics Indicator 8.a.3 Plot points and areas Indicator 8.a.4 Determine and set window or screen dimensions Indicator 8.a.5 Determine and set screen and background colors Indicator 8.a.6 Use box commands Indicator 8.a.7 Describe the role of graphics in the computer enviroment a. Built-in Graphics Classes b. User-defined graphics classes c. Animation Unit 2, Labs00-20
Unit 3: User Interface 6 weeks Indicator 1.a.3 Design and implement computer programs to solve mathematical problems Indicator 2.a.6 determine what a given output statement will print Indicator 2.a.7 Debug a program Indicator 2.a.8 Provide required documentation for a program Indicator 6.a.1 Design a screen layout to facilitate input Indicator 6.a.2 Design a screen layout to facilitate output Indicator 6.a.3 Filter out invalid data, using a variety of methods Indicator 6.a.4 Construct input statements to read values into a program Indicator 6.a.5 Determine the contents of variable assigned by input statements Indicator 7.a.1 Design an output layout Indicator 7.a.3 Use output statements Indicator 7.a.4 Label results Indicator 9.a.1 Define and use variable data types Indicator 10.a.1 Write numeric and string variables using valid names Indicator 11.a.1 Determine when the use of a variable is appropriate Indicator 11.a.2 Describe how a computer stores, accesses, and processes variables Indicator 11.a.3 Incorporate variable addresses, pointers, and parameter passing Indicator 11.a.4 Differentiate between local and global variables Indicator 11.a.5 Compare and contrast variables and constants Indicator 12.a.1 Translate a mathematical expression into a computer statement Indicator 12.a.2 Use the order of operations to simplify expressions Indicator 12.a.3 Write variable assignment statements Indicator 12.a.4 Construct and evaluate expression with multiple arithmetic operations Indicator 13.a.1 Use library functions in designing programs to process data Indicator 13.a.2 Use library functions that are arithmetic or string operators Indicator 13.a.3 Invoke a value-returning function Indicator 19.a.1 Debug a program using controlled breaks and other debugging tools a. Buttons & Listeners b. Return methods c. Layout Managers d. Console I/O--Scanner class e. Nested for-loops Resources and Unit 3, Labs00-17
Unit 4: Data Storage 3 weeks Indicator 7.a.2 Access various output devices Indicator 16.a.1 Declare a one-dimensional or two-dimensional array for a given problem Indicator 16.a.2 Choose an appropriate component type for an array Indicator 16.a.3 Assign a value to an array component Indicator 16.a.4 Fill an array with data and process the data in the array Indicator 16.a.5 Access a particular component of a two-dimensional array Indicator 16.a.6 Retrieve data from an array a. Arrays b. Files c. Objects in Arrays d. Matrices Unit 4, Labs00-15 Unit of Study / Unit 5: Computer Number Systems a. Binary, Hexadecimal, ASCII Computer Number Systems Packet
Unit 6: Boolean Algebra a. Boolean logic, truth tables, gates & circuits Boolean Algebra Packet Unit of Study / Resources and Unit 7: Software & Hardware Indicator 2.a.1 Describe what a computer program is Indicator 2.a.2 List and describe the stages involved in writing a computer program Indicator 2.a.3 Describe the function of an algorithm Indicator 2.a.4 Describe the interplay of hardware and software in program execution Indicator 3.a.1 For a given problem, describe the pre- and post-conditions and output Indicator 3.a.2 Determine whether or not a problem is solvable Indicator 3.a.3 Write program specifications that define the constraints of a problem Indicator 3.a.4 Describe the solution set as a set of interacting objects Indicator 11.a.6 Use basic operating system commands Indicator 11.a.7 Recognize and describe major hardware components Indicator 11.a.8 Recognize and describe major system software Indicator 11.a.9 Relate the evolution/hierarchy of hardware and programming languages
Unit 8: Computers & Society Indicator 21.a.1 Investigate careers and real-world applications of computer science Indicator 21.a.2 Investigate the social and ethical implications of computer use Indicator 21.a.3 Use the Internet as a research tool as well as a programming medium Indicator 21.a.4 Trace the history of computer science during the information age Unit of Study / Unit 9: Data Processing 6 weeks Indicator 5.a.1 Subdivide a problem into modules by task Indicator 5.a.2 Implement the solution of the problem Indicator 5.a.3 Write task-oriented modules Indicator 5.a.4 Determine the need for a subroutine or user-defined function Indicator 5.a.5 Determine the need for internal and external subroutines and functions Indicator 15.a.4 Design and implement recursive loops Indicator 17.a.1 Implement pre-existing algorithms into a program Indicator 17.a.2 Implement a sort routine on a one-dimensional array Indicator 17.a.3 Implement a sequential search routine on a one-dimensional array Indicator 17.a.4 Implement a binary search routine on a one-dimensional array Indicator 17.a.6 Informally analyze an algorithm for program efficiency a. Sorting Primitives i. Selection Sort ii. Insertion Sort b. Sorting Objects i. Comparable ii. Comparator c. Parsing Strings d. Recursion Unit 5, Labs00-15
Unit 10: Individual Projects 2 weeks Indicator 20.a.1 Design, write, test, debug, and document a complete structured program a. Specify the purpose and goals for a program. b. Decompose a problem into classes, define relationships and responsibilities of those classes. c. Design and implement a set of interacting classes. d. Choose appropriate data structures and algorithms. Resources and