Course #: CB40 Course Name: AP Computer Science A Prerequisites: CB09 Grade Level: 9-12 Level of Difficulty: Average # of Credits: 1 year – 1 Credit The following is a Career and Technical Education (CTE) class under the Information Technology Program AP Computer Science Units Unit 1: Introduction to JAVA and OOP Understand how to use the JDK in the development environment to compile and output simple JAVA Code. Unit 2: JAVA and Computer Basics TSW understand how software utilizes and interfaces with computer hardware. Unit 3: More JAVA Basics TSW solve basic mathematic problems using critical thinking skills. Unit 4: Defining Variables, Arithmetic Expressions TSW access the API to locate examples of proper syntax for defining variables and arithmetic expressions. Unit 5: Conditionals and Looping TSW code conditional statements that execute loops in a controller manner. Unit 6: Introduction to Classes and OOP TSW design and implement user defined classes. Unit 7: Advanced Control Statements TSW code conditional statements of increased difficulty and depth. Unit 8: Arrays TSW implement arrays in a program. Unit 9: Advanced Operations: Strings, Arrays & Array Lists TSW write JAVA code using more difficult programming constructs. Unit 10: Recursion, Complexity Searching & Sorting TSW increase the efficiency of the code by using advanced data structures and methods. Unit 11: More on Classes, Inheritance, Interfaces, Polymorphism and Collections TSW use inheritance to extend a class and implement an interface for a new class. Unit 12: Case Study TSW use all of the knowledge obtained to design and create according to case study requirements. 1 CB40 AP Computer Science–Suggested Teaching Timeline First Semester August Sept. Oct. Second Semester Nov. Dec. Jan. Feb. March April May Unit 1: Intro to JAVA and OOP Unit 2: JAVA and Computer Basics Unit 3: More JAVA Basics Unit 4: Defining Variables, Arithmetic Expressions Unit 5: Conditionals and Looping Unit 6: Introduction to Classes and OOP Unit 7: Advanced Control Statements Unit 8: Arrays Unit 9: Advanced Operations: Strings, Arrays & Array Lists Unit 10: Recursion, Complexity Searching & Sorting Unit 11: More on Classes, Inheritance, Interfaces, Polymorphism and Collections 2 Unit 12: Case Study 3 Career & Technical Education Unit 1: Introduction to JAVA and OOP TSW: Understand how to use the JDK in the development environment to compile and output simple JAVA Code. Knowledge and Skills Knowledge Java Development Kit (JDK) Integrated Development Environment (IDE) Object Oriented Programming (OOP) Skills Arizona CTE Standards STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs 8.5 Access program and language documentation Resources Java Development Kit (JDK) Integrated Development Environment (IDE) Access to the Oracle Site on the Internet Examine JDK terms and OOP concepts: classes, objects and methods Identify the different IDE’s Develop proficiency in writing code and producing output through the IDE 4 Career & Technical Education Unit 2: JAVA & Computer Basics TSW understand how software utilizes and interfaces with computer hardware. Knowledge and Skills Knowledge Subsystems of the computer: CPU, RAM, User interfaces, I/O Devices, network connections and auxiliary storage Basic JAVA Concepts: objects, classes, methods, and commands Copyright laws, ethics and intellectual property Skills Write, edit, compile and run basic JAVA programs Categorize subsystems by function Differentiate between computer ethics, copyright laws and intellectual property Arizona CTE Standards STANDARD 1.0 ─ APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.3 Use problem-solving processes STANDARD 2.0 ─ MAINTAIN A SAFE GREEN INFORMATION TECHNOLOGY WORK ENVIRONMENT 2.7 Explain environmental considerations when disposing of computer/networking components STANDARD 3.0 ─ RECOGNIZE SECURITY ISSUES RELATED TO INFORMATION TECHNOLOGY 3.1 Explain procedures to maintain data integrity and security 3.2 Identify security issues related to the network, computer hardware, software, and data 3.3 Describe computer threats and methods to protect a computer, i.e., viruses, phishing, e-mail, social engineering, spoofing, identify theft, and spamming 3.4 Explain concepts such as denial of service, hacking/cracking, intrusion, detection, and prevention STANDARD 4.0 ─ EXPLORE LEGAL AND ETHICAL ISSUES RELATED TO INFORMATION TECHNOLOGY 4.1 Explore intellectual property rights including software licensing and software duplication 4.2 Understand the legal and ethical issues related to the difference between open source and proprietary systems 4.3 Identify issues and trends affecting computers and information privacy 4.4 Differentiate between ethical and legal uses of information technology, i.e., data pricing, use of public and private networks, social networking, industry-related data, and data piracy STANDARD 6.0 ─ DESCRIBE THE DEVELOPMENT/EVOLUTION OF COMPUTERS AND INFORMATION TECHNOLOGY 6.1 Describe a computer, its components and functions 6.2 Explain the historical evolution of the computer and computer networks Resources Java Development Kit (JDK) Integrated Development Environment (IDE) Access to the Oracle Site on the Internet 5 6.3 Explain how the development of computers has impacted modern life 6.4 Discuss future trends in information technology STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs STANDARD 18.0 ─ EMPLOY OBJECT-ORIENTED PROGRAMMING TECHNIQUES 18.1 Make a distinction between an object and a class 6 Career & Technical Education Unit 3: Basic JAVA and General Mathematics TSW solve basic mathematic problems using critical thinking skills. Knowledge and Skills Knowledge Binary, Hexadecimal and decimal conversions Random number generator Program modules, parameters and return values Skills Convert Binary and Hexadecimal Representation to decimal Implement a random number generator Import java.util.random to generate random numbers Design program modules to solve problems Arizona CTE Standards STANDARD 1.0 ─ APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.3 Use problem-solving processes 1.4 Explain the purpose, types, and content of documentation STANDARD 5.0 ─ DEMONSTRATE BASIC COMPUTER MATHEMATICS REQUIRED FOR INFORMATION TECHNOLOGY 5.1 Relate the function of general mathematics to computer hardware 5.2 Perform binary to decimal, decimal to hexadecimal, hexadecimal to decimal, binary to hexadecimal, and binary to hexadecimal conversions as needed to solve problems with hardware and software STANDARD 11.0 ─ EMPLOY MODULARITY IN WRITING PROGRAMS 11.1 Access standard library functions 11.2 Demonstrate the use of parameters to pass data into program modules 11.3 Demonstrate the use of return values from modules STANDARD 18.0 ─ EMPLOY OBJECT-ORIENTED PROGRAMMING TECHNIQUES 18.1 Make a distinction between an object and a class 18.4 Identify appropriate statements to invoke an object's accessor methods Resources Access to JAVA utilities subset i.e. java.util.random JDK, IDE Pima JTED Wiki 7 Career & Technical Education Unit 4: Defining Variables, Arithmetic Expressions TSW access the API to locate examples of proper syntax for defining variables and arithmetic expressions. Knowledge and Skills Knowledge Different types of variables Arithmetic Expressions including mixed mode Different types of errors i.e. syntax, run-time, and logic Casting of different data types for predictable results Skills Declare and use variables of different data types Construct mixed mode expressions that produce accurate results Differentiate between primitive data types Correctly use JAVA subset commands such as assignment and casting Categorize, identify and correct errors in code, including syntax, logic, and run-time AZ CTE Standards STANDARD 1.0 ─ APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.3 Use problem-solving processes STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs 8.5 Access program and language documentation STAMDARD 9.0 TEST AND DEBUG TO VERIFY PROGRAM OPERATION 9.1 Identify errors in program modules 9.3 Perform integration testing including tests within a program to protect execution from bad input or other run-time errors 9.4 Categorize, identify, and correct errors in code, including syntax, logic, and run-time STANDARD 14.0 ─ UTILIZE SIMPLE DATA TYPES AND STRINGS 14.1 Declare numeric, Boolean, character, and string variables 14.2 Choose the appropriate data type for a given situation STANDARD 19.0 ─ APPLY KNOWLEDGE OF CODE TO PERFORM RUN-TIME ERROR-HAND 19.1 Identify (catch) run-time errors and take appropriate action 19.2 Identify the proper syntax for user-created errors (throw errors Resources Online JAVA Application Programming Interface (API) Manual JDK and IDE 8 Career & Technical Education Unit 5: Conditionals and Looping TSW code conditional statements that execute loops in a controller manner. Knowledge and Skills Knowledge Conditionals i.e. if, if/else statements Looping constructs i.e. while and for Flow charts for designing decision structures Desk-checking code for errors Skills Create conditional statements that execute loops in a controlled manner Evaluate conditional statements Utilize loops and conditionals to convert flow chart into executable code Code and test nested loops AZ CTE Standards STANDARD 7.0 ─ DEMONSTRATE PROGRAM ANALYSIS AND DESIGN 7.2 Interpret a problem statement and identify program requirements 7.3 Apply pseudo code or a graphical representation to show 7.5 Choose appropriate data structures STANDARD 9.0 TEST AND DEBUG TO VERIFY PROGRAM OPERATION 9.5 Hand trace code STANDARD 12.0 ─ UTILIZE CONDITIONAL STRUCTURES IN WRITING PROGRAMS 12.1 Compare values using relational operators, i.e., =, >, <, >=, <=, and not equal 12.2 Evaluate Boolean expressions 12.3 Select an appropriate decision structure for a given situation 12.4 Select correct syntax for decision statements, i.e., if/else, if, and switch case 12.5 Select the correct nesting syntax for decision structures Resources JDK and IDE Online JAVA Notes 6.0 (free source) http://math.hws.edu/javano tes/ 9 Career & Technical Education Unit 6: Introduction to Classes and OOP TSW design and implement user defined classes. Knowledge and Skills Knowledge User defined classes Internal structure of classes and objects Scope and lifetime of variables Structure and behavior of methods Constructor, accessor, mutator, instance variable, encapsulation, information hiding Skills Design and implement a simple class Differentiate between public and private access in a class Define a method and declare parameters in that method Create constructors, mutators and accessors using parameters AZ CTE Standards STANDARD 1.0 ─ APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.3 Use problem-solving processes STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs 8.3 Follow established documentation standards STANDARD 9.0 TEST AND DEBUG TO VERIFY PROGRAM OPERATION 9.1 Identify errors in program modules 9.2 Identify boundary cases and generate appropriate test data STANDARD 14.0 ─ UTILIZE SIMPLE DATA TYPES AND STRINGS 14.1 Declare numeric, Boolean, character, and string variables 14.2 Choose the appropriate data type for a given situation 14.3 Identify the correct syntax for constants in a program 14.4 Identify the correct syntax for initializing and modifying variables 14.5 Identify the correct syntax for operations on strings, including length, substring, and concatenation STANDARD 16.0 ─ IDENTIFY WAYS TO INPUT AND OUTPUT INFORMATION 16.1 Identify appropriate methods to input data on a console and/or GUI 16.2 Identify correct input/output statements in a program 16.3 Choose the correct method of assigning input to variables 16.4 Choose the correct method of outputting text with formatting STANDARD 18.0 ─ EMPLOY OBJECT-ORIENTED PROGRAMMING TECHNIQUES 18.5 Change the state of an object by invoking a modifier method 18.6 Determine the requirements for constructing new objects by reading the API 18.7 Identify the correct syntax for an original user-defined Resources JDK and IDE Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanot es/ 10 class 18.8 Identify the correct syntax for a class that extends an existing class 11 Career & Technical Education Unit 7: Advanced Control Statement TSW code conditional statements of increased difficulty and depth. Knowledge and Skills Knowledge Logical Operators Truth Tables Advanced topics with loops i.e. nested, creating test data, verification and debugging Boolean statements Switch / Try-Catch statements Skills Construct Boolean statements using logical operators Construct nested loops Create test data that adequately tests the code i.e. equivalence, boundaries, and extremes Hand trace the logic Incorporate switch and trycatch statements Process an external data source AZ CTE Standards STANDARD 3.0 ─ RECOGNIZE SECURITY ISSUES RELATED TO INFORMATION TECHNOLOGY 3.1 Explain procedures to maintain data integrity and security 3.4 Explain concepts such as denial of service, hacking/cracking, intrusion, detection, and prevention STANDARD 9.0 TEST AND DEBUG TO VERIFY PROGRAM OPERATION 9.5 Hand trace code STANDARD 12.0 ─ UTILIZE CONDITIONAL STRUCTURES IN WRITING PROGRAMS 12.4 Select correct syntax for decision statements, i.e., if/else, if, and switch case STANDARD 13.0 ─ UTILIZE REPETITIVE STRUCTURES IN WRITING PROGRAMS 13.1 Identify various types of repetition structures 13.2 Identify the role of a loop control variable 13.3 Select the correct syntax for nested loops 13.4 Compute the values of variables involved with nested loops STANDARD 14.0 ─ UTILIZE SIMPLE DATA TYPES AND STRINGS 14.1 Declare numeric, Boolean, character, and string variables STANDARD 17.0 ─ USE EXTERNAL DATA SOURCES WITHIN A PROGRAM 17.1 Input data from a sequential file and database STANDARD 19.0 ─ APPLY KNOWLEDGE OF CODE TO PERFORM RUN-TIME ERROR-HAND 19.1 Identify (catch) run-time errors and take appropriate action Resources JDK and IDE Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanotes/ 12 Career & Technical Education Unit 8: Arrays TSW implement arrays in a program. Knowledge and Skills Knowledge Basic and multi-dimensional arrays Parallel arrays Arrays and methods Skills AZ CTE Standards STANDARD 15.0 ─ IMPLEMENT ARRAYS IN PROGRAMS 15.3 Access elements within an array 15.4 Manipulate data stored in an array 15.5 Search and sort data in an array Resources JDK and IDE Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanotes/ Declare and initialize arrays Determine when parallel arrays are best used Access elements within an array Manipulate data stored in an array Differentiate how to control arrays of primitive data types and reference variables 13 Career & Technical Education Unit 9: Advanced Operations: Strings, Arrays, & ArrayLists TSW write JAVA code using more difficult programming constructs. Knowledge and Skills Knowledge Strings and their methods Linear and binary search Selection, insertion and bubble sort Insertions and removals in arrays and arraylists Skills Use the Arraylist class Solve problems by using appropriate syntax for operations on strings, including length, substring, and concatenation Determine which search is most efficient in a given situation Evaluate results to determine the most efficient sorting algorithm AZ CTE Standards STANDARD 1.0 ─ APPLY PROBLEMSOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY schedule information technology tasks 1.3 Use problem-solving processes STANDARD 5.0 ─ DEMONSTRATE BASIC COMPUTER MATHEMATICS REQUIRED FOR INFORMATION TECHNOLOGY 5.1 Relate the function of general mathematics to computer hardware STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs STANDARD 14.0 ─ UTILIZE SIMPLE DATA TYPES AND STRINGS 14.5 Identify the correct syntax for operations on strings, including length, substring, and concatenation STANDARD 15.0 ─ IMPLEMENT ARRAYS IN PROGRAMS 15.1 Identify the correct syntax for declaring and initializing arrays of simple data types 15.2 Identify the correct syntax for declaring and initializing user-defined data types 15.3 Access elements within an array 15.4 Manipulate data stored in an array 15.5 Search and sort data in an array 15.6 Identify correct syntax for defining and using two-dimensional arrays Resources JDK and IDE API Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanotes/ 14 Career & Technical Education Unit 10: Recursion, Complexity, Searching and Sorting TSW increase the efficiency of the code by using advanced data structures and methods. Knowledge and Skills Knowledge Recursion Complexity analysis Quicksort Merge sort Binary search Skills Create a recursive method to solve a problem Differentiate between recursive and iterative solutions to a problem Code the merge sort to solve a problem Compare the quicksort and merge sort AZ CTE Standards STANDARD 10.0 ─ WRITE CODE TO PERFORM ARITHMETIC CALCULATIONS 10.1 Identify and correctly use arithmetic operations applying the order of operations with respect to programming 10.2 Interpret and construct mathematical formulas STANDARD 15.0 ─ IMPLEMENT ARRAYS IN PROGRAMS 15.3 Access elements within an array 15.4 Manipulate data stored in an array 15.5 Search and sort data in an array Resources JDK and IDE API Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanotes/ 15 Career & Technical Education Unit 11: Inheritance, Interfaces, Polymorphism and Collections TSW use inheritance to extend a class and implement an interface for a new class. Knowledge and Skills Knowledge Inheritance Abstract classes Interfaces Polymorphism Collections Skills Use inheritance to extend a class Create and extend an abstract class Understand polymorphism and override methods in a super class when appropriate Implement an interface when creating a new class AZ CTE Standards STANDARD 8.0 ─ CREATE A PROGRAM USING SOFTWARE 8.1 Use a program editor to enter and modify code 8.2 Compile and execute programs 8.3 Follow established documentation standards 8.5 Access program and language documentation STANDARD 18.0 ─ EMPLOY OBJECTORIENTED PROGRAMMING TECHNIQUES 18.1 Make a distinction between an object and a class 18.2 Distinguish between is-a, has-a, and class relationships 18.3 Exemplify objects from existing classes 18.4 Identify appropriate statements to invoke an object's accessor methods 18.5 Change the state of an object by invoking a modifier method 18.6 Determine the requirements for constructing new objects by reading the API 18.7 Identify the correct syntax for an original user-defined class 18.8 Identify the correct syntax for a class that extends an existing class Resources JDK and IDE API Online JAVA Notes 6.0 (free source) http://math.hws.edu/javanotes/ STANDARD 19.0 ─ APPLY KNOWLEDGE OF CODE TO PERFORM RUN-TIME ERRORHAND 19.1 Identify (catch) run-time errors and take appropriate action 19.2 Identify the proper syntax for user-created errors (throw errors) 16 Career & Technical Education Unit 12: Case Study TSW use all of the knowledge obtained to design and create according to case study requirements. Knowledge and Skills Knowledge Advanced JAVA concepts and programming solutions Skills Run the case study and analyze output Observe and experiment with the new case study Research the existing classes in the case study API Analyze the case study subset Utilize appropriate testing methods AZ CTE Standards STANDARD 1.0 ─ APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.1 Describe methods of establishing priorities 1.2 Prepare a plan of work and schedule information technology tasks 1.3 Use problem-solving processes 1.4 Explain the purpose, types, and content of documentation STANDARD 7.0 ─ DEMONSTRATE PROGRAM ANALYSIS AND DESIGN 7.1 List the steps in a program development cycle 7.2 Interpret a problem statement and identify program requirements 7.3 Apply pseudo code or a graphical representation to show the structure of a program or module 7.4 Determine input and output 7.5 Choose appropriate data structures 7.6 Apply stepwise refinement to improve design 7.7 Develop a testing plan 7.8 Choose appropriate documentation for a module 7.9 Use essential object analysis and design concepts Resources 17 COMMON CORE ENGLISH LANGUAGE ARTS CONNECTIONS 18 COMMON CORE ENGLISH LANGUAGE ARTS CONNECTIONS 19