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