this.URL ← http://scribbledecobble.blogspot.com/p/ap-computer-science-2017-2018.html
<a href ← this.URL> ∈ http://scribbledecobble.blogspot.com/p/a.html
About
“Understand core aspects of computer science which you can use to create solutions that are understandable, adaptable, and when appropriate, reusable.”
This course is mainly about introducing students to the art of computer programming. But alert students will notice that there is much more to computer science than just coding. In this course:
- Students will begin to learn to code. Students will be introduced to algorithms and information structures, programming paradigms, and basic features of Java (and JavaScript for comparison sake) including primitive and composite data types, control flow, conditionals, loops, arrays, and functions.
- Students will begin to learn about the importance of developing programs that are not only correct and well-suited to the people and problems for which they are designed but are also tailored to the needs of programmers who have to read, understand and modify them.
- Students will be introduced to the underpinnings of computer programming. Some important aspects of computer architecture and the theory of computing will be touched upon.
- Students will catch inspiring glimpses of where computer science has come from, where it’s at, and where it’s headed. Students will learn about historical figures, accomplishments, events, challenges and opportunities in the field of computer science and in fields affected by or closely related to computing.
More of what the College Board says about AP® Computer Science A is at:
https://apstudent.collegeboard.org/apcourse/ap-computer-science-a
Acknowledgment
☐ I am aware of this document and its location on the internet (see above).
☐ I am aware of the answers to the questions listed in the Answers section below.
☐ I have written my initials next to the answer to question Q3 below.
Signature | Date | Student: |
---|---|---|
Parent or Guardian: |
Answers
Q0. Who are you?
That’s packing a lot into three three-letter words and a terminal punctuation mark, to say nothing of the question number! I'm tempted to parody a childish rhetorical assertion I grew up with and reply, “I know I am, but who are you?” Alas, I’m often reminded that I’ve been coerced into that type of pedestrian known as an adult, so I better not.I’m the all-powerful instructor for this course. My full name is John Paul Spurgeon. You might catch me occasionally refering to myself as Just Only John (or just JOJ) out of nostalgia for my much younger years and one of my favorite books of all time. Feel free to call me Mr. Spurgeon, if that’s what you feel most comfortable saying. Or just John or even Johnny if you like. Just don’t call me late for dinner.
Q1. Pleasure to meet’cha, JOJ. So what’s the required textbook for this course?
Computer Science: An Interdisciplinary Approach
by Robert Sedgewick and Kevin Wayne
ISBN-13: 978-0134076423Those who want the real thing in computer science and need to know the basics of Java will find both in Computer Science: An Interdisciplinary Approach. It’s a good book. My advice to the gentle reader is, “Try it. You might like it.” (If you do, then try the the belle-lettres of Knuth too!)
Q2. Most important of all, how will our grades be computed?
I knew you were going to ask that question. Quarter and semester grades will be a function of three components that will be weighted as follows:
Weight Component 55% Programming assignments 35% Exams 10% Participation Information about each component will be provided in answers to future questions. (I’m psychic.)
Q3. Can students in this course give help to or get help from others?
Collaboration is encouraged, but—brace yourself—when working on programming assignments:
- Don't share your code with others.
- Write your own code.
- Cite collaboration.
Penalties for Cheating on Programming Assignments
For programming assignments, do not submit any source code that anyone else wrote, not even a single line of code. If you do, the penalties for being caught shall be as follows, with one exception.
- The first time a student is caught cheating, the student will receive a zero for the assignment and a zero for their class participation score for the current quarter.
- Repeat offenders will receive a failing grade for the semester.
The only exception to the penalties described above is this: if you turn in source code that someone else wrote and clearly give that person credit for their work in the form of a citation that is included as part of your assignment submission, then you will only receive a zero for the assignment; no other penalties will apply.
Penalties for Enabling Cheating on Programming Assignments
Students who enable cheating, either by not keeping source code for their programming assignments secure or by willingly making their source code available to others will be penalized as follows.
- Students caught giving their source code to others will receive a zero for their class participation score for the quarter the first time they are caught. Students who do so repeatedly will have their semester grade reduced by one letter grade for each repeat offence.
- Students who fail to keep their source code secure may be penalized in the form of a reduced class participation score that will depend on the perceived degree of negligence.
Addendum (added on 3 January 2018):
The penalties described above shall be the maximum penalties imposed. When Mr. Spurgeon has reason to believe, beyond a reasonable doubt, that a student has cheated or enabled another student to cheat on a programming assignment, the student's scores in PowerSchool will be updated accordingly. Prior to the end of the grading period, penalties might be reduced if the following procedure is followed.
Notes:
- The student must send an email to Mr. Spurgeon explaining what happened from the student's perspective.
- The student must print a copy of the email and have it signed by a parent or guardian.
- The student must submit the hard copy of the signed email to Mr. Spurgeon and meet with him to discuss what happened. At that point only—not before that point and not after the end of the term—the penalties might be reduced depending on the nature of the situation.
- It is the student's responsibility to initiate the process described above.
- Students who voluntarily alert Mr. Spurgeon to the fact that they have cheated or enabled another student to cheat and do so prior to grades being posted in PowerSchool will be treated more leniently than students who wait to do so until after grades have been posted. The requirement to submit a parent or guardian signature to receive points back will be waived, for example.
- Punishment is not the objective is this policy against cheating. The intent is to encourage all students to attempt to do as much of the programming assignments on their own as possible. Programming is not a subject that is easy to learn simply by reading about it. Programming is learned by doing it. Students who do not make an attempt to complete programming assignments on their own and try to cover up the fact by turning in someone else's work are really just cheating themselves out of the opportunity to learn a valuable and potentially very enjoyable skill. Unfortunately, there must be penalties and they must be enforced in order for a policy such as this one to serve its purpose: deterrence. The main objective of this policy is to deter students from cheating themselves and to deter students from enabling this unfortunately wide-spread form of self-harm. The policy also provides students who may be approached by their classmates with a good reason to refuse to share their code, since doing so would put their own grade at considerable risk.
Q4. You got my attention. So how will programming assignments be graded?
Good. Programming assignments will receive marks and corresponding percent scores as explained in the following table, which is based on a system that has been used at Standford University and is also described about 23 minutes into a recording of the first lecture of an instance of Stanford’s CS106A course. Percentages augment the system used at Stanford.
Mark Percent Description + + 104 Outrageous; exceeds requirements of the assignment by a long shot; a program that makes you weep in a good way; the type of thing that gets you remembered; if you get a ++ and want a letter of recommendation, just ask; awesome. + 100 Aw, nice job; hearty pat on the back. ✓ + 95 Solid; you did a great job; you got everything right; things look good: nice style, nice software engineering; and the program works flawlessly. ✓ 89 A pretty solid program; it meets all the requirements; maybe it's got a little problem here or there. ✓ - 82 There are some significant problems with your program. - 74 Bad times; there are more significant problems; maybe the style is really bad. - - 65 The program is just a shell; there wasn't much effort put into it. This assignment also makes you weep, but not in a good way. Aw, man. What did I teach? Where did I go wrong? 0 0 Reserved to distinguish from “made really bad effort” to “made no effort at all”.
Q5. What happens if I turn in a programming assignment after the due date?
Each student will be granted three (3) two-day programming assignment extensions each semester. (Unused extensions do not roll-over from one semester to the next.) Think of these extensions as being analogous to a time-out in a football or basketball game. They’re yours to use whenever you want. But when they’re gone they’re gone, so use them wisely, if at all. Students who do not use any of their extensions will be rewarded for consistently being on time.
The plan is for each programming assignment to be due by 11:59 pm on a Saturday. Any work submitted for grading after that time but before 11:59 pm the following Monday, for example, will not receive a grading penalty but will consume one extension, assuming the student has unused extensions available.
After all of a student’s extensions have been used, late work will be penalized one “grade/mark” level (see the table above) for every two calendar days the assignment is late. The score for any programming assignment that is more than six days late will be a zero, regardless of how many unused extensions a student has at that time. (Extensions will not be consumed if an assignment is more than six days late; a score of zero for the assignment is the only penalty in that case.) Extraordinary unforeseeable circumstances (e.g. severe illness or injury, God forbid) are the only potential exceptions to this policy that the instructor can imagine.
Q6. What about the exams?
The number and dates of exams is to be determined. This document will be updated with that information as it becomes available.
Exams may be a mixture of multiple choice and short answer questions. Every exam will require students to write some source code under conditions that are similar to those that students who opt to take the AP® Computer Science A exam should expect to face.
Whether exam scores are curved will be determined on a case-by-case basis after each exam has been administered.
Q7. How will participation scores be determined?
Students will be given numerous opportunities throughout the year to demonstrate participation in a variety of ways. Some of these ways include:
- Attending class and engaging in productive conversations.
- Attending class and not being disruptive.
- Turning in assignments in addition to the graded programming assignments.
- Consistently being on time.
- Alerting Mr. Spurgeon to mistakes on this blog.
At the end of each quarter, each student’s participation will be pseudo-subjectively evaluated by the instructor. Students will be awarded a participation mark (✓, ✓+, etc.) and corresponding percent score that is analogous to the marks and corresponding percentages used to grade programming assignments.
After participation marks have been awarded, the participation percent score for any student who submitted all of that quarter’s programming assignments on time will be increased by two percent.
Q8. Will there be other assignments besides the programming assignments?
Yes, there will be assignments in addition to the programming assignments, but they will not be graded individually. You are strongly encouraged to do the assignments, since they will help prepare you for the exams and will affect your participation score. More information about the relationship between assignments and participation scores will be provided in class.
Q9. Where do I go to find information about assignments?
The Assignments section (of this document) is the system of record for all assignments, including programming assignments. Some assignments may be described by separate documents; in such cases, detailed assignment documents will be referred to in the Assignment section below.Information published via PowerSchool may lag behind information published in this document.
Q10. You don't seem terribly straight-laced. How do you expect us to behave in class?
Excellent observation and question! I gave you some gold stars. (Told you I was psychic.) Here’s the deal:Seriously.
- Be safe.
- Be kind.
- Show up.
- Have fun.
- Participate.
- Don't panic.
- Do your best.
- Communicate.
- Cite your sources.
- Don't procrastinate.
Assignments
This section will be updated frequently.
Wn: T−m | Assignments | Notes | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HOME STRETCH: T−? (5/29–end) |
|
|||||||||||||||
W33: T−3 (4/22–4/28) |
|
|
||||||||||||||
W32: T−4 (4/15–4/21) |
|
|
||||||||||||||
W31: T−5 (4/8–4/14) |
|
|
||||||||||||||
W30: T−6 (4/1–4/7) |
|
|
||||||||||||||
W29: T−7 (3/25–3/31) |
|
|
||||||||||||||
W28: T−8 (3/18–3/24) |
|
|
||||||||||||||
W27: T−9 (3/11–3/17) |
|
|
||||||||||||||
W26: T−10 (3/4–3/10) |
|
|
||||||||||||||
W25: T−11 (2/25–3/3) |
|
|||||||||||||||
W24: T−12 (2/18–2/24) |
|
|
||||||||||||||
W23: T−13 (2/11–2/17) |
|
|
||||||||||||||
W22: T−14 (2/4–2/10) |
|
|
||||||||||||||
W21: T−15 (1/28–2/3) |
|
|
||||||||||||||
W20: T−16 (1/21–1/27) |
|
|
||||||||||||||
W19: T−17 (1/14–1/20) |
|
|
||||||||||||||
W18: T−18 (1/7–1/13) |
|
|
||||||||||||||
W17: T−19 (12/31–1/6) |
|
|
||||||||||||||
W16: T−20 (12/24–12/30) |
|
|
||||||||||||||
W15: T−21 (12/17–12/23) |
|
|
||||||||||||||
W14: T−22 (12/10–12/16) |
|
|
||||||||||||||
W13: T−23 (12/3–12/9) |
|
|
||||||||||||||
W12: T−24 (11/26–12/2) |
|
|
||||||||||||||
W11: T−25 (11/19–11/25) |
|
|
||||||||||||||
W10: T−26 (11/12–11/18) |
|
|
||||||||||||||
W9: T−27 (11/5–11/11) |
|
|
||||||||||||||
W8: T−28 (10/29–11/4) |
|
|
||||||||||||||
W7: T−29 (10/22–10/28) |
|
|
||||||||||||||
W6: T−30 (10/15–10/21) |
|
|
||||||||||||||
W5: T−31 (10/08–10/14) |
|
|
||||||||||||||
W4: T−32 (10/01–10/07) |
|
|
||||||||||||||
W3: T−33 (9/24–9/30) |
|
|
||||||||||||||
W2: T−34 (9/17–9/23) |
|
|
||||||||||||||
W1: T−35 (9/10–9/16) |
|
|
||||||||||||||
W0: T−36 (9/3–9/9) |
|
|