AP Computer Science A Syllabus for 2014-2015

advertisement
AP Computer Science A Syllabus for 2014-2015
Instructors
Judith Hromcik
Room 309
(972) 925-6309
jhromcik@dallasisd.org
Robert Glen Martin
Room 311
(972) 925-6311
gmart039@dallasisd.org
Introduction
AP Computer Science A emphasizes programming methodology with a concentration on
problem solving and algorithm development and is meant to be the equivalent of a firstsemester course in Computer Science. It also includes the study of data structures and
abstraction, but these topics are not covered to the extent that they are covered in
Computer Science III Dual Credit.
The nature of these courses is suggested by the words “computer science” in the titles.
Their presence indicates a disciplined approach to a more broadly conceived subject than
would a descriptor such as “computer programming.”
Materials




Pencil and/or black/blue pen
1-inch 3-Ring Binder
Lined Filler Paper
Dividers w/ 5 Tabs
Your 3-Ring binder should be divided into the following sections:
1.
2.
3.
4.
5.
Syllabus
Handouts
Notes
Homework
Quizzes
Your orange quick reference should be at the front of your binder.
Texts
Java Software Solutions for AP Computer Science A, second edition, John Lewis, 2007
Barron’s AP Computer Science A, fifth edition, Roselyn Teukolsky, 2010
AP CS A Syllabus
1
JH / RGM 3/6/2016
Class Rules and Responsibilities
The entire TAG family works hard to provide you with an exemplary educational
experience. We endeavor to provide a quality environment, instruction, equipment, and
facilities. Be respectful of our commitment by honoring the following rules and
responsibilities. Help your peers act appropriately as well.
Class rules
 Participate in computer science related activities for the entire class period. A
maximum of one student initiated pass is allowed each 6-weeks. A doctor’s note is
required for additional bathroom or water fountain passes.
 Follow all school rules. I will take-up any and all electronic devices that
I see in the classroom or lab during normal school hours.
 All work you submit must reflect your own understanding. Plagiarism or other
cheating will have significant consequences including but not limited to zero
grades and parent notification.

TAG computers are for school related work only. Do not use them to play games,
listen to music, watch videos, view social media, download or install software. Do not
deface property, make any configuration changes, use proxies, or do anything to
computers that might disrupt others’ use.

Be in your seat with all materials ready when the tardy bell rings.

Do not eat or drink in the classroom or lab unless specifically permitted. Water is
permitted except at computers.

Wear your ID badge at all times.
Responsibilities

Participate in class and take notes.

Complete your homework on time.

Keep a notebook with your quick reference, syllabus, notes, homework, and other
handouts.

Don’t get behind. Leaving your reading and homework until the last minute is a
big mistake.
311 Printer Policy

You may not print more than one copy of any document.

You may not print any document longer than 10 pages.

No exceptions are allowed that are not pre-approved by Mrs. Hromcik or Mr. Martin.

Creative circumventions of this policy will not be appreciated.
AP CS A Syllabus
2
JH / RGM 3/6/2016
Assessment
In order to satisfy the curricular requirements of the College Board as specified in my
College Board Course Audit documents, I will weight grades as follows:
Course Category
Homework
Daily Work (Labs, Quizzes, Classroom Work)
Examinations
TREK or TAG-IT
Course Weight
10% / 9% w/ TREK, TAG-IT
40% / 36% w/ TREK, TAG-IT
50% / 45% w/ TREK, TAG-IT
10%

There will generally be at least one examination per chapter of Java Software
Solutions. Any student may schedule an alternate examination with me to be taken
before or after school within 5 school days (not class days) or not later than 10 days
after the original test date. Students who received less than a 70 on the first test will
receive the higher of the two grades. Students who received a grade greater than or
equal to 70 will receive the second grade. End of semester examinations may not be
retaken.

Quizzes will be given to check for student understanding. Quizzes may not be retaken.

There will be frequent homework. It is usually graded by effort (completion). The
only way to get a 100 is by having your homework complete and on time. Late
homework receives a maximum grade as follows:
o One class day late – 70% maximum grade
o More than one class day late – 0 maximum grade

Your teacher will conduct ongoing formative assessments to keep track of your
progress. These formative assessments will generally not be graded. They will be used
for early identification of difficulties that you may be having. Additionally, extra credit
assignments are usually available for students who have completed their regularly
assigned work.
The Course
This is an introductory course in computer science. Because the development of computer
programs to solve problems is a skill fundamental to the study of computer science, a large
part of the course is built around the development of computer programs or parts of
programs that correctly solve a given problem. The course also emphasizes the design
issues that make programs understandable, adaptable, and, when appropriate, reusable. At
the same time, the development of useful computer programs and program modules is used
as a context for introducing other important concepts in computer science, including the
development and analysis of algorithms, the development and use of fundamental data
structures, and the study of standard algorithms and typical applications. In addition, an
understanding of the basic hardware and software components of computer systems and the
responsible use of these systems are integral parts of the course. The topic outline below
summarizes the content of the AP Computer Science curriculum.
AP CS A Syllabus
3
JH / RGM 3/6/2016
Goals
The goals of AP Computer Science A are comparable to those in the introductory sequence
of courses for computer science majors offered in college and university computer science
departments. It is not expected, however, that all students in an AP Computer Science
course will major in Computer Science at the university level. An AP Computer Science
course is intended to serve both as an introductory course for computer science majors and
as a course for people who will major in other disciplines that require significant
involvement with computing.
Computer Language
This course will be taught using the Java programming language. Java is the most used
language for introductory computer science courses. Java is a good language for new
programmers and is required for the AP Computer Science Examinations.
Equipment
Students have access to computers in room 311 during class as well as before and after
school. These computers contain the Sun Java 7.0 JDK as well as the JCreator
development environment, which is the software that we will be using. Students should be
able to complete all assignments using TAG computers.
However, students may find it useful to be able to do Java programming work on their
computers at home. All the Java software we use can be downloaded from the internet for
no additional charge. I will also make this software available on CD.
Topic Outline
Following is an outline of the major topics covered by the AP Examination in Computer
Science A.
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, and can be adapted to changing circumstances.
The design process needs to be based on a thorough understanding of the problem to be
solved.
A. Program and Class Design
1. Problem analysis
2. Data abstraction and encapsulation
3. Class specifications, interface specifications, relationships (“is-a,” “has-a”), and
extension using inheritance
4. Code reuse
5. Data representation and algorithms
6. Functional decomposition
AP CS A Syllabus
4
JH / RGM 3/6/2016
II. Program Implementation
Part of the problem-solving process is the statement of solutions in a precise form that
invites review and analysis. The implementation of solutions in the Java programming
language reinforces concepts, allows potential solutions to be tested, and encourages
discussion of solutions and alternatives.
A. Implementation techniques
1. Top-down
2. Bottom-up
3. Object-oriented
4. Encapsulation and information hiding
5. Procedural abstraction
B. Programming constructs
1. Primitive types vs. reference types
2. Declaration
a. Constants
b. Variables
c. Methods and parameters
d. Classes
e. Interfaces
3. Text output using System.out.print and System.out.println
4. Control
a. Method call
b. Sequential execution
c. Conditional execution
d. Iteration
e. Recursion
5. Expression evaluation
a. Numeric expressions
b. String expressions
c. Boolean expressions, short-circuit evaluation, De Morgan’s law
C. Java library classes and interfaces included in the AP Java Subset
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. Development of appropriate test cases, including boundary cases
2. Unit testing
3. Integration testing
B. Debugging
1. Error categories: compile-time, run-time, logic
2. Error identification and correction
3. Techniques such as using a debugger, adding extra output statements, or hand-tracing
code.
C. Runtime exceptions
AP CS A Syllabus
5
JH / RGM 3/6/2016
D. Program correctness
1. Pre- and post-conditions
2. Assertions
E. Algorithm Analysis
1. Statement execution counts
2. Informal running time comparison
F. Numerical representations of integers
1. Representations of non-negative integers in different bases
2. Implications of finite integer bounds
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.
B.
C.
D.
E.
Primitive data types (int, boolean, double)
Strings
Classes
Lists
Arrays (1-dimensional and 2-dimensional)
V. Standard Operations and 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 data structures
1. Traversals
2. Insertions
3. Deletions
B. Searching
1. Sequential
2. Binary
C. Sorting
1. Selection
2. Insertion
3. Mergesort
VI. Computing in Context
An awareness of the ethical and social implications of computing systems is necessary for
the study of computer science. These topics need not be covered in detail, but should be
considered throughout the course.
A.
B.
C.
D.
System reliability
Privacy
Legal issues and intellectual property
Social and ethical ramifications of computer use
AP CS A Syllabus
6
JH / RGM 3/6/2016
Download