AP Computer Science 2009-10 Instructor
Byron Philhour - http://www.siprep.org/faculty/bphilhour
ContactPlease use the AP Computer Science Public Folder on your Microsoft Outlook WebAccess e-mail program for programming questions. For administrative or personal questions, please e-mail your instructor from your SI e-mail account.
Your instructor is available after class in the Beta Lab on Wednesdays (or whenever 2nd period ends the day); otherwise by drop-in or appointment before or after school (not at lunch)
SynopsisComputer science is the study of information processing and algorithm
design in the context of computer programming. In this course, students
learn to write programs in the Java programming language then use Java
to solve a variety of computational problems with algorithms of their
own design. Units of study include program design, control structures,
data structures, object-oriented programming, inheritance, abstraction,
collections, recursion, and standard algorithms. Projects vary each
year but may include text-based and graphics-based game programming,
interactive web development, and database design and maintenance.
Students are required to take the Advanced Placement test AP Computer
Science A administered in May.
Resources
Required
Very Strongly Recommended-
Regular access to a computer (Mac or PC) with internet access at home; alternatively, ample time before and after school to use the on-campus computers
Outline of Course
1st quarter: computer fundamentals, first Java programs, Java syntax, errors, control statements (if, for, while), graphical user interfaces (GUI), arrays
2nd quarter: classes & objects in detail, Java programming, Gridworld case study (first half)
3rd quarter: advanced programming concepts (recursion, searching, sorting), Gridworld case study (second half)
4th quarter: AP exam preparation, further study of object-oriented programming languages (Inform, Visual Python, ...)
Expectations
As a student, you are expected to ...
- Check
the course weblog and online public folder routinely for announcements, to read
the schedule of the day's activities in advance, and to find your
homework assignment on your own.
- Check the course weblog upon entering class for the agenda for the day; immediately begin working on any posted warmup problems
- Write up corrections for all missed problems on quizzes and exams.
- Go easy on yourself and others: be kind, patient, and helpful.
- Be
respectful, careful, and considerate of our classroom and
resources, particularly the computers and software, other technical
equipment, books, and desks.
- Preserve the integrity of the grading system - put forth your best effort and don't represent the work of others as your own. Be sure you understand what behavior constitutes plagiarism.
- Be
honest with the material, yourself, and your instructor. (Don't take
shortcuts to avoid understanding and don't fake understanding. Don't be
embarrassed to admit you don't know or to admit that you're stuck, no
matter how stuck you are.)
- Be creative, take risks,
and ask questions.
Learning Differences
For students with learning differences, we will work with
your counselor to ensure that you have access to all approved
accommodations. Do not hesitate to remind your teacher about these.
Computer Use During Class
Students are expected to be on-task during each of the scant 200 instructional minutes per week we share as a class. It only makes sense for this class to take place in a room equipped with computers. However, this can present some problems: it can be very tempting when sitting at a computer to consider IMing, e-mailing, using Facebook, playing games, or looking at various websites unrelated to the course. Some of the consequences of doing these things are as follows:
- you might not learn computer science well enough to earn high grades and a good AP score without sufficient practice
- you might not learn an important concept or skill because you are distracted by something
- even if you are following everything very well and are caught up, you might cause those students around you who do need to focus to slack off
- if the instructor or a student is lecturing or walking us through a tutorial, you might hurt their feelings or cause them frustration in not paying attention
- you might be given detention, which is a waste of everyone's time
As anybody who has done public speaking can tell you, the speaker is acutely aware of who is and who isn't paying attention. The instructor (and common sense) will make it abundantly clear when students should (a) not touch their computers at all; (b) use their computers to follow along closely to a tutorial; (c) use their computers to work individually on class-related projects; or (d) use their computers as they like (for classwork or for unrelated personal activities). Situation (d) will be very rare, but may arise when compatible with excellent class-wide attention to the tasks at hand and a fruitful learning environment. If any event, there will always be more than enough course-related things to do to fill the 200 minutes and beyond.
Fundamental Ideas- Computer programming
is largely concerned with the analysis and manipulation of data sets
through the use of computational algorithms. There is an infinite
variety of data and algorithms.
- Computer Science (CS) as an academic
discipline is much more than just the use of computers; it is more
closely related to philosophy and symbolic logic. CS reveals things
about the world that have nothing to do with computers or machines.
- There
are thousands of programming languages out there; studying the
differences between them can lead to key insights into the nature of
CS.
- Ultimately, all "high-level" programming languages are translated into the native machine language of your particular computer.
- A well-designed
program, carefully thought-out in advance, will be easier to code,
demonstrate fewer bugs, and require less maintenance in the future.
Well-written code is efficient, easy for a future user to understand,
and re-usable.
- The Java programming language
is widely used at this point in history due to its particular
combination of simplicity (particularly involving memory management),
security, and broad compatibility.
- Computer
scientists have a unique set of ethical responsibilities in regards to
intellectual property, privacy, and other legal and social concerns
related to information technology.
Signatures
"I have read and understood the content of this syllabus. I understand that a copy of this syllabus can be found online."
Student: _________________________________________________________________________________________
Student printed name: _____________________________________________________________________________
Parent: __________________________________________________________________________________________
Parent e-mail: ____________________________________________________________________________________
Please add your comments, questions, or concerns below.