Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
AP COMPUTER SCIENCE A QSI (Quality Schools International) Shekou, Shenzhen, PRC (Peoples Republic China) Instructor: Tim Winterfeld, MS Computer Science, University of Oregon SYLLABUS Course Overview: The purpose of this course is to introduce the students to an object-oriented programming language (OOP). We will use the language Java that is required for the AP computer science A exam. The students will use the program BlueJ an integrated development environment to complete their lab exercises. All the students (6 this first year), have little or no programming experience. The challenge for the instructor will be to develop enthusiastic students for programming, whose main topic is problemsolving, by making them active learners and critical thinkers. The course teaches the significance of object-oriented programming, the keywords and constructs of the Java programming language, and the steps required to create simple Java technology programs. Students have already acquired facility in written and oral communication before entering this course. Course resourses: Java Software Solutions for AP Computer Science, 2nd edition J. Lewis, W. Loftus, C. Cocking Instructor’s Resource Manual to accompany Java Software Solutions J. Lewis, W. Loftus, C. Cocking AP Grid World Case Study Computer Facilities: We are an International School in Shenzhen, China. Our school has 950 students from K-12. The total number of students in high school is 150. The AP computer science will enroll 6 students this year. We have two computer labs with 17 computers and many other computers located around the campus. Both computer labs have identical teacher computers and projection units. All Secondary School student and teacher computers are new, Fall 2009. These are Dell desktop computers and have Intel chips as well as 4 gig of RAM standard as well as 250 gig HD, DVD’s with both read and write capabilities. These are mated to 17 inch flat screen displays. AP students have the in addition of a single computer in a small AP student study hall room. Students also all have personal or laptop computers at home they can choose to use when at home. School Facilities and Computers are open for students from 7:30 a.m. to 9:00 p.m. Monday through Friday. Page 1 of 9 Class Meeting: The class will meet 3 days per week on a modified block schedule, Monday and Wednesday for 94 minutes each period and approximately 44 minutes on Friday for a total of 232 minutes a week of class instructional time. This allows for sufficient class time for instruction and guided practice. Students will be expected to put additional time in to compete assignments and homework. This will be between 3 and 6 hours weekly depending on student abilities and specific assignments. Course Planner Unit 1 C9, C2, C3 Introduction to computer systems and networks. Computer systems: Hardware(CPU, I/O devices, main memory, second memory devices) Software(operating systems and applications) Binary numbers (storage capacity) Network connections(LAN, WAN) WAN: Internet(TCP/IP, WWW, browser, IP address, URL) activity Study chapter one Lewis Self review questions, multiple choice, true/false, short answer questions (chapter 1 Lewis). Social and ethical impact of computing: Discuss different opinions, research information on internet and hand in research paper. Write first program from scratch and learn about compiling and interpreting and the whole environment, which is necessary to run a java program. Assignments chapter 1 (book Lewis) Especially the social and ethical implications of internet. Introduction to programming languages: Language levels Compilers and interpreters Environments: like Java Development Kit, Java Virtual Machine and other programs which support the development of Java Programs, like Eclipse, BlueJ. Recourses: Lewis, Loftus, Cocking: Chapter one Head First : page 18, 19 Object Oriented programming: Chapter one and two Unit 2 C3, C4, C5,C6, C7 Introduction to objects and primitive data. Students will understand and give examples how to create objects from reality, the fundamentals of .They will start with arithmetic expressions and their operators. activity Use of physical objects like car, radio. You don’t know the inner workings (from different cars to basic car=abstraction) and you don’t see the inner parts (=encapsulation). Self review questions, multiple choice, true/false, short answer questions (chapter 2 Lewis). Page 2 of 9 The students will use the import Some programming projects chapter 2 Lewis (included declaration of the Java standard class the use of the graphic class and applets). library to implement: the random class: random, nextDouble, nextInt the math class:int and double abs, pow,sqrt the String class: compareTo, equals, indexOf, length, substring(int from, int to) substring (int from) The students will use the wrapper classes of the Java library: Integer class Double class (integer/ double, compareTo, equals, int/doubleValue, toString) Resources: Lewis, Loftus, Cocking: Chapter two Unit 3 C3, C4, C5 activity Students will apply the structured Self-review questions, multiple choice, true/false, short statements of OOP on how to solve answer questions (chapter 3 Lewis). problems: sequences, selections Some programming projects chapter 3 Lewis (included (conditional: If-else statement and the use of the graphic class and applets). nested if statements), iterations (loop: comparing while and for statements). The students will study and implement: The use of the class java.lang. Object /Integer/Double The use of relational operators and logical operators in Boolean expressions. The use of the class java.lang.String (the equals method to compare String objects, the compare To method to put strings in lexicographic order) Comparing floating point values(use the math absolute method and a tolerance level) From Appendix B (AP CS A) Resources: Lewis, Loftus, Cocking: Chapter three Unit 4 C3, C4, C5, C6 Classes, objects and methods. Students will discover and apply how to design classes (=blueprint for an object), how to put an object (=constructor) in a class and how to create methods. They activity Use the counter example and the testerCounter ( the main program) from Jan Beurghs chapter 4. Use the Coin Class and modifying the Coin Class from Lewis chapter 4. Method overloading: Page 3 of 9 will construct a tester class in which they can create and access objects of the new class type with passing parameters. An introduction to encapsulation (the scope of variables and objects with the visibility modifiers: public and private) . And they will demonstrate how and why to use method overloading. Use the Bank Account Class and Die Class from Lewis chapter 4. Study page 38 – 40 from Head First Study page 80 – 81 from Head First Assignments “Be the Compiler” from chapter 2 Head First. Some programming projects (including one graphic project) and self review, multiple choice questions from Lewis chapter 4 Resources: Lewis, Loftus, Cocking: Chapter four Head First: Chapter two Object Oriented Programming: Chapter four Unit 5 C7, C3, C4, C5 activity Introduction to the Grid World Case Study page 50-58 from Head First. (primitives and Study.(show , explain and demonstrate references) inheritance and polymorphism) Study Parameter Passing and program project 5.1 from Students will learn to understand the use Lewis. of the primitive and reference variables Explore the case study part one and introduce (location of memory), passing objects as inheritance and polymorphism. parameters, the null reference, static Study page 273-314 (static variables and static methods) variables and static methods. from Head First They will understand why to create and Self-review, multiple choices, true/false, short answer use interfaces and their class questions from Lewis chapter 5. implementations. Several programming projects about dialog boxes and The students will learn to use the graphical user interface from Lewis chapter 5. comparable interface from the java class library .(compareTo (Object obj)) They will show how to create dialog boxes and basic graphical user interfaces. Appendix B from AP CS A Resources: Lewis, Loftus, Cocking: Chapter five Head First : Chapter three and ten Object Oriented Programming: Chapter four Object Oriented Programming: Chapter eleven Unit 6 C3, C4, C5, C6 Students will define and use one-dimensional and two-dimensional rectangular arrays of primitive types and objects. They will learn to initialize named arrays. They will declare and use arrays, arrays of objects and passing an array as a parameter. They will study how to fill arrays and arrays of objects and implement operations on arrays like counting or reversing. They will discover how to search in arrays and activity Page 59-69, 83 reading and doing from Head First.(arrays) Searching and sorting from Lewis (page 298 – 332) Page 133-150 reading and doing from Head First (ArrayList) Study bumper cars: the arena from Lewis Arrays and graphics , buttons from Lewis Self- review, multiple choice, true/false, short Page 4 of 9 use and implement the 2 different methods for searching : The sequential or linear search The binary search in ordered arrays. The students will discover how to sort arrays and use and implement the 2 different methods for sorting: The selection sort (find the smallest value or the biggest value and sawpit to its final position.) The insertion sort (insert each time a new value and put the value in the proper place) The students will use the compareTo method to implement sorting. The students will explore how to compare algorithms, especially sorting algorithms in time efficiency and space efficiency. answer and programming projects from Lewis chapter 6. They will know how to implement the ArrayList class and some methods of the ArrayList class: (add, set, get, remove, size) Appendix B from AP CS A Resources: Lewis, Loftus, Cocking: Chapter six Head First Unit 7 C3, C4, C5, C6 , C7 Students will discover the concepts behind inherited classes. Students will discuss how to design class hierarchies and define and understand polymorphism. Students will understand why we use interfaces (abstract classes). They will practice with the use of inheritance in java GUI framework and the Java GUI component. activity Self-review multiple choice, true/false, short answer and programming projects from Lewis chapter 7. Some examples and assignments from chapter 7 and 8 from Head First (is a –has a) Grid World case study part two. Resources: Lewis, Loftus, Cocking: Chapter seven Head First Grid World Case Study Unit 8 C4, C5, C6, C7 Students will examine recursive methods and processing steps. They will understand when recursion should and should not be used. They will demonstrate the activity Self-review, multiple choice, true/false, short answer and programming projects from Lewis chapter 8. Page 5 of 9 use of recursion to solve problems and the use of recursion in sorting: merge sort (divide the list and recursively sort the two sub lists ) quick sort (divide the list into two sub lists by sorting the values already into low and high values) They will continue with the study of Grid World Case Study Resources: Lewis, Loftus, Cocking: Chapter eight Grid World Case Study Grid World Case Study part three Unit 9 C7, C4, C5 Students will comprehend how to handle with errors: Logical errors Compile-time errors Run-time errors. activity Grid World Case Study part four They will show how to debug. They will recognize exception handling (throw exception-try/catch block) Grid World Case Study part four Use the examples of chapter 19 from Beurghs. Reading and doing chapter 11 Head First They will finish the Grid World Case Study. Resources: Head First chapter 11 Object Oriented Programming chapter 19 Grid World Case Study Unit 10 C9 Students will review their research papers from the first unit and discuss again the ethical and social implications of the computer/internet. Students will make conclusions and see if they changed opinions and find new issues about internet. (privacy, vulnerable websites, second life games) Extend the research paper with the new issues. Prepare for AP exam. activity Research on internet about social and ethical issues on computer use, especially the internet. Review: Practice multiple choice Practice free-response questions Review Grid world Case Study. Page 6 of 9 Correlation to AP Topic Outline: A. Object –Oriented Program Design A. Program design 1. Read and understand a problem description, purpose and goals. 2. Apply data abstraction and encapsulation. 3. Read and understand class specifications and relationships among the classes (“is-a”, “has-a” relationships) 4. Understand and implement a given class hierarchy. 5. Identify reusable components from existing code using classes and class libraries. B. Class design 1. Design and implement a class 2. Choose appropriate data representation and algorithms. 3. Apply functional decomposition 4. Extend a given class using inheritance II. Program Implementation A. Implementation techniques 1. Methodology a. Object-Oriented development b. Top-down development c. Encapsulation and information hiding d. Procedural abstraction B. Programming constructs I. Primitive data vs. objects II. Declaration a. Constant declaration b. Variable declaration c. Class declaration d. Interface declaration e. Method declaration f. Parameter declarations III. Console output (System.out.print/println) 4. Control a. Methods b. Sequential c. Conditional d. Iteration e. Understand and evaluate recursive methods. C. Java library classes Page 7 of 9 Unit 2 and 3 Unit 2 and 4 Unit 7 Unit 7 Unit 7 Unit 5 Unit 4 and 5 Unit 4 Unit 7 Unit 2 Unit 2 Unit 4 Unit 4 Unit 2 Unit 5 Unit 2 Unit 2 Unit 7 Unit 4 Unit 4 Unit 1 Unit 3 Unit 3 Unit 3 Unit 3 Unit 8 Unit 2 and 6 III. Program Analysis A. Testing 1. Test classes and libraries in isolation. 2. Identify boundary cases and generate appropriate test data. 3. Perform integration testing. B. Debugging 1. Categorize errors: compile-time, run-time, logic. 2. Identify and correct errors. 3. Employ techniques such as using a debugger, adding extra output statements, or hand-tracing code. C. Understand and modify existing code. D. Extend existing code using inheritance. E. Understand error handling 1. understand runtime exceptions. F. Reason about programs 1. Pre- and post conditions 2. assertions G. Analyses of algorithms 1. Informal comparisons of running times 2. Exact calculation of statement execution counts H. Numerical representations and limits I. Representations of numbers in different bases J. Limitations of finite representations (e.g. integer bounds, imprecision of floating-point representations, and roundoff error) IV. Standard Data Structures 1. Simple data types (int, Boolean, doubles) 2. Classes 3. One-dimensional arrays V. Standard Algorithms A. Operations on A level data structures previously listed 1. Traversals 2. Insertions 3. Deletions Unit 2 Unit 4 and 5 Unit 6 Unit 6 and 8 Unit 6 and 8 Unit 6 and 8 Page 8 of 9 Unit 4 and 5 Unit 5 Unit 5 Unit 9 Unit 9 Unit 9 Unit 4 and 5 and 7 Unit 7 Unit 9 Unit 4 and 5 Unit 4 and 5 Unit 3 and 6 Unit 3 and 6 Unit 3 and 6 Unit 3 and 6 Unit 2, 3 and 6 B. Searching 1. Sequential 2. Binary C. Sorting 1. Selection 2. Insertion 3. Mergesort VI. A. B. C. Unit 6 Unit 6 Unit 6 Unit 6 Unit 8 Computing in Context System reliability. Privacy. Legal issues and intellectual property. D. Social and ethical ramifications of computer use. Unit 1 an 9 Unit 1 an 9 Unit 1 an 9 Unit 1 an 9 Page 9 of 9