PROGRAM OUTLINE 11A - AP Computer Science I 2011-2012 Lance Allen lallen@btfiloh.org Office: (410) 413-2329 For your convenience you can reach me in the following ways. You can call my voicemail extension 329 here at school and leave a message. You can e-mail me, and you can call my cell phone 410-698-5696. All communication will be returned within 24 hours (excluding weekends and vacations). Course Description This is the first of a two-year lab-based course that follows The College Board Advanced Placement curriculum in preparation for the Computer Science exam in the Java programming language. Students will gain an advanced understanding of this object-oriented language. Access to a computer at home is required for students in this course. The course will culminate with the AP exam in May of the senior year. Course Texts Java Software Solutions for AP Computer Science by Lewis, Loftus & Cocking, Addison Wesley 2004 Gridworld Case Study by the College Board Course Objectives To strengthen object-oriented programming skills using the Java programming language. To master the fundamentals of the Java programming syntax. Introduce AP exam Free Response question formats in order to begin preparing for Computer Science A exam. Grading Policy 1. Grades will be based on frequent in-class coding assignments, as well as homework coding assignments. There will also be unannounced quizzes based on assigned homework readings. 2. Unit tests will be scheduled several times within each trimester. Supplies Students are required to bring their textbook, material for taking notes, and a pen and pencil to every class. Academic Integrity In keeping with the goals set out in our mission statement, to promote the moral and ethical development of our students, we seek to create an ethical environment in which students demonstrate integrity in all areas of their lives. We also recognize that it is our responsibility to prepare students for the practical challenges of contemporary society, which include consequences for dishonest or unethical behavior on college campuses and in the work world. For our entire Academic Integrity Policy, see our Parent Handbook. Homework Students must complete all homework assignments independently unless otherwise indicated and must include the Computer Science Dept. Integrity Statement. Assignments are announced in class and then posted on the BT homework website. All assignments must be submitted via email prior to the start of the class on the due date. No homework may be submitted in class. Course Outline Computing in Context o 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. Object-Oriented Program Design o 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. Program Implementation o 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. The Basic Foundations of the Java Programming Language o A programming language defines a set of rules that determine exactly how a programmer can combine words and symbols of the language into programming statements, which are the instructions that are carried out when the program is executed. Students will spend a good deal of time learning the basic Java syntax. Program Analysis o 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.