Course Audit Syllabus using Building Java Programs



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, object-oriented 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. 3d ed. (Boston: Addison-Wesley, 2013).

College Board. AP Computer Science Quick Reference Guide. (New York: College Entrance Examination Board, 2012).

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 small-scale programming exercises. Students will then complete larger projects that use programming to explore interesting problem domains. Short quizzes similar to the small-scale programming exercises will provide students with frequent feedback on the depth of their understanding of the material.

Goals

Successful completion of this course and its projects will prepare students for the AP® exam and for a second-semester college programming course. Students will be able to:

• identify and discuss the major hardware and software components of a computer system

• recognize the ethical and social implications of computer use and software creation

• design, implement and debug computer-based solutions to problems in diverse application areas

• use, implement and analyze common algorithms and data structures

• write clear and efficient code using good Java syntax and programming style

• know when and how to use Java library classes

• read, understand and contribute to large programs consisting of several classes

Standard Algorithms

As part of the study of programming techniques, students will learn to use, analyze and implement a number of common algorithms. By the end of the course, students will be able to recognize and analyze linear and binary search as well as insertion, selection and merge sort. Furthermore, they will know how to use the Comparable interface to implement these for object types.

Lab Setup / Lab Usage

AP Computer Science will be taught in a computer lab where each student has access to a computer.

The students will work on lab assignments individually and collaboratively as the particular assignment dictates. Each student in each class will have access to a desktop computer during class, a school issued laptop before school, and a school issued laptop after school. For each unit of coverage, there will be multiple computer-based programming lab assignments. Students do best when differentiation is used and they are given many differing lab assignment options from which to choose. The more options the students can choose from the higher the rate of student success, considering that all students do not learn the same way nor do they have the same interests. During new topic discussions, students should open sample programs on the computer to see the topics in code form. Students will be instructed to make changes to the sample programs and then run the programs to test the changes so that each student can gain some practical experience working with code. Students should have many opportunities to use computers. The word lab is used below in the syllabi to identify a computer programming assignment.

Per the assignments described above and listed below, this class will spend almost 90 hours building, editing, and testing programs. 90 hours will be spent on hands-on instructional time in a computer lab using a programming language and development environment.

Course Planner

First Semester

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 1: Introduction |2 |Definitions of |Define "algorithm" and |Logic problems |Chapter 1 – |Chapter 1 |

|to Programming and | |"algorithm" and |"computer science"; |Hello World |Self-check #16-17, 19-22, | |

|Java | |"computer science"; |Create simple programs |Song mini-project (BJP |26-28; | |

| | |Computational thinking |to print output to the |ch. 1 ex. 3) |Exercises #1-5, 7-9, 13 | |

| | |skills; |console; |  | | |

| | |String and console |Break complex problems | | | |

| | |output; |into well-defined | | | |

| | |Procedural |subtasks; | | | |

| | |decomposition; |Define and call static | | | |

| | |static void methods |void methods | | | |

|Unit 2: Working with |3 |Concepts of types and |Describe the purpose of|  |Chapter 2 – |Sections |

|Data and Basic | |variables in |types; | |Self-check #11, 15-16, 19-21,|2.1-2.4 |

|Control Flow | |programming; |Define "variable"; | |26-27; | |

| | |Primitive types in |List and describe the | |Exercises #1-2, 4-5, 7 | |

| | |Java; |Java primitive types; | | | |

| | |Variables and |Define "precedence"; | | | |

| | |assignment; |Write simple | | | |

| | |Arithmetic operators; |expressions and | | | |

| | |Compound assignment; |statements using | | | |

| | |Precedence; |arithmetic operators; | | | |

| | |Casting, type |Describe the effects | | | |

| | |conversion; |when converting among | | | |

| | |Concept of scope |types; | | | |

| | |Concept of control |Define "control flow"; | | | |

| | |flow; |Write programs that use| | | |

| | |Simple for loops |for loops to repeat | | | |

| | |  |operations | | | |

 

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 3: Advanced |4 |String processing; |Create programs that use |ASCII art project; |Chapter 3 – |Sections 2.4, |

|Data and Control | |Nested loops; |nested loops effectively; |Fraction Calculator |Self-check #4-7, 10, 14, |3.1-3.3, |

|Flow | |Parameters; |Define and call methods |project |16-17; |4.1-4.3, |

| | |Return values; |that have parameters and/or| |Exercises #1-3, 9-11 |5.1-5.3 |

| | |Generating random |return values; | |Chapter 4 – | |

| | |numbers; |Write an expression to | |Self-check #1-2, 5-6, 13-14,| |

| | |Class constants; |generate a random integer | |17; | |

| | |Basic Boolean logic |between any two values; | |Exercises #1-5 | |

| | |Conditionals; |Describe when class | |Chapter 5 – | |

| | |Relational and Boolean |constants should be used | |Self-check #3-4, 6-7, 12-3; | |

| | |operators; |and write code that uses | |Exercises #4-5, 11-12 | |

| | |while and do-while |them effectively; | | | |

| | |loops; |Write and evaluate Boolean | | | |

| | |Fencepost and sentinel |expressions; | | | |

| | |loops; |Write programs using | | | |

| | |Console input |conditional statements; | | | |

| | |  |Write programs using while | | | |

| | | |and do-while loops; | | | |

| | | |Receive and tokenize | | | |

| | | |console input using Scanner| | | |

| | | |  | | | |

| | | |  | | | |

|Unit 4: Arrays, |4 |Definition and uses of |Explain what arrays are and|AP lab – Magpie |Chapter 6 – |Sections |

|Lists, and Files | |arrays; |why they are useful; | |Self-check #5-6, 15-16; |6.1-6.4, |

| | |Defining and using |Define, populate, access, | |Exercises #1-2, 4, 16-17 |7.1-7.5, 10.1 |

| | |single-dimensional |and manipulate single- and | |Chapter 7 – | |

| | |arrays; |multi-dimensional arrays; | |Self-check #4-5, 10-11, 15, | |

| | |Defining and using |Explain the difference | |17, 33; | |

| | |multi-dimensional |between how primitives and | |Exercises #1-3, 5-6, 16, 19 | |

| | |arrays; |arrays are treated when | | | |

| | |Using arrays as |passed as parameters; | | | |

| | |parameters and return |Define methods that take | | | |

| | |values; |arrays as parameters and/or| | | |

| | |Reference semantics; |return arrays; | | | |

| | |ArrayList type and API;|Write code using ArrayList;| | | |

| | |Enhanced for loop |Define and evaluate | | | |

| | |(for-each loop) |enhanced for loops; | | | |

| | |Token-based file input |Read input from a file | | | |

| | |with Scanner; |using Scanner; | | | |

| | |Line-based file input; |Write output to a file | | | |

| | |Writing to files with |using PrintStream | | | |

| | |PrintStream | | | | |

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 5: |4 |Definitions of |Define "encapsulation" and |AP lab – Pictures; |Chapter 8 – |Chapter 8 |

|Introduction to | |"encapsulation" and |"abstraction" and explain |TextExcel project |Self-check #2-4, 7-8, 11, | |

|Object-Oriented | |"abstraction"; |why they are important; | |17-20; | |

|Programing | |Difference between |Explain the difference | |Exercises #3-9 | |

| | |class and client; |between a class and a | | | |

| | |Instance fields and |client program; | | | |

| | |methods; |Define a custom class; | | | |

| | |Getters and setters; |Write a client program to | | | |

| | |public and private; |use a custom class; | | | |

| | |Class fields and |Explain when to use | | | |

| | |methods; |instance fields/methods | | | |

| | |Constructors; |versus class | | | |

| | |equals and toString; |fields/methods; | | | |

| | |this keyword |Explain when to use public | | | |

| | | |versus private access; | | | |

| | | |Define zero- and non-zero | | | |

| | | |argument constructors; | | | |

| | | |Effectively override the | | | |

| | | |equals and toString methods| | | |

 

 

Second Semester

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 6: Inheritance |4 |Definitions of |Define "inheritance" and |Optional: GridWorld |Chapter 9 – |Chapter 9 |

|and Polymorphism | |"inheritance" and |"polymorphism"; | |Self-check #4, 9-15, 17; | |

| | |"polymorphism"; |Determine whether two | |Exercises #1-4, 9-11 | |

| | |Difference between |classes have an "is-a" or | |  | |

| | |"is-a" and "has-a" |a "has-a" relationship; | |(Note: Self-check #11-15, 17 | |

| | |relationships; |Define classes that extend| |are not in Practice-It!) | |

| | |Extending classes; |another class, including | | | |

| | |Overriding methods; |an abstract class; | | | |

| | |Constructor mechanics |Define classes that | | | |

| | |for inherited classes; |implement interfaces; | | | |

| | |super keyword; |Properly implement | | | |

| | |Upcasting and |constructors of derived | | | |

| | |downcasting; |classes, using super when | | | |

| | |Polymorphism; |needed; | | | |

| | |Extending and using |Trace the execution of one| | | |

| | |abstract classes; |or more methods through a | | | |

| | |Implementing and using |class hierarchy; | | | |

| | |interfaces |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 | | | |

| | | |  | | | |

 

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 7: |3 |Basic algorithmic |Identify which of two|AP lab - Elevens |Chapter 13 – |Sections 13.1-13.3 |

|Searching and | |complexity (runtime); |algorithms has a | |Self-check #9-11, 16-19, 27a; |  |

|Sorting | |Choosing between |faster runtime; | |Exercises #1, 14, 18 |(Note: Insertion sort |

| | |algorithms to complete|Define and implement | |  |is NOTcovered in BJP) |

| | |a given task; |sequential search for| |(Note: Most problems are not | |

| | |Sequential search; |various types of | |in Practice-It!) | |

| | |Binary search; |collections; | | | |

| | |Insertion sort; |Define and implement | | | |

| | |Selection sort |binary search for | | | |

| | | |various types of | | | |

| | | |collections; | | | |

| | | |Define and implement | | | |

| | | |insertion sort for | | | |

| | | |various types of | | | |

| | | |collections; | | | |

| | | |Define and implement | | | |

| | | |selection sort for | | | |

| | | |various types of | | | |

| | | |collections; | | | |

| | | |  | | | |

|Unit 8: |2 |Definition of |Define "recursion"; |  |Chapter 12 – |Sections 12.1-12.3, |

|Recursion | |"recursion"; |Identify methods that| |Self-check #3-5, 7, 9-10, |13.3-13.4 |

| | |Possible recursion |will result in | |13-14, 16-17; | |

| | |failures and their |infinite recursion | |Exercises #1-3, 8-9, 11, 14 | |

| | |causes (infinite |and explain why; | |  | |

| | |recursion); |Identify the output | |(Note: Self-check #7, 9-10, | |

| | |Tracing execution of |or return value of | |16-17 are not in Practice-It!)| |

| | |recursive methods to |recursive methods; | | | |

| | |determine |Define simple | | | |

| | |output/return value; |recursive methods; | | | |

| | |Writing simple |Implement binary | | | |

| | |recursive methods; |search recursively; | | | |

| | |Recursive binary |Define and implement | | | |

| | |search; |mergesort | | | |

| | |Mergesort | | | | |

 

|Unit Title |# weeks |Topics Covered |Objectives (SWBAT…) |Projects/Activities |BJP(3rd ed)/Practice-It |BJP |

|Unit 9: Miscellaneous |3 |Binary and hexadecimal |Convert positive integers |AP labs (Magpie, |N/A |N/A |

|Topics, Review, and | |numbers; |among decimal, binary, and|Pictures, Elevens) | | |

|Exam Preparation | |Review of previous |hexadecimal |Practice AP exams | | |

| | |topics as needed; |representations; |Practice AP questions | | |

| | |Format and structure of|Describe the format of the| | | |

| | |AP exam; |AP Computer Science exam; | | | |

| | |AP free response |Explain how AP free | | | |

| | |scoring guidelines; |response questions are | | | |

| | |Common AP multiple |scored; | | | |

| | |choice question |List common topics and | | | |

| | |formats/topics; |formats for AP multiple | | | |

| | |Test-taking strategies |choice questions | | | |

| | |  | | | | |

|Unit 10: Post-AP Exam |4-5 |Project and/or projects| |N/A |N/A |N/A |

|Project | |of the teachers and/or | | | | |

| | |students choice | | | | |

 

|Throughout Year |​ |​ |​ |​ |​ |​ |

|Unit A: Computing |N/A |Computing in society; |Describe the impact of |College/career panel |N/A |N/A |

|Careers and Culture | |computing college and |computing and technology on |Guest speakers | | |

| | |career options; |society and culture; |Videos (e.g. TED talks) | | |

| | |beneficial and harmful |Identify possible college and |Supplemental readings | | |

| | |effects of technology; |career options in computing; |(e.g. Blown to Bits) | | |

| | |impact of technology on |Discuss current events in |Students presentations | | |

| | |everyday life |computing and technology |Journal entries | | |

| | |  | | | | |

Students will spend the month after the AP exam creating a project of their choice.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download