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

Similar documents
AP Computer Science A (Java) Scope and Sequence

AP COMPUTER SCIENCE A: SYLLABUS

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

AP COMPUTER SCIENCE GRADES 10 12

IMACS: AP Computer Science A

AP Computer Science A Syllabus

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

CompuScholar, Inc. 9th - 12th grades

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

AP Computer Science AB

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


TeenCoder : Java Programming (ISBN )

Introduction to Programming Using Java (98-388)

AP Computer Science Course Syllabus

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

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

AP Computer Science in Java Course Syllabus

AP Computer Science A Sample Syllabus 4

Homeschool Programming, Inc.

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

Building Java Programs

102. Introduction to Java Programming

AP Computer Science A Syllabus

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

AP Computer Science A Course Syllabus

AP Computer Science A Skyline High School Mr. Coupland

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

CO Java SE 8: Fundamentals

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

AP Computer Science A

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

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

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)


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

AP Computer Science A

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

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

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

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

AP Computer Science A Syllabus

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

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

AP Computer Science A Syllabus

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

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

MyProgram m i ng Lab. get with the programming. Through the power of practice and immediate personalized

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

Absolute C++ Walter Savitch

This page intentionally left blank

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

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

Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview

Course Outline. [ORACLE PRESS] OCA Java SE 8 Programmer Course for Exam 1Z

ITE 205 Software Design and Programming I

Subclass Gist Example: Chess Super Keyword Shadowing Overriding Why? L10 - Polymorphism and Abstract Classes The Four Principles of Object Oriented

JVA-103. Java Programming

Student Performance Q&A:

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

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

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

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

Big Java Late Objects

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

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


CERTIFICATE IN WEB PROGRAMMING

APCS Semester #1 Final Exam Practice Problems

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

JAVA CONCEPTS Early Objects

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Fundamentals (2014)

CSC 210 COMPUTER SCIENCE II

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

Lesson Plan. Subject: OBJECT ORIENTED PROGRAMMING USING C++ :15 weeks (From January, 2018 to April,2018)

COURSE OVERVIEW. Successful completion of this course may provide one semester of college credit for computer science.

CIS 120. Introduction to Programming

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

EXPERIMENTS IN COMPUTER SCIENCE

Java Programming Training for Experienced Programmers (5 Days)

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

Department of Networks College of Bardarash Technical Institute DUHOK Polytechnic University Subject: Programming Fundamental by JAVA Course Book

COLLEGE OF THE DESERT

Computer Programming C++ (wg) CCOs

OUTCOMES BASED LEARNING MATRIX

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

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

AP Computer Science AB

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

Unit Overview. Concepts & Understandings. Learning Targets

Computer Science II (20082) Week 1: Review and Inheritance

INHERITANCE & POLYMORPHISM. INTRODUCTION IB DP Computer science Standard Level ICS3U. INTRODUCTION IB DP Computer science Standard Level ICS3U

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

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.

Object-Oriented Programming in C# (VS 2012)

INTRODUCTION TO COMPUTER SCIENCE GRADES THE EWING PUBLIC SCHOOLS 2099 Pennington Road Ewing, NJ 08618

AP Computer Science: Advanced Programming Syllabus

Diploma Of Computing

[CHAPTER] 1 INTRODUCTION 1

Transcription:

AP Computer Science A Advanced Placement Computer Science A is a fast-paced course equivalent to a college introductory programming class. Students will learn about the exciting kinds of problems tackled by computer science while exploring the field s most important tool programming. The focus will be on developing systematic problem-solving strategies that can be applied to real-world problems. The course will be anchored around projects that will explore a broad range of fields that use programming to solve problems. Through these projects, students will study common, reusable algorithms and learn to analyze them for correctness and speed. The course will cover fundamentals of programming syntax and methodology using the Java programming language. Java is a modern, objectoriented programming language used to create professional software. In addition to gaining fluency in Java, students will develop general skills and understandings in computer science. Prerequisites Students enrolled in this course are expected to have successfully completed Algebra 1 or its equivalent. They must also have strong writing and reading comprehension skills, since much of the practice of computer science requires clear communication of ideas and concepts. Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011). Philosophy This course will emphasize procedural decomposition, object use and algorithm design early in the curriculum. Writing object classes will be covered in the latter part of the course to insure that students have a solid foundation in programming fundamentals before moving on to more advanced topics in object-oriented software. Each new concept will be presented in a short, interactive lecture and be followed up by smallscale programming exercises. Students will then complete larger projects that use programming to explore interesting problem domains. Students are engaged in hands-on laboratory experiences, integrated throughout the course, which account for 20 hours of course time. Short quizzes similar to the small-scale programming exercises will provide students with frequent feedback on the depth of their understanding of the material. 1

Curricular Requirements CR1 The course teaches students to design and implement computer based solutions to problems. CR2a The course teaches students to use and implement commonly used algorithms. CR2b The course teaches students to use commonly used data structures. CR3 The course teaches students to select appropriate algorithms and data structures to solve problems. CR4 The course teaches students to code fluently in an objectoriented paradigm using the programming language Java. CR5 The course teaches students to use elements of the standard Java library from the AP Java subset in Appendix A of the AP Computer Science A Course Description. CR6 The course includes a structured lab component comprised of a minimum of 20 hours of hands-on lab experiences. CR7 The course teaches students to recognize the ethical and social implications of computer use. Page 3,4,5,6,7,8 4,6,7 4 4,6,7,8 5,6 5,6 1 8,9 2

Unit Title # weeks First Semester Unit 1: Introduction to Programming and Java Unit 2: Working with Data and Basic Control Flow Unit 3: Advanced Data and Control Flow Topics Covered Objectives (SWBAT ) Projects/Activities BJP(3 rd ed)/practice-it BJP reference 2 Definitions of algorithm and computer science ; Computational thinking skills; String and console output; Procedural decomposition; static void methods 3 Concepts of types and variables in programming; Primitive types in Java; Variables and assignment; Arithmetic operators; Compound assignment; Precedence; Casting, type conversion; Concept of scope Concept of control flow; Simple for loops 4 String processing; Nested loops; Parameters; Return values; Generating random numbers; Class constants; Basic Boolean logic Conditionals; Relational and Boolean operators; Define algorithm and computer science ; Create simple programs to print output to the console; Break complex problems into well-defined subtasks; Define and call static void methods Describe the purpose of types; Define variable ; List and describe the Java primitive types; Define precedence ; Write simple expressions and statements using arithmetic operators; Describe the effects when converting among types; Define control flow ; Write programs that use for loops to repeat operations Create programs that use nested loops effectively; Define and call methods that have parameters and/or return values; Write an expression to generate a random integer between any two values; Describe when class constants should be used and write code Logic problems Hello World Song mini-project (BJP ch. 1 ex. 3) Unit conversion project: Write a program that converts a number of inches to miles, yards, feet. ASCII art project: decompose the ASCII art drawing of a stop sign and a teacup into smaller methods; Fraction Calculator project: Create a fractional calculator that can Chapter 1 Self-check #16-17, 19-22, 26-28; Exercises #1-5, 7-9, 13 Chapter 2 Self-check #11, 15-16, 19-21, 26-27; Exercises #1-2, 4-5, 7 Chapter 3 Self-check #4-7, 10, 14, 16-17; Exercises #1-3, 9-11 Chapter 4 Self-check #1-2, 5-6, 13-14, 17; Exercises #1-5 Chapter 5 Self-check #3-4, 6-7, Chapter 1 2.1-2.4 2.4, 3.1-3.3, 4.1-4.3, 5.1-5.3 3

while and do-while loops; Fencepost and sentinel loops; Console input that uses them effectively; Write and evaluate Boolean expressions; Write programs using conditional statements; Write programs using while and do-while loops; Receive and tokenize console input using Scanner perform basic arithmetic functions on fractional input. 12-3; Exercises #4-5, 11-12 Unit 4: Arrays, Lists, and Files 4 Definition and uses of arrays; Defining and using singledimensional arrays; Defining and using multidimensional arrays; Using arrays as parameters and return values; Reference semantics; ArrayList type and API; Enhanced for loop (for-each loop) Token-based file input with Scanner; Line-based file input; Writing to files with PrintStream Explain what arrays are and why they are useful; Define, populate, access, traverse, and manipulate single- and multi-dimensional arrays; Explain the difference between how primitives and arrays are treated when passed as parameters; Define methods that take arrays as parameters and/or return arrays; Write code that constructs, modifies, and manipulates ArrayLists; Compare and contrast arrays and ArrayLists and the scenarios in which each is useful; Define and evaluate enhanced for loops; Read input from a file using AP lab Magpie; Pascal s Triangle: output Pascal s triangle to the nth row using multidimensional arrays Chapter 6 Self-check #5-6, 15-16; Exercises #1-2, 4, 16-17 Chapter 7 Self-check #4-5, 10-11, 15, 17, 33; Exercises #1-3, 5-6, 16, 19 6.1-6.4, 7.1-7.5, 10.1 4

Scanner; Write output to a file using PrintStream Unit 5: Introduction to Object-Oriented Programing Second Semester Unit 6: Inheritance and Polymorphism 4 Definitions of encapsulation and abstraction ; Difference between class and client; Instance fields and methods; Getters and setters; public and private; Class fields and methods; Constructors; equals and tostring; this keyword 4 Definitions of inheritance and polymorphism ; Difference between is-a and has-a relationships; Extending classes; Overriding methods; Constructor mechanics for inherited classes; super keyword; Upcasting and downcasting; Define encapsulation and abstraction and explain why they are important; Explain the difference between a class and a client program; Define a custom class; Write a client program to use a custom class; Explain when to use instance fields/methods versus class fields/methods; Explain when to use public versus private access; Define zero- and non-zero argument constructors; Effectively override the equals and tostring methods Define inheritance and polymorphism ; Determine whether two classes have an is-a or a has-a relationship; Define classes that extend another class, including an abstract class; Define classes that implement interfaces; AP lab Pictures; TextExcel project: 12x22 spreadsheet which can hold text, real numbers, and dates and evaluate formulas (requires creation of several interacting classes including sheet, cells, values). Utilize functions from the Java Math library. BankAccount: Extend a given BankAccount class by writing a SavingsAccount class. The BankAccount class provides methods for inquiring about the balance Chapter 8 Self-check #2-4, 7-8, 11, 17-20; Exercises #3-9 Chapter 9 Self-check #4, 9-15, 17; Exercises #1-4, 9-11 (Note: Self-check #11-15, 17 are not in Practice-It!) Chapter 8 Chapter 9 5

Unit 7: Searching and Sorting Polymorphism; Extending and using abstract classes; Implementing and using interfaces 3 Basic algorithmic complexity (runtime); Choosing between algorithms to complete a given task; Sequential search; Binary search; Insertion sort; Properly implement constructors of derived classes, using super when needed; Trace the execution of one or more methods through a class hierarchy; Determine whether a cast between two types is valid within a given hierarchy; Determine whether a method call is valid within a given class hierarchy Identify which of two algorithms has a faster runtime; Define and implement sequential search for various types of collections; Define and implement binary in the account, making deposits, and making withdrawals. The SavingsAccount class also allows inquires, deposits, and withdrawals but, unlike the general kind of account, updates the balance during each operation by computing accumulated interest.; Overriding tostring(): Define a class that overrides the definition of the tostring() method that the class inherits from the Object class; Optional: GridWorld AP lab - Elevens Chapter 13 Self-check #9-11, 16-19, 27a; Exercises #1, 14, 18 (Note: Most problems are not in Practice-It!) 13.1-13.3 (Note: Insertion sort is NOT 6

Selection sort; search for various types of collections; Compare and contrast different methods for searching in ordered and unordered lists; Define and implement insertion sort for various types of collections; Define and implement selection sort for various types of collections; covered in BJP) Unit 8: Recursion 2 Definition of recursion ; Possible recursion failures and their causes (infinite recursion); Tracing execution of recursive methods to determine output/return value; Writing simple recursive methods; Recursive binary search; Mergesort Define recursion ; Identify methods that will result in infinite recursion and explain why; Compare and contrast recursion and iteration and identify scenarios when one is more effective than the other; Identify the output or return value of recursive methods; Define simple recursive methods; Implement binary search recursively; Define and implement mergesort; Compare and contrast the running times of insertion, selection, and merge sort for different applications Numbrix lab: Implement and test an OOP recursive program which solves Numbrix puzzles. Chapter 12 Self-check #3-5, 7, 9-10, 13-14, 16-17; Exercises #1-3, 8-9, 11, 14 (Note: Self-check #7, 9-10, 16-17 are not in Practice-It!) Unit 9: Miscellaneous 3 Binary and hexadecimal Convert positive integers AP labs (Magpie, N/A N/A 12.1-12.3, 13.3-13.4 7

Topics, Review, and Exam Preparation numbers; Review of previous topics as needed; Format and structure of AP exam; AP free response scoring guidelines; Common AP multiple choice question formats/topics; Test-taking strategies among decimal, binary, and hexadecimal representations; Describe the format of the AP Computer Science exam; Explain how AP free response questions are scored; List common topics and formats for AP multiple choice questions Pictures, Elevens) Practice AP exams Practice AP questions Unit 10: Post-AP Exam Project Throughout Year Unit A: Computing Careers and Culture 4-5 Project and/or projects of the teachers and/or students choice N/A Computing in society; computing college and career options; beneficial and harmful effects of technology; impact of technology on everyday life; Ethical and social implications of computer science TBD by teacher N/A N/A N/A Describe the impact of computing and technology on society and culture; Identify possible college and career options in computing; Discuss current events in computing and technology College/career panel; Guest speakers; Videos (e.g. TED talks); Supplemental readings (e.g. Blown to Bits); Students presentations on current events addressing ethical challenges that accompany the advancement of computing; Journal entries N/A N/A 8