COURSE SYLLABUS: AP* Computer Science A Pacifica High School ~ Instructor: Mr. Scoles ~ Room: B-34 Course Overview: The purpose of this class is to introduce the student to the object oriented programming paradigm using the Java language. Concepts such as classes, objects, inheritance, polymorphism, and code reusability will be covered. Individual hands-on laboratory work will help solidify each concept taught. Students will complete a long-term programming project and will create a formal presentation demonstrating the project. Course Resources: Java Software Solutions for AP* Computer Science, A. J. Lewis, W. Loftus, and C. Cocking Barron’s Review Book for AP Computer Science CodingBat account (free) AP* Case Study B-34 Computer Lab with Dell PCs BlueJ (free compiler) Java Development Kit (freeware) Course Objectives: After completing this course, students will be able to 1. develop an understanding of the concept of a class and an object. 2. develop an understanding of how objects model real world objects. 3. implement inheritance to construct an object inheritance hierarchy. 4. implement polymorphism to process collections of objects. 5. study and extend the case study project. 6. design and implement a long-term programming project and formally present the project. Homework & Notebook: Homework will be posted by 4:00 each day unless otherwise stated in class. Expect to do about twenty minutes of homework per day. Homework will be graded the following day in class. If not shown at time of grading, homework will receive a zero. Students should purchase an AP Computer Science designated single subject notebook storing course documents and taking notes. Classwork & Assessments: Instruction in this class is given through lecture, class discussions, handouts, and demonstrations. We use the gradual release of responsibility model of me demonstrating key concepts, to us coding together, to students coding independently. The introduction is only a small component, as students spend about 70% of class time working independently. This allows time for them to complete assignments and gives me the opportunity to formatively assess their progress. I believe that programming has to be learned primarily by doing, which is why I strive to give students as much time working as possible. I give assignments that challenge students to develop problem-solving skills as they work individually, or in groups. There is additional time offered after school for students to receive extra help or simply spend more time programming. All assignments descriptions and resources are on the network drive. Students can print all resources and study guides to take home and study. Most coding assignments will be completed in class while simple prep work will often be assigned as homework. One exam will be given at the end of each unit. Attendance: Attendance is very important, as most work will be done in class. Students who are absent have twenty-four hours to make up work/assessments. Students are required to notify Mr. Scoles via email at escoles@ggusd.us, and then stop in at the beginning of 0-period to make up work. After twenty-four hours, any work not made up will be entered into the gradebook as a zero. Teacher Availability: Please feel free to contact me (Mr. Scoles) at Pacifica High School with any questions or concerns. The school phone number is (714) 663-6515. You can also contact me by e-mail at escoles@ggusd.us. Portfolio: Each student will be required to develop and organize an electronic portfolio on the student password protected drive. It is recommended that the portfolio be backed up using Google Drive. At the end of the school year, students should retrieve all files and take them home using Google Drive or a flash drive. Computer Lab Rules: 1. No food, drink, gum, or candy is allowed in the laboratory. Water bottles, etc. may be left on the cart in the front 2. Arrive on time. Students who arrive late are marked tardy. 3. Walk in quietly and sit in designated seat immediately. 4. Remain seated while in class. 5. Sit quietly during instruction. 6. Only touch the keyboard and mouse. If the computer does not seem to be working correctly, ask the instructor for help. 7. Only open computer programs that the instructor says to open. 8. The GGUSD Internet usage policy is in place. Accessing inappropriate content will result in disciplinary actions 9. Leave workspace clean and neat. 10. Do not log out of computers until the bell rings. Optional Lab Donation: We are asking for $10 donations to help buy classroom supplies for students to use during the school year. We use donations to purchase supplemental upgrades, and technologies enhancing the student experience in B-34 beyond state requirements. Student grades are not affected whatsoever by a donation or non-donation. Grade Allocation: 30% - Classwork/Homework (done in class with teacher guidance / prep, review, and reinforcement done as homework) 10% - Quizzes (20 question definition-style multiple-choice formative. 30 seconds per question) 60% - Exams - 20 question AP* Style multiple-choice (2.25 min per question) & 1 FRQ (22.5 min) Classwork/Homework Grading Rubric: Done = 1 point Not done = 0 points - Any assignments/folders named incorrectly or in the wrong format have a .5-point deduction. Grading Scale: 90-100% = A 80-89.9% = B 70-79.9% = C 60-69.9%= D 59.9% and below = F CURRICULUM Unit 1: Introduction to the Computer and the Java Programming Environment | Weeks 1-3 | Sept 8-25 Objectives: Become familiar with the lab, login, customizing account, and classroom procedures Learn about computer hardware, software, operating systems, and networks Computer laws and ethics Experience the programming environment in BlueJ and create a basic class to print text in the system window Use arithmetic expressions with primitive data types Variables The String class java.lang.Double, java.lang.Integer, java.lang.Math Resources: Lewis, Loftus, Cocking Chapter 1: Computer Systems Lewis, Loftus, Cocking Chapter 2: Objects and Primitive Data Barron’s Review Book Chapter 1: Intro Java Language Features Barron’s Review Book Chapter 2: Classes and Objects Sample Labs and Projects: Ideal weight (calculate ideal weight based on a formula) Roll of dice (random number generation for two dice) String manipulation (use various String methods to measure and modify a String) Unit 2: Conditionals and Repetition | Weeks 4-6 | Sept 28-Oct 16 Objectives: if, if-else Relational Operators Comparing objects For and while loops Resources: Lewis, Loftus, Cocking Chapter 3: Program Statements Sample Labs: Rock-Paper-Scissors (randomly choose rock, paper, or scissors for two players, then display which player wins; or loop if there’s a tie) Slot Machine (use a loop to choose 3 random numbers, then evaluate the numbers to see if they are the same) Unit 3: Class Design | Weeks 7-9 | Oct 19-Nov 6 Objectives: Understanding how a class works Writing classes Instance data Encapsulation Resources: Lewis, Loftus, Cocking Chapter 4: Writing Classes Barron’s Review Book Chapter 5: Program Design and Analysis Sample Labs: Names (create a class that stores full names; then create methods to call for the full name, first name, or last name) Unit 4: Class Methods | Weeks 10-13 | Nov 9-Dec 11 Objectives: Methods Returning values Parameters Resources: Lewis, Loftus, Cocking Chapter 5: Enhancing Classes Barron’s Review Book Chapter 4: Some Standard Classes Sample Labs: Student grades (create a class to manage student names and grades, then create a driver to create students and show their grades) College Board Magpie Lab Case Study Unit 5: Arrays and ArrayLists | Weeks 14-17 | Dec 14-Jan 22 Objectives: Declare and use arrays Storing numbers and objects in arrays Searching and Sorting Two-Dimensional Arrays ArrayList Passing arrays to methods Resources: Lewis, Loftus, Cocking Chapter 6.0: Arrays and ArrayLists Barron’s Review Book Chapter 6: Arrays and ArrayLists Sample Labs: Quiz (create an array of quiz answers, then compare sample answers to the array to calculate percentage correct) Car Removal (create an ArrayList of car names, then remove items from the ArrayList if they are of a specified length) Unit 6: 2D Arrays | Weeks 18-22 | Jan 25-Feb 26 Objectives: Declare and use 2D arrays Populate and process data in 2D arrays Apply concepts to 2D array case study Solve FRQ 2D array problems Resources: Lewis, Loftus, Cocking Chapter 6.3: 2D Arrays Barron’s Review Book Chapter 6: 2D Arrays Sample Labs: Multiplication table (create a 2D array and populate it with a multiplication table) Jukebox (create a 2D array and populate it with songs) College Board Picture Lab Case Study Unit 7: Inheritance | Weeks 23-26 | Feb 29-March 25 Objectives: Inheritance .Super Overriding methods Abstract classes Polymorphism Interfaces Resources: Lewis, Loftus, Cocking Chapter 7: Inheritance Barron’s Review Book Chapter 3: Inheritance and Polymorphism Sample Labs: Animals (create an animal class with characteristics of many animals; then create classes for individual animals to override methods where appropriate, or use the methods of the class above) College Board Elevens Lab Case Study Unit 8: Recursion | Weeks 27-28 | March 27-April 8 Objectives: Base case Non-base case Tracing recursive methods Resources: Lewis, Loftus, Cocking Chapter 11: Recursion Barron’s Review Book Chapter 7: Recursion Activities: Trace a series of recursive methods Unit 9: Sorting and Searching | Weeks 29-30 | April 18-29 Objectives: Selection Sort Insertion Sort Merge Sort Quick Sort Sequential Search Binary Search Resources: Lewis, Loftus, Cocking Chapter 6.2: Sorting and Searching Barron’s Review Book Chapter 8: Sorting and Searching Activities: Label a set of cups with numbers. Organize the cups using the sorting methods Unit 10: AP Exam Prep | Week 31 | May 2 Objectives: Complete practice tests Develop study guide Review course topics Resources: Entire Barron’s Review Book Sample Labs: Students complete real time AP Practice Exams Unit 11: Further Programming Topics | Weeks 32-37 | May 16-June17 Objectives: JFrame/JPanel Input/output Graphical User Interfaces Drawing Design Game Resources: Lewis, Loftus, Cocking - Various sections of chapters