AP Computer Science Syllabus
Instructor : Mr. Paulian
E-mail: timothy.paulian@uticak12.org
Course Description
AP Computer Science is taught using the Java language. The content is similar to that covered in a typical Computer Science 1 undergraduate college level course. The major focus of the course will be to develop students’ analytical thinking processes and refine their problem solving skills.
Knowing computer science provides students with a too; that can be used to perform complex calculations, simulations and processing research data. This is an essential part of preparing the student for demanding university programs in science, mathematics, and engineering and computer science.
Prerequisites : A strong mathematics background.
Textbook : Fundamentals of Java: Comprehensive, second Edition . Kenneth Lambert, Martin
Osborne, Course Technology Inc, ISBN 0-619-05971-0
Supplemental Text Dietel & Dietel, Java How to Program Fifth Edition ISBN 0131016210
Supplemental Text Bell & Parr, Java for Students Oakland Community College Edition ISBN 0-
536-68849-4
College Board. AP Case Study.
Facilities : Computer lab with 32 student computers will be used for programming projects and presentations.
Grading and Evaluation Criteria:
Test/Quizzes 35%
Homework 25%
Programs 40%
Course Objectives:
Lesson Title, Topics and Student Objectives
1
2
Lesson 1 -Background
The students will be able to
Give a brief history of computers.
Describe how hardware and software make up computer architecture.
Understand binary representation of data and programs in computers.
Discuss the evolution of programming languages.
Describe that software development process.
Discuss the fundamental concepts of object-oriented programming.
Lesson 2 –First Java Programs
Discuss why Java is an important programming language.
Explain the Java virtual machine and byte code.
Choose a user interface style.
3
4
5
6
7
Describe the structure of a simple Java program.
Write a simple program.
Edit, compile and run a program using a Java development environment.
Format a program to give a pleasing, consistent appearance.
Understand, compile time errors.
Write a simple graphics program.
Lesson 3 –Syntax, Errors and Debugging
Construct and use numeric and string literals.
Name and variables and constants.
Create arithmetic expressions.
Understand the precedence of different arithmetic operators.
Concatenate two strings or a number and a string.
Know how and when to use comments in a program.
Tell the difference between syntax errors, run-time errors, and logic errors.
Insert output statements to debug a program.
Lesson 4 –Introduction to control statements
Use increment and decrement operators.
Use standard math methods.
Use if – else statements to make choices.
Use while and for loops to repeat a process.
Construct appropriate conditions for control statements using relational operators.
Detect and correct common errors involving loops.
Lesson 5 –Introduction to Defining Classes
Design and implement a simple class from user requirements.
Organize a program in terms of a view class and a model class.
Use visibility modifiers to make methods visible to clients and restrict access to data within a class (encapsulation).
Understand how parameters transmit data to methods.
Use instance variables, local variables and parameters appropriately.
Organize a complex task in terms of helper methods.
Lesson 6 – Control statements continued
Construct complex Boolean expressions using logical operators &&, || and !.
(and, or and not)
Construct truth tables for Boolean expressions.
Understand logic of nested if statements and extended if statements.
Test if statements in a comprehensive manner.
Construct nested loops.
Create appropriate test cases for if statements and loops.
Lesson 7 – Improving the User Interface
Construct a query-driven terminal interface.
Construct a menu-driven terminal interface.
8
9
10
Construct a graphical user interface.
Position window objects in a grid within a window.
Write a method to handle user interactions with command buttons.
Manipulate window objects to input and output integers, doubles and text.
Lesson 8 –Introduction to Arrays
Write programs that handle collections of similar items.
Declare array variables and instantiate array objects.
Manipulate arrays with loops.
Write methods t manipulate arrays.
Create parallel arrays and two-dimensional arrays.
Lesson 9 –Classes Continued
Know when it is appropriate to include class (static) variables and methods n a class.
Understand the role of Java interfaces in a software system and define an interface for a set of implementing classes.
Understand the use of inheritance by extending a class. ( is-a, has-a)
Understand the use of polymorphism and know how to override methods in a superclass.
Place common features (variables and methods) of a set of classes in an abstract class.
Understand the implications of reference types for equality, coping and mixedmode operations.
Lesson 10 – Arrays Continued
Use string methods appropriately.
Write a method to search an array.
Understand why a sorted array can be searched more efficiently than an unsorted array.
Write a method to sort an array.
Write methods to perform insertions and removals of array elements.
Understand the issues involved when working with arrays of objects
Perform simple operations with the Java ArrayList class.
11
Case Study
Lesson 11 – Arrays Continued
Design and implement a recursive method to solve a problem.
Understand the similarities and differences between recursive and iterative solutions to a problem.
Check and test a recursive method to solve a problem.
Understand how a computer executes a recursive method.
Perform a simple complexity analysis of an algorithm using big-O notation.
Recognize some typical orders of complexity.
Understand the behavior of a complex sort algorithm such as the quick sort.