Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
AP Computer Science A Syllabus
Prerequisites
Students must have already taken the Introduction to Computer Science course and 
received a B+ or higher in order to be permitted to enroll in this course. 
Course Overview
Having already taken the Introduction course, students know about data representation 
and basic programming structures in Scratch and JavaScript. This course introduces 
students to the Java programming language, the object oriented paradigm and the 
structure of larger and more complex systems. The Karel J Robot text and related 
activities will provide students with a foundation in the object oriented mindset for 
solving problems. There will be a minimum of 20 hours of instructional time spent on 
labs involving weekly hands-on in-class activities including the Elevens lab. The course 
will utilize pair programming and peer reviews to encourage reflection and emphasize 
the importance of writing understandable code. Skills that will be emphasized 
throughout the course include: problem solving, algorithm development, efficiency 
analysis, testing, debugging, commenting, and creating maintainable code. 
Texts
• Bergin, Joseph. Karel J Robot: A Gentle Introduction to the Art of Object-oriented
Programming in Java. S.l.: Dream Songs, 2005.
• Litvin, Maria. Be Prepared for the AP Computer Science Exam in Java. Andover, 
MA: Skylight, 2014.
Unit 1: Objects
Topics to be covered
• Creating and using objects
• Inheritance
• Methods
• Polymorphism
• Instance variables
• Encapsulation
Objectives
• Instantiate UrRobot objects and use method calls to accomplish specific 
challenges
• Create robot classes with additional methods to extend the functionality of the 
UrRobot class
• Override methods in the UrRobot class to provide different functionality
AP Computer Science A Syllabus
• Add instance variables (with accessor and mutator methods) to the UrRobot 
subclass to track robot state
Activities / Labs
• Karel J Robot programs
◦ H-bot: efficiently arrange beepers a particular way
◦ Harvester, DiamondHarvester, StairClimber, StairSweeper, SquareBot: inherit
from base class and add methods to extend functionality
◦ MileMover, TwoPileHBot, LongStairClimber, LongStairSweeper: override 
methods in parent class, use polymorphism to change behaviors without code
repetition
◦ CrazyPolyBot: make sense of the method call resolution in a muddled 
polymorphic situation and adjust it to accomplish a task
Unit 2: Flow control
Topics to be covered
• Boolean logic
• Conditionals
• Loops
• Parameters
• Return values
• Recursion
Objectives
• Evaluate boolean expressions
• Simplify boolean expressions
• Create robots which can react to input about the world around them
• Trace the flow of a program involving conditionals and loops and track the 
program state as it executes
• Evaluate expressions that involve methods that return a value
• Create a recursive solution for a given problem
• Evaluate whether a recursive solution makes sense for a particular problem 
situation
•
Activities / Labs
• Karel J Robot programs
◦ TwoBeeperFinder, BreadcrumbFollower, HoleyHarvester, BeeperFinder, 
HurdleRacer, BigHurdleRacer: use conditionals to create robots that respond 
to the world around them
◦ DrunkenWalker: simulate a probabalistic deviation from a path using loops 
and random numbers
1
AP Computer Science A Syllabus
◦ MultiplierBot, DecoderBot: use loops and the Java Math class to convert 
beepers representing a binary number into a base 10 number which 
represents an ASCII value
◦ InfiniteBeepers: use loops and conditions to solve a problem involving an 
infinite number of beepers to pick up
◦ DistanceToBeeper, PileCounter, ColumnCounter, CarpeterBot: use recursion 
to solve a robot challenge
Unit 3: Interfaces
Topics to be covered
• Interfaces
• Abstract classes
• Polymorphism
Objectives
• Implement a given interface
• Design abstract classes and interfaces and create subclasses that implement 
them
• Predict the effect of calling a method on an object depending on its type and cast
Activities / Labs
• Karel J Robot challenges
◦ BeeperLayer, SpiralBot, BounceBot, PatternMover: analyze a robot program 
that uses interfaces and abstract classes to get a robot to switch movement 
strategies
Unit 4: Collections
Topics to be covered
• 1D arrays
• 2D arrays
• ArrayList
• List
• Using polymorphism
• Survey of other data structures
Objectives
• Modify, access, and traverse elements of an array or data structure
• Understand efficiency consequences associated with using certain data 
structures
2
AP Computer Science A Syllabus
Activities / Labs
• Image inspection and manipulation: use getPixels to get a 1D array of all the 
pixels in an image and create a method to return a 2-dimensional array of Pixel 
objects
• Create an ArrayList implementation and use it along with the Java String class 
methods to analyze an English lexicon and specific works of literature
• Demonstrate how to use the java.util version of ArrayList and re-implement 
programs with it
• Comparison of space and run-times using different data structures
Unit 5: Class relationships and hierarchy design
Topics to be covered
• Composition vs inheritance
• Implementation techniques
• Testing
• GUIs
Objectives
• Understand different relationships between objects
• Design a hierarchy of classes with different relationships in a larger context
• Review and practice other topics already covered
Activities / Labs
• Elevens lab
Unit 6: Searching and Sorting
Topics to be covered
• Sequential search 
• Binary search
• Selection sort
• Insertion sort
• Merge sort
Objectives
• Devise and implement own search and sort algorithms
• Understand and be able to trace execution of the code for the reference 
implementation of the standard search and sort algorithms given a data set and 
compare efficiency for different scenarios.
3
AP Computer Science A Syllabus
Activities / Labs
• Discuss strategies for finding words in a dictionary by hand and writing a program
to do it
• Discuss strategies for sorting a deck of cards and applying this to the Elevens lab
Unit 7: Review
Topics to be covered
• Review of all topics as needed
Objectives
• Identify and rectify holes in the students understanding of key concepts
• Ensure students are familiar with the types of questions on the AP Exam
• Practice problems to review material and increase confidence
Activities / Labs
• Practice problems and exam tips from Litvin (2014)
• Practice exams 
Unit 8: Ethical and Social issues
Topics to be covered
• Intellectual property
• Responsibility for errors and omissions
• Software licensing options
• Overview of software engineering
Objectives
• Understand the importance of intellectual property but how and why some people
/ corporations relinquish some of their property rights by making their source 
code available under different licenses
• Understand the ramifications of and legal responsibility for malicious or badly 
written code
• Know about software engineering practices which attempt to mitigate some of the
risk of poor programming practice and facilitate coordination amongst members 
of a team
Activities / Labs
• Paper or presentation arguing for or against on of the positions related to 
computer ethics that were presented in class
4