Course information: 532500AW
1 Carnegie unit
B-231
Class meets every day from 7:30 – 8:20 AM

Instructor information: Mr. L. Crosswell
849-2830 ext. 23990 or This e-mail address is being protected from spambots. You need JavaScript enabled to view it.
Extra help available Monday and Thursday from 3:40 – 4:00 in B-233

Grading:    

1st 9-Weeks 2nd 9-Weeks 3rd 9-Weeks 4th 9-Weeks

In-class exercises/worksheets

20%

15%
15%
15%

Out of class projects

30%

15%
35%
15%

Quizzes and Tests

50%

50%
50%
50%
Java Project
0%
20%
0%
20%

There will be semester exams that will count for 20% of your 1st semester average and final average for this course.

Course policies:

Attendance –You will need to strive to be in class every day.  Your attendance in this class will determine if we are permitted to continue having this course before school.
Tardiness – You should set your timepieces exactly with the clock in room H-127.  This will be the official time for our class.  I will enforce the Wando High tardy policy. This class meets early enough that traffic should never be a problem.  DO NOT BE LATE!
Class participation – Every student will be expected to participate fully in all class discussions.
Missed assignments and exams – All assignments will be posted on my class website.  All missing exams due to lawful absence must be made up within 5 school days as per the Wando attendance policy.
Academic dishonesty – I will not tolerate cheating, nor do I expect anyone in this class to cheat.  Please assume that you may always work together on any class assignment unless I specifically say otherwise.  Assume that all exams and quizzes will be completed on an individual basis unless I specifically say otherwise.  Any student found to have violated these rules will be subject to the academic dishonesty policy of Wando High.
IDs – Please always wear your ID.
Class Webpage – Your assignments and helpful links will be posted here.
Jump Drives – You are required to bring your jump drive with you to class daily.  If you have problems procuring a jump drive, please see me ASAP and I will help you.  Not having a jump drive with you is NOT an acceptable excuse for not having a program that is due.  10% will be docked from a program’s grade each day it is late for whatever reason.

Course Resources

Java Software Solutions for AP Computer Science A, J. Lewis, W. Loftus, and C. Cocking, 2nd  Edition, 2007, Prentice Hall.

AP Computer Science 2007 Levels A and AB, R.. Teukolsky, 4th Edition, 2007, Barron’s Educational Services.

Be Prepared for the AP Computer Science Exam in Java, M. Litvin, 3rd Edition, 2007, Skylit Publishing.

AP® GridWorld Case Study

Web site: ObjectDraw: http://eventfuljava.cs.williams.edu/library/

Note: A chart is available at the end of the Units of Study to show correlation between the ‘‘Computer Science A’’ column of the Topic Outline in the AP Computer Science Course Description and each unit of this syllabus.

Units of Study

Unit 1: Introduction to the Computer and Ready-Made Programming Environments
(Time: 4 weeks)

We begin with an introduction to using the computer and its components. Students experiment with the objectDraw environment which leads them to explore three ready-made programs and provides exercises that allow them to first manipulate the already-created program environment and then create a program from scratch. Students also work through Part One of the GridWorld Case Study. They learn about the components of a computer system, networks, and the Internet.

Sample Student Activity for Unit 1: Manipulate objectDraw – change one object, change several objects together, change several objects independently of each other.

Resources:

  • ObjectDraw
  • AP GridWorld Case Study
  • Lewis, Loftus, Cocking: Chapter One

Unit 2: Introduction to the Programming Environment (Time: 4 weeks)

This unit begins teaching students how to plan their work by learning about proper pseudocode and flowchart structures. Students are led through their first program (Hello World) to explore the format of a proper Java program. They continue with learning how to use simple input/output, primitive data types, the String class, arithmetic expressions and random number generation.

Sample Student Activities for Unit 2: Practice pseudocode and flowchart, Hello World, Strings, Expressions, Random/IO

Resources:

  • Lewis, Loftus, Cocking: Chapter Two
  • Teukolsky: Chapter One

 

Unit 3: Conditional and Repetition (Time: 4 weeks)

Students focus on how to use conditionals (if, if---else, switch) and repetition (for, while, do while) structures.

Sample Student Activities for unit 3: Conditionals, Loops, Code Segments

Resources:

  • Lewis, Loftus, Cocking: Chapter Three
  • Teukolsky: Chapter Four

Unit 4 --- Methods and Classes (Time: 4 weeks)

Students learn how to create their own classes by defining objects. Proper method and class structure is emphasized. They are also introduced to interfaces (Comparable), inheritance, and polymorphism.

Sample Student Activities for Unit 4: Exploring Applets, Methods Assignment

Resources:

  • Lewis, Loftus, Cocking: Chapters Four, Five and Seven
  • Teukolsky: Chapters Two and Three

Unit 5: Advanced Programming Structures (Time: 4 weeks)

This unit focuses on the creation of advanced data structures and algorithms. Topics include 1-D and 2-D arrays, ArrayLists, sorting algorithms (Insertion Sort, Selection Sort, and Merge Sort) and recursion.
Sample Student Activities for Unit 5: Arrays and ArrayList

Resources:

  • Lewis, Loftus, Cocking: Chapters Six and Eight
  • Teukolsky: Chapters Six, Seven, and Twelve

Unit 6: AP GridWorld Case Study, continued(Time: 3 weeks)

Students work through Parts Two, Three and Four of the AP GridWorld Case Study.

Resources:

  • AP GridWorld Case Study
  • Teukolsky: Chapter Thirteen

Unit 7: The Computer and Society (Time: 2 weeks)

Students explore how the computer has affected society. Topics include the evolution of computer languages, ergonomics, ethics and computer careers. Students will submit a series of research papers and do a class presentation.

Resources:

  • Assignment handouts

Unit 8: Input/Output (Time: 3 weeks)

This unit teaches students how to use input and output streams. Topics include try and catch, exceptions, standard I/O, and reading from and writing to text files.

Resources:

  • Lewis, Loftus: Chapter Eight

Unit 9: Getting Ready for the AP Exam (Time: 4 weeks)

Students work through sample multiple-choice questions and free-response questions. They will write a mock exam to simulate the timing and type of questions to expect on the actual exam. Students review Java theory and the AP GridWorld Case Study.

Resources:

  • AP GridWorld Case Study
  • Teukolsky: Chapter Five
  • Supplemental handouts------ free-response questions from previous years
  • Litvin: All chapters and practice tests

Unit 10: Summative (Time: 3 weeks)

Students work through a series of summative assignments that evaluate their ability to work through the development of a program. Tasks include writing a program proposal, planning the program using pseudocodes/flowcharts, creating a user’s manual, writing program code, and creating a limitations document.
Correlation to AP Topic Outline


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.

Units 1 and 3

2. Apply data abstraction and encapsulation.

Units 2 and 4

3. Read and understand class specifications and relationships among the classes (‘‘is-a,’’ ‘‘has-a’’ relationships).

Unit 4

4. Understand and implement a given class hierarchy.

Unit 4

5. Identify reusable components from existing code using classes and class libraries.

Unit 4

B. Class design

1. Design and implement a class.

Unit 4

3. Choose appropriate data representation and algorithms.

Units 3 and 4

4. Apply functional decomposition.

Units 4

5. Extend a given class using inheritance.

Units 4

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 2

b. Top-down development

Unit 3

c. Encapsulation and information hiding

Unit 4

d. Procedural abstraction

Unit 4

B. Programming constructs

1. Primitive types vs. objects

Unit 2

2. Declaration

a. Constant declarations

Unit 2

b. Variable declarations

Unit 2

c. Class declarations

Unit 4

d. Interface declarations

Unit 4

e. Method declarations

Unit 4

f. Parameter declarations

Unit 4

3. Console output (System.out.print/println)

Unit 2

4. Control

a. Methods

Unit 4

b. Sequential

Unit 3

c. Conditional

Unit 3

d. Iteration

Unit 3

e. Recursion

Unit 5

C. Java library classes (included in the A-level (AP Java Subset)

Units 2 and 4

 

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 4

2. Identify boundary cases and generate appropriate test data.

Unit 4

3. Perform integration testing.

Unit 4

B. Debugging

1. Categorize errors: compile-time, run-time, logic.

Units 1, 2 and 8

2. Identify and correct errors.

Units 1, 2, 5 and 8

3. Employ techniques such as using a debugger, adding extra output statements, or hand-tracing code.

Units 1, 2, 5 and 8

C. Understand and modify existing code

Units 1, 2, 3, 4, 5, 6 and 8

D. Extend existing code using inheritance

Units 4

E. Understand error handling

1. Understand runtime exceptions.

Units 4

F. Reason about programs

1. Pre- and post-conditions

Units 4

2. Assertions

Unit 4

G. Analysis of algorithms

1. Informal comparisons of running times

Unit 5

2. Exact calculation of statement execution counts

Unit 5

H. Numerical representations and limits

1. Representations of numbers in different bases

Unit 1

2. Limitations of finite representations (e.g., integer bounds, imprecision of floating-point representations, and round-off error)

Units 2 and 3

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 #2

B. Classes

Units 2 and 4

C. One-dimensional arrays

Unit 5

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 5

2. Insertions

Unit 5

3. Deletions

Unit 5

B. Searching

1. Sequential

Unit 5

2. Binary

Unit 5

C. Sorting

1. Selection

Unit 5

2. Insertion

Unit 5

3. Mergesort

Unit 5

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 1

2. Processors

Unit 1

3. Peripherals

Unit 1

B. System software

1. Language translators/compilers

Unit 1

2. Virtual machines

Unit 1

3. Operating systems

Unit 1

C. Types of systems

1. Single-user systems

Unit 1

2. Networks

Unit 1

D. Responsible use of computer systems

1. System reliability

Unit 1

2. Privacy

Unit 7

3. Legal issues and intellectual property

Unit 7

4. Social and ethical ramifications of computer use

Unit 7