Bloss, Adrienne and N. Jane Ingram. Lab Manual to Accompany Java Software Solutions. New York, New York: Pearson Education, Inc, 2003.

Similar documents
Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

AP Computer Science AB

AP Computer Science A Syllabus

IMACS: AP Computer Science A

CompuScholar, Inc. 9th - 12th grades

College Board. AP CS A Labs Magpie, Elevens, and Picture Lab. New York: College Entrance Examination Board, 2013.

TeenCoder : Java Programming (ISBN )

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

AP Computer Science A Course Syllabus

Samples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements

AP Computer Science A Syllabus

AP COMPUTER SCIENCE A: SYLLABUS

B. Knowledge of basic algebra and experience in problem solving is beneficial. Students should also possess competence in written communication.

COURSE TITLE. Introduction to Java LENGTH. One Semester Grades DEPARTMENT. Computer Department Barbara O Donnell, Supervisor SCHOOL

Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011).

AP Computer Science AB

Course: AP Computer Science A Description and Syllabus Description of Course:

AP Computer Science A

Curriculum Map Grade(s): Subject: AP Computer Science

AP COMPUTER SCIENCE AB

Homeschool Programming, Inc.

AP Computer Science in Java Course Syllabus

AP Computer Science A

AP Computer Science A (Java) Scope and Sequence

AP Computer Science A Syllabus

Prerequisite: Computer Science 2 (CS2) with a grade of B+ or better

AP Computer Science A (APCS) James Madison High School - Career & Technical Education Course Syllabus and Guidelines

AP Computer Science A Syllabus

Curriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy.

SY nd Sem Syllabi-All Courses.xlsx - 2S-APCSA Page 1 of 5

COURSE OF STUDY UNIT PLANNING GUIDE COMPUTER SCIENCE 1 FOR: 5 CREDITS GRADE LEVEL: 9-12 FULL-YEAR COURSE PREPARED BY: SUSIE EISEN

CENTRAL TEXAS COLLEGE COSC 1337 PROGRAMMING FUNDAMENTALS II. Semester Hours Credit: 3

AP Computer Science A Skyline High School Mr. Coupland

NJCCCS AREA: Mathematics. North Brunswick Township Public Schools AP COMPUTER SCIENCE. Acknowledgements. Vivian Morris, Mathematics Teacher

AP Computer Science Course Syllabus

AP COMPUTER SCIENCE GRADES 10 12

3D Graphics Programming Mira Costa High School - Class Syllabus,

AP Computer Science A Syllabus DRAFT 0.3 June 27th, 2015 Course Overview

CO Java SE 8: Fundamentals

CSC 210 COMPUTER SCIENCE II

Preface A Brief History Pilot Test Results

AP Computer Science A Sample Syllabus 4

CIS 120. Introduction to Programming

Recursive Thinking. Chapter 8: Recursion. Recursive Definitions. Recursion. Java Software Solutions for AP* Computer Science A 2nd Edition

AP CSA 3rd Period MR. D. Course Map


Computer. Course Description

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Schram, Leon. Exposure JavaCS Edition 2008,. Royse City, TX: Leon Schram,

SCourse Description. Includes important information regarding the introduction of the language Java. MAY 2004, MAY 2005

AP Computer Science A. Course Syllabus. Jackson County High School Instructor: LaDonna Woods School Year

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

Computer Programming II C++ (830)

OHIO ASSESSMENTS FOR EDUCATORS (OAE) FIELD 010: COMPUTER INFORMATION SCIENCE

COP 1170 Introduction to Computer Programming using Visual Basic

EXPERIMENTS IN COMPUTER SCIENCE

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

Total Test Questions: 43 Levels: Grades Units of Credit:.50

Beginning Programming (Two Semesters) Semester One. Module One: Intro to Beginning Programming. Module Two: Computer Careers

Unit Overview. Concepts & Understandings. Learning Targets

Computer Programming C++ (wg) CCOs

Eight units must be completed and passed to be awarded the Diploma.

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

Welcome to Starting Out with Programming Logic and Design, Third Edition.

Absolute C++ Walter Savitch

Preface. The Purpose of this Book and Its Audience. Coverage and Approach

Introduction to Programming Using Java (98-388)

[CHAPTER] 1 INTRODUCTION 1

102. Introduction to Java Programming

EL CAMINO COLLEGE COURSE OUTLINE OF RECORD. Grading Method: Letter Credit/No Credit Both No Grade

Computer. Course Description. Computer Science AB. M a y , M a y

Diploma Of Computing

11/19/2014. Objects. Chapter 4: Writing Classes. Classes. Writing Classes. Java Software Solutions for AP* Computer Science A 2nd Edition

CENTRAL TEXAS COLLEGE COSC 1315 INTRODUCTION TO COMPUTER PROGRAMMING. Semester Hours Credit: 3 INSTRUCTOR: OFFICE HOURS:

Syllabus Honors Java Programming 1 & 2

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Computer Programming IA

Syllabus. College for Computer & Information Sciences 3333 Regis Boulevard, Denver, CO regis.edu

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

ITE 205 Software Design and Programming I

ITT Technical Institute. SD2720 Advanced Software Development Using Java Onsite and Online Course SYLLABUS

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

AP Computer Science A Mira Costa High School - Class Syllabus,


For undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture.

Computer Programming II Python

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

STUDENT LESSON A12 Iterations

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

WA1278 Introduction to Java Using Eclipse

Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION. useful as well. It has been written to provide introductory computer science

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

You must pass the final exam to pass the course.

JVA-103. Java Programming

AP Computer Science 4325

CodeHS: Arkansas Standards Alignment

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

An OBJECT contains VARIABLES = PROPERTIES and METHODS = BEHAVIORS. Outline the general nature of an object.

Transcription:

Course Overview AP Computer Science A emphasizes a study in object-oriented programming methodologies with a focus on problem solving and algorithm development. Data structures, design, and abstraction are also covered, but not in the depth that would be appropriate for an AB course. Also, an examination of a large case study program is undertaken, and students are expected to be able to understand and modify code that they have not written. Hands-on laboratory work is used to solidify each concept, and end-ofunit labs and tests are used to assess the progress of each student. Once the AP Computer Science A Exam has been completed, students have the opportunity to apply their knowledge in a new setting, using LEGO MindStorms robots that they design, build, and program. Using the LEJOS operating system and the TextPad IDE, students are given the opportunity to use Java to program robots that can interact with their settings. Computer Facilities/Lab Component A dedicated lab of 21 computers is directly attached to our classroom, which provides the perfect environment for teaching the AP Computer Science A curriculum. Once a concept has been discussed in the classroom setting, only seconds pass before we are experimenting with and implementing the concepts that were covered. The instructor has administrative rights to install software, as well as to access the shared drives of the students. Students have access to the lab before school, during their lunch, and after school. Course Resources Bergin, Joseph, et al. Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming Using Java. Copyright Joseph Bergin. http://csis.pace.edu/~bergin/kareljava2ed/karel++javaedition.html Bloss, Adrienne and N. Jane Ingram. Lab Manual to Accompany Java Software Solutions. New York, New York: Pearson Education, Inc, 2003. College Board. AP GridWorld Case Study. New York: College Entrance Examination Board, 2006. Lewis, John, William Loftus, and Cara Cocking. Java Software Solutions for AP Computer Science A, 2 nd Edition. New York, New York: Pearson Education, Inc, 2007. Lewis, John, William Loftus, and Cara Cocking. Instructor s Resource Manual to Accompany Java Software Solutions. New York, New York: Pearson Education, Inc, 2004.

Course Outline Unit Title, Topics, and Student Objectives 1 Introduction to the principal concepts in computer science using Karel J. Robot Objects Classes Looping Conditionals Write and use simple classes with Karel J. Robot Learn the basics of conditionals and looping in a Java environment Reinforce the introductory concepts of the Java programming language Reinforce the steps involved in program compilation/execution 2 Introduction to the computer, ready-made programming environments, and Java basics Students also walk through Part One of the GridWorld Case Study. Computer hardware and software Computer networks Representing numbers in different bases Java program features (comments, identifiers, reserved words) Ethical and social implications of computer use Describe the relationship Resources, Assessments, and Strategies Resource: Karel J. Robot Program specific tasks for Karel Create an enhanced Robot class to expand the number of commands that Karel understands Use loops to clear a field of beepers Use loops and conditionals to redistribute a field of beepers Use loops and conditionals to run a hurdle race of varying lengths and hurdle sizes AP GridWorld Case Study Chapter One Student presentation (one topic per student) on hardware components, computer architecture, or computer networking Self-made History of Programming quiz Students will have a mock debate in which students argue/defend both sides of a current topic in computer ethics (e.g. pirating music, making copies of programs, etc.)

between hardware and software Define various types of software and how they are used Identify basic computer hardware and explain what it does Explain how hardware components execute programs and manage data Describe how computers are connected together into networks to share information Understand computer ethics such as acceptable use policies, copyright, intellectual property, freeware and shareware 3 Objects, primitive data, variables, and expressions Program development Reinforcement of objects and classes Primitive data types Strings and escape sequences Variables and assignment Expressions Data conversion and data types Simple input/output Random number generation Libraries and packages Formatting output Discuss basic program development steps Understand terminology: variables, constants, reserved words, literals Define the difference between primitive data and objects Declare and use variables Perform mathematical computations Create objects and use them Reinforce aforementioned Chapter Two and Three Chapter 2 Internet AP GridWorld tie-in supplement Chapter questions, multiple choice, true/false, short answer Sum/difference/product program: Write an application that reads floating point numbers and computes their sum, difference, and product Random phone number program: Write an application that creates and prints a random phone number in a specified format Students are led through their first pure Java program (Hello World) in order to explore the format of a properly written program Students need multiple examples and practice with types and type conversions,

chapter objectives through the use of the GridWorld case study 4 Conditionals and Repetition Flow of control The if statement Equality, relational, increment/decrement, and assignment operators Logical operators Short-circuiting The while statement The for statement Infinite loops Nested loops Iterators Define the flow of control through a program Reinforce the use of if statements Define expressions that let us make complex decisions Reinforce the use of while and for statements to repeat programmatic actions Reinforce aforementioned chapter objectives through the use of the GridWorld case study 5 Writing classes, enhancing classes, and inheritance Creating and using classes Inheritance Abstract classes Interfaces Polymorphism Define classes that act as blueprints for new objects Explain encapsulation and Java modifiers especially when they are used in mathematical expressions Chapter Three Bloss and Ingram: Lab Manual Chapter 3 Internet AP GridWorld tie-in supplement Chapter questions, multiple choice, true/false, short answer Computing a Raise lab Charge Account lab Date Validation lab Rock, Paper, Scissors Lab Factorials lab Counting Vowels lab Students need practice writing different types of loops and conditionals Chapters Four, Five, and Seven Bloss and Ingram: Lab Manual Chapters 4, 5, and 7 Internet AP GridWorld tie-in supplement Chapter questions, multiple choice, true/false, short answer Coin Class lab Bank Account lab Tracking Grades lab Tracing References lab

Explore the details of method declaration, invocation, parameter passing, and overloading Learn to divide complex methods into simpler supporting methods Describe relationships between objects Define reference aliases Define formal interfaces and their class implementations Derive new classes from existing classes through the use of inheritance Add and modify methods in child classes Discuss how to use class hierarchies Define polymorphism and methods to achieve it Reinforce aforementioned chapter objectives through the use of the GridWorld case study 6 Advanced programming structures and algorithms (arrays/arraylists, and sorting/searching algorithms) Declaring and initializing arrays Manipulating arrays with loops Creating parallel arrays Using the ArrayList class Bubble, Selection, and Insertion sorts Sequential and Binary searches Understand terminology: array, element, index, logical size, physical size, parallel arrays Declare one-dimensional arrays in Java Use initializer lists when declaring arrays Manipulate arrays using loops Counting Transactions lab Exploring Inheritance lab Test Questions lab Give students classes to complete, in which they are given a description and they must choose appropriate representation for that class Draw pictures of the inheritance hierarchy Chapter Six Bloss and Ingram: Lab Manual Chapter 6 Internet AP GridWorld tie-in supplement Chapter questions, multiple choice, true/false, short answer Tracking Sales lab Grading Quizzes lab Reversing an Array lab Searching/Sorting Within an Integer List lab ArrayList Shopping Cart lab Students need to be reminded that array indices start at zero Students need materials to

and array indices Use the physical and logical size of an array to guarantee they do not go beyond the bounds of the array Understand how parallel arrays can be useful when processing certain types of data Work with arrays of primitives and well as objects Understand when to choose an array to represent data instead of an ArrayList Use the ArrayList methods Write a method for searching an array Perform insertions and deletions at given array positions Trace through sorting and searching algorithms to understand time constraints of each Understand the algorithms behind bubble, selection, and insertion sorts and sequential and binary searches Understand the time efficiency of each sort and search and when it is desirable to use each one Reinforce aforementioned chapter objectives through the use of the GridWorld case study 7 Recursion and Merge Sort Recursion Merge Sort Create a recursive method to solve a problem Understand the difference between recursive and iterative solutions to a problem Understand and use the Merge reinforce the use of looping through elements of an array Stress the difference between add and set Draw pictures of the ArrayList after ArrayList methods have been used Use one of several Internet sites that show the runtime and efficiency of each of the strategies they have learned Chapter Eight Bloss and Ingram: Lab Manual Chapter 8 Internet AP GridWorld tie-in supplement Chapter questions, multiple choice, true/false, short answer Palindrome Checker lab String Backwards lab

Sort Understand how to calculate the informal runtime of merge sort and compare its running time to the other sorts already learned Reinforce aforementioned chapter objectives through the use of the GridWorld case study 8 AP GridWorld Case Study (continued) Experimenting with a large program Using classes Modifying classes Inheritance Run the case study and analyze output Understand how the development of a large program came about by reading the chapters of the case study Observe and experiment with the GridWorld case study Understand the Bug class, Runner class, Grid Interface Extend the Bug class by creating a specialized bug to meet new requirements Use inheritance to extend the Critter class by making new types of critters 9 Getting Ready for the AP Exam Review AP Computer Science A topics Prepare for the AP Computer Science A Exam by reviewing material and taking practice exams Base Conversion lab Self-made recursion worksheet Recreate the Towers of Hanoi using Fisher-Price ring sets AP GridWorld Case Study Exercises from within the case study Read the manual for the case study thoroughly Be familiar with all the classes and interfaces discussed Allow the students to be creative after working through the exercises and analysis Create different kinds of Critters Previous free-response questions from AP Central Practice Exams

10 Robotics Using Java Movement Navigation Light sensors Touch Sensors Behavior Arbitration RCX Communication Transfer Java programming concepts and techniques learned throughout the course of the year to a new setting and environment Design, build, and test Java programs that solve a number of problems Use the Lejos API to expand their knowledge of the Java programming language LEGO MindStorms kits Various Internet sites (most importantly, www.lejos.org) Various self-made handouts and presentations Line Follower task Boundary task Hit-backup-turn task Green-Red Liner task Sumobot task Students are encouraged to have fun and be creative Tasks are not given hard delivery dates, but a Task Signoff sheet must be completed by the end of the marking period Correlation to AP Topic Outline This section shows correlation between the Computer Science A column of the Topic Outline in the AP Computer Science Course Description and each unit of this syllabus. AP Computer Science A Topics Unit Where Covered I. Object-Oriented Program Design The overall goal for designing a piece of software (a computer program) is to correctly solve the given problem. At the same time, this goal should encompass specifying and designing a program that is understandable, can be adapted to changing circumstances, and has the potential to be reused in whole or in part. The design process needs to be based on a thorough understanding of the problem to be solved. A. Program design 1. Read and understand a problem description, purpose, and goals. All units 2. Apply data abstraction and encapsulation. Units 3 and 5 3. Read and understand class specifications and Unit 5 relationships among the classes ( is-a, has-a relationships). 4. Understand and implement a given class hierarchy. Unit 5

5. Identify reusable components from existing code using Unit 5 classes and class libraries. B. Class design 1. Design and implement a class. Unit 5 2. Design an interface Unit 5 3. Choose appropriate data representation and algorithms. Units 4 and 5 4. Apply functional decomposition. Unit 5 5. Extend a given class using inheritance. Unit 5 II. Program Implementation The overall goals of program implementation parallel those of program design. Classes that fill common needs should be built so that they can be reused easily in other programs. Object-oriented design is an important part of program implementation. A. Implementation techniques 1. Methodology a. Object-oriented development Unit 3 b. Top-down development Unit 4 c. Encapsulation and information hiding Unit 5 d. Procedural abstraction Unit 5 B. Programming constructs 1. Primitive types vs. objects Unit 3 2. Declaration a. Constant declarations Unit 3 b. Variable declarations Unit 3 c. Class declarations Unit 5 d. Interface declarations Unit 5 e. Method declarations Unit 5 f. Parameter declarations Unit 5 3. Console output (System.out.print/println) Unit 3 4. Control a. Methods Unit 5 b. Sequential Unit 4 c. Conditional Unit 4 d. Iteration Unit 4 e. Recursion Unit 7 C. Java library classes (included in the A-level (AP Java Subset) Units 3 and 5 III. Program Analysis The analysis of programs includes examining and testing programs to determine whether they correctly meet their specifications. It also includes the analysis of programs or algorithms in order to understand their time and space requirements when applied to different data sets. A. Testing 1. Test classes and libraries in isolation. Unit 5 2. Identify boundary cases and generate appropriate test Unit 5 data.

3. Perform integration testing. Unit 5 B. Debugging 1. Categorize errors: compile-time, run-time, logic. Units 2 and 3 2. Identify and correct errors. Units 2, 3, 6, and 7 3. Employ techniques such as using a debugger, adding Units 2, 3, 6, extra output statements, or hand-tracing code. and 7 C. Understand and modify existing code Units 2, 3, 4, 5, 6, 7, and 8 D. Extend existing code using inheritance Unit 5 E. Understand error handling 1. Understand runtime exceptions. Unit 5 F. Reason about programs 1. Pre- and post-conditions Unit 5 2. Assertions Unit 5 G. Analysis of algorithms 1. Informal comparisons of running times Units 6 and 7 2. Exact calculation of statement execution counts Units 6 and 7 H. Numerical representations and limits 1. Representations of numbers in different bases Unit 2 2. Limitations of finite representations (e.g., integer bounds, Units 3 and 4 imprecision of floating-point representations, and round-off error) IV. Standard Data Structures Data structures are used to represent information within a program. Abstraction is an important theme in the development and application of data structures. A. Simple data types (int, boolean, double) Unit 3 B. Classes Units 3 and 5 C. One-dimensional arrays Unit 6 V. Standard Algorithms Standard algorithms serve as examples of good solutions to standard problems. Many are intertwined with standard data structures. These algorithms provide examples for analysis of program efficiency. A. Operations on A-level data structures previously listed 1. Traversals Unit 6 2. Insertions Unit 6 3. Deletions Unit 6 B. Searching 1. Sequential Unit 6 2. Binary Unit 6 C. Sorting 1. Selection Unit 6 2. Insertion Unit 6 3. Mergesort Unit 7

VI. Computing in Context A working knowledge of the major hardware and software components of computer systems is necessary for the study of computer science, as is the awareness of the ethical and social implications of computing systems. These topics need not be covered in detail but should be considered throughout the course. A. Major hardware components 1. Primary and secondary memory Unit 2 2. Processors Unit 2 3. Peripherals Unit 2 B. System software 1. Language translators/compilers Unit 2 2. Virtual machines Unit 2 3. Operating systems Unit 2 C. Types of systems 1. Single-user systems Unit 2 2. Networks Unit 2 D. Responsible use of computer systems 1. System reliability Unit 2 2. Privacy Unit 2 3. Legal issues and intellectual property Unit 2 4. Social and ethical ramifications of computer use Unit 2