Pages

AP® Computer Science A (2017–2018)

this.URLhttp://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.
SignatureDate
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-0134076423

Those 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:

WeightComponent
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.

  1. The student must send an email to Mr. Spurgeon explaining what happened from the student's perspective.
  2. The student must print a copy of the email and have it signed by a parent or guardian.
  3. 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.
Notes:
  • 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:
  1. Be safe.
  2. Be kind.
  3. Show up.
  4. Have fun.
  5. Participate.
  6. Don't panic.
  7. Do your best.
  8. Communicate.
  9. Cite your sources.
  10. Don't procrastinate.
Seriously.

Assignments

This section will be updated frequently.

Wn: T−m Assignments Notes
HOME STRETCH: T−?
(5/29–end)
  1. Do Programming Assignment #16.
S: Sunday
M:
T:
W:
R:
F:
S:
W33: T−3
(4/22–4/28)
  1. Work on Programming Assignment #14. (NOTE the updates posted on 27 April!)
S: Sunday
M:
T:
W:
R:
F:
S:
W32: T−4
(4/15–4/21)
  1. Make sure you have submitted all of your work (hard copies and emails) for programming assignments 11, 12, and 13.
  2. (Re>read section 4.2 in your textbook (pp. 532-565) about sorting and searching.
  3. Do Programming Assignment #14. (NOTE the updates posted on 18 April!)
S: Sunday
M: Beginning of fourth quarter.
T:
W: Third quarter grades due.
R:
F:
S:
W31: T−5
(4/8–4/14)
  1. Note the updated due date, submission instructions and notes for Programming Assignment 13.
S: Sunday
M:
T:
W:
R: End of Third Quarter
F:
S:
W30: T−6
(4/1–4/7)
  1. Review (or read for the first time) pages 493-521 of your textbook.
  2. Work on programming assignment 13.
  3. Notice: The second (and last) exam of the quarter will be next week and will cover material up to and including section 4.1 of your text book.
S: Sunday
M:
T:
W:
R:
F:
S:
W29: T−7
(3/25–3/31)
  • Have a great spring break!
S: Sunday
M:
T:
W:
R:
F:
S:
W28: T−8
(3/18–3/24)
  • No new assignments. (Class time used to work on current programming assignment.)
S: Sunday
M:
T:
W:
R:
F:
S:
W27: T−9
(3/11–3/17)
  1. Read Section 4.2 (pp. 532-562) of your textbook.
  2. Begin working on Programming Assignment 12. Note the modified instructions updated on Friday, 16 March regarding the requirement to use “Version 2.1” of the provided program.
  3. Anyone who wants to attempt the programming exercise for Exam 9 again may do so on their own. Students who do so are expected to work alone and spend about 45 minutes on the exercise. Getting help from others during the exercise is not allowed. Using a computer is allowed. The final program to be graded must be hand-written and placed in the assignment in-box no later than Friday, 16 March at 3:30 pm.
S: Sunday
M: Exam 9 continuation and make-up opportunity
T:
W:
R:
F:
S:
W26: T−10
(3/4–3/10)
  1. Do Programming Assignment #11
  2. Next Exam: scheduled for this Friday, 9 March 2018
S: Sunday
M: Presidents' Day
T:
W:
R:
F:
S:
W25: T−11
(2/25–3/3)
  1. Do Programming Assignment #10
S: Sunday
M:
T:
W:
R:
F:
S:
W24: T−12
(2/18–2/24)
  1. Study Them Apples.
  2. Updated on Thursday: Due to weather-related schedule changes, the next exam will be next week. Questions will (still) be related to topics covered in recent reading assignments, the most recent programming assignment, and previous exams.
S: Sunday
M: Presidents' Day
T: W24.1 and W24.2 assigned. (Half-day schedule due to weather.)
W:
R:
F:
S:
W23: T−13
(2/11–2/17)
  1. Read pages 428-470 of your textbook.
  2. Use your textbook and the source code for the following programs to help you better understand object-oriented programming concepts including objects, interfaces, using the extends key word to extend interfaces and classes, the notions of superclasses and subclasses, the difference between subtyping and subclassing (as explained by the authors of your textbook), using the key words this, super, private, and protected, the notion of encapsulation, wide vs. narrow APIs, immutability, the final key word, reference types, overriding methods (e.g. .equals() and .toString()), and wrapper classes. You do not need to worry too much about lambda expressions (p. 450) or event-based programming (p. 451). Example programs:
  3. Finish Programming Assignment 9. (Pay close attention to the BibCity2 example.)
  4. Study for the next exam, which will be on Wednesday, 21 February. The format will be the same as previous exams. Questions will be related to topics covered in recent reading assignments, the most recent programming assignment, and previous exams.
S: Sunday
M:
T: W23.1-3 assigned.
W:
R:
F: Next exam announced.
S:
W22: T−14
(2/4–2/10)
  1. You've got a clean slate again. Make the most of it!
  2. Carefully compare your answers with the correct answers to the final exam. Ask questions if you don't understand the answers to any of the questions you missed. Be sure to read the commentary that accompanies the correct answers. On the next exam, you may be tested on anything that is mentioned in the answer key.
  3. Make sure you have read pages 329-428 in your textbook. (You should have done this already.)
  4. Read pages 493-521 of your textbook.
  5. Follow the instructions for Programming Assignment 9.
S: Sunday
M: W22.1-4 assigned.
T: WW22.5 assigned.
W:
R:
F:
S:
W21: T−15
(1/28–2/3)
  1. The hay should be in the barn by now. Relax and do your best!
S: Sunday
M:
T: AP Computer Science A Final Exam
W:
R:
F:
S:
W20: T−16
(1/21–1/27)
  1. Use the Semester 1 Final Exam Study Guide and the questions and answers from previous exams to help you study for your final exam, which is next Tuesday.
  2. Remember to turn in hard copies of your work for the final programming assignment on or before the due date.
S: Sunday
M:
T:
W:
R: Study Guide posted
F:
S:
W19: T−17
(1/14–1/20)
  1. Continue working on your final programming assignment of the semester.
  2. Continue to read pages 329-428 of your textbook.
  3. By the end of class on Friday, 19 Jan, turn in a hardcopy of the code you have written to date and one or more examples of the output your code produces. Late, missing, or low-quality submissions with result in a reduction of your class participation score, which is currently posted in PowerSchool.
    1. Make sure your program demonstrates good style: consistent/appropriate indentation, maximum line width (so code doesn't wrap when printed on 8.5"x11" paper), use of white space, well-chosen variable names, etc.
    2. If your program does not compile, describe the problem and your plan for resolving it.
    3. List any questions you have or other help needed.
    4. Turn in one stapled packet of pages, with your name written in the upper right hand corner of the first page, as usual.
S: Sunday
M:
T:
W: Assignments 1-3 posted.
R:
F:
S:
W18: T−18
(1/7–1/13)
  1. Begin working on Programming Assignment 8. You have this week and the next two weeks to complete the assignment.
  2. Being reading pages 329-428 in your textbook. You have this week and the next two weeks to complete the reading.
S: Sunday
M:
T:
W:
R:
F:
S:
W17: T−19
(12/31–1/6)
  1. IMPORTANT!: Review the addendum to the answer to question Q3. above in this syllabus.
S: Sunday
M: Happy New Year. (No school!)
T: Welcome back!
W:
R:
F:
S:
W16: T−20
(12/24–12/30)
  1. Relax. (Christmas break!)
S: Sunday
M: Merry Christmas!
T:
W:
R:
F:
S:
W15: T−21
(12/17–12/23)
  1. Relax. (Christmas break!)
S: Sunday
M:
T:
W:
R:
F:
S:
W14: T−22
(12/10–12/16)
  1. Continue reading Chapter Three of your textbook: read pages 329–372 (section 3.1).
  2. Give D.E.K. a break. Instead, watch the three Card Shark videos, including the one featuring Persi Diaconis; ponder the questions posed and use the code provided to search for answers.
  3. Study last week’s Knuth videos and the Exam #6 questions in preparation for Exam #7, which will be on Wednesday. The majority of the questions on the next exam will be similar to or exactly the same as questions that were on the last exam. New exam content may include questions about Math.random(), switch statements, and the Java keywords break and continue. The exam will contain two (2) multiple choice questions about last week's Knuth videos. The coding exercise will be closely related to the KnuthShuffle class from programming assignment #7.
S: Sunday
M:
T:
W:
R:
F:
S:
W13: T−23
(12/3–12/9)
  1. Begin reading Chapter Three of your textbook: read pages 329–372 (section 3.1). You can read this material at a fairly brisk pace this first time through. Don't try to memorize facts; rather, try to understand the overarching concept of object-oriented programming that the authors are introducing. Object-oriented programming (OOP) is a way of organizing and thinking about code that may seem confusing at first but will get easier with practice and exposure. Object-oriented programming techniques are stressed on the AP Computer Science A exam, so it is in your interest to put effort into this week's reading assignment; it is not something that many people will immediately comprehend very well.
  2. Watch and listen to D.E.K. talk about:
    1. Getting my PhD and the problem of symmetric block designs with lambda equals two
    2. Finding a solution to an open problem about projective planes
    3. Inception of The Art of Computer Programming
  3. Do Programming Assignment #7 (due Saturday, 9 Dec 17 at 11:59 pm).
  4. Study this week’s Knuth videos and the Exam #6 questions in preparation for Exam #7, which will be early next week. The majority of the questions on the next exam will be similar to or exactly the same as questions that were on the last exam. New exam content may include questions about Math.random(), switch statements, and the Java keywords break and continue. The exam will contain two (2) multiple choice questions about this week's Knuth videos. The coding exercise will be closely related to the KnuthShuffle class from programming assignment #7.
S: Sunday
M: Next reading assignment, programming assignment and exam announced.
T:
W:
R:
F:
S:
W12: T−24
(11/26–12/2)
  1. Watch and listen (do it this time) to D.E.K. talk about:
    1. Working for the Burroughs Corporation
    2. Burroughs Corporation
    3. My interest in context-free languages
  2. Do Programming Assignment #6 (due Saturday, 2 Dec 17 at 11:59 pm).
  3. Study this week’s Knuth videos and the Exam #5 questions in preparation for Exam #6.
S: Sunday
M:
T:
W:
R: Exam 6.
F: No school.
S:
W11: T−25
(11/19–11/25)
  1. Watch and listen to D.E.K. talk about (second chance):
    1. Working for the Burroughs Corporation
    2. Burroughs Corporation
    3. My interest in context-free languages
  2. Continue to review everything that you have read in your textbook so far, up to and including section 2.3. Concentrate on sections that seemed difficult at first, and look for details that you may have missed, even in the easier sections. The next exam (Exam 6) will be next week (not before Wednesday) and will be based on the previous exam (Exam 5) with special emphasis on this/last week's Knuth videos.
  3. Familiarize yourself with the Integral Clock posted at http://scribbledecobble.blogspot.com/2017/11/integral-clock.html.
  4. Complete Programming Assignment #5
S: Sunday
M: Exam 5
T: Reviewed a few exam questions and the programming exercises (Mass schedule.)
W: This week's assignments posted. (Half-day schedule.)
R: No school. (Thanksgiving.)
F: No school.
S:
W10: T−26
(11/12–11/18)
  1. Watch and listen to D.E.K. talk about:
    1. Working for the Burroughs Corporation
    2. Burroughs Corporation
    3. My interest in context-free languages
  2. Review everything that you have read in your textbook so far, up to and including section 2.3. Concentrate on sections that seemed difficult at first, and look for details that you may have missed, even in the easier sections. The next exam will be next week and will be based on this material.
  3. Familiarize yourself with the Java program posted at https://errless.blogspot.com/2017/11/integer-expressions.html. This code will be the basis for the next programming assignment, which will be due on Saturday, 25 November.
  4. Do Programming Assignment #5
S: Sunday
M: More practice writing loops and working with arrays in class.
T: Assigned W10.1, W10.2, and W10.3. (PM assembly schedule.)
W: W10.4 assigned.
R:
F:
S:
W9: T−27
(11/5–11/11)
  1. Watch and listen to D.E.K. talk about:
    1. Adding more features to RUNCIBLE
    2. Wanting to be a teacher and why I chose to go to Caltech
    3. Writing a compiler for the Burroughs Corporation
  2. Finish reading section 2.2 and read section 2.3 of your textbook.
S: Sunday
M: Returned and reviewed exam in class. Self evaluations.
T: Grading policy; scratch; Math.random; swapping first & last
W: Reading assignment; Swapping elements at i and j
R:
F: No school (Veterans Day).
S:
W8: T−28
(10/29–11/4)
  • (No assignments this week.)
S: Sunday
M: Reviewed for Exam #4 (in class).
T: Exam #4.
W: Retrospective. Extended Mass schedule.
R: Reviewed programming exercise from Exam #4. Mass Schedule
F: No School
S:
W7: T−29
(10/22–10/28)
  1. Continue to read your textbook.
    1. Begin reading chapter 2 by reading pp. 191–236 (2.1 and some of 2.2).
    2. Note that we are skipping sections 1.5 and 1.6. Those sections are optional.
  2. Watch and listen to D.E.K. talk about:
    1. Writing a tic-tac-toe program
    2. Learning about Symbolic Optimum Assembly programs
    3. The Internal Translator
  3. Do part 2 of Programming Assignment #4.
S: Sunday
M: W7.1, W7.2, and W7.3 assigned.
T:
W:
R:
F:
S:
W6: T−30
(10/15–10/21)
  1. Continue to read your textbook.
    1. Read section 1.4 (pp. 90–115) — again.
    2. Read the Q&As on pages 116–119 — again.
  2. Watch and listen to D.E.K. talk about:
    1. My interest in graphs and my first experience of a computer
    2. How I got interested in programming
    3. Learning how to program on the IBM 650
  3. Begin working on Shoestring Math, Exercise 1. This exercise will be the basis for the first part of a two-part programming assignment. Part 1 of the programming assignment will be due on Saturday, 21 October 2017. Part 2 will be due on Saturday, 28 October 2017.
  4. Do part 1 of Programming Assignment #4.
  5. Review the instructions for Programming Assignment #4. The assignment hasn't changed, but some things that have been said in class are now in writing.
S: Sunday
M: AM Assembly / Fire Drill. W6.1, W6.2, and W6.3 assigned.
T: W6.4 assigned.
W:
R:
F: W6.5 assigned. Mr. Spurgeon was in lab after school with students until 5 pm.
S: Mr. Spurgeon was in lab with students from 3:30–7:00 pm.
W5: T−31
(10/08–10/14)
  1. Continue to read your textbook.
    1. Read section 1.4 (pp. 90–115). This section covers arrays, which we have been working with for a while in the form of the parameter of a program’s main method.
    2. Read the Q&As on pages 116–119.
  2. Watch and listen to D.E.K. talk about:
    1. Taking graduate classes at Case
    2. Physics, welding, astronomy and mathematics
    3. My maths teacher at Case and a difficult problem
  3. Do Programming assignment #3, which is due on 14 October 2017. (Because of the short school week, this assignment is related to but different from the assignment that you may have been led to believe you would be working on this week based on last week’s assignments.)
S: Sunday - VCHS Open House
M: W5.1, W5.2, W5.3 assigned. Exam #3.
T:
W: No school - PT conferences.
R: No school - PT conferences.
F: No school - In service day.
S:
W4: T−32
(10/01–10/07)
  1. Continue to read your textbook.
    1. Read section 1.3 (pp. 50–77) — again, or for the first time if you haven’t read it already. This section introduces you to conditionals and loops, both of which are very important.
    2. Read the Q&As on pages 78–80 — again.
  2. Watch and listen to D.E.K. talk about:
    1. Meeting my wife Jill
    2. Bible study at university and a time of personal challenge
    3. Extra-curricular activities at Case
  3. Begin working on the exercises for the MESS Simple Simon Programming assignment #3 will be due on 14 October 2017 (a week from this coming Saturday) and will involve this MESS and the associated exercises.
  4. BE AWARE: “Exams” shall may henceforth be called quESTS, quEST being the portmanteau formed by blending the words quIZZ and tEST.
  5. BE AWARE: quEST #3 (which would formerly have been known as Exam #3) is scheduled for Monday, 9 October 2017 and will cover material from sections 1.1 - 1.3 of your textbook, with emphasis on topics covered in the latter part of that range. Questions about the Knuth videos that you should be watching will be included, as usual. The format of the quEST will follow the now well established convention of 15 multiple choice questions and a coding exercise.
  6. Do the Tick Tock Clock exercise.
  7. BE AWARE: Know the difference between applying the == operator and the .equals method to values of type String. We want to understand this material now, because we want to compare the values of strings in programs we write and we need to know how to do so appropriately. Note the String API documentation presented on pages 332 and 1140 of your textbook.
S:Sunday
M:W4.1, W4.2, W4.3 assigned. Started looking at Simple Simoncode.
T: Added W4.4 and W4.5. Exams 1 and 2 are graded; answers and results are posted. Practiced loops in class. Mrs. Brown observed.
W:Sophomore retreat. Practice with loops. Discussion of == and .equals for strings.
R:More practice with loops and discussion of == and .equals for strings.
F:Tick Tock Clock exercise (4.6).
S:
W3: T−33
(9/24–9/30)
  1. Continue to read your textbook.
    1. Read section 1.3 (pp. 50–77). This section introduces you to conditionals and loops, both of which are very important.
    2. Read the Q&As on pages 78–80.
  2. Watch and listen to D.E.K. talk about:
    1. Why I chose to go to Case Institute of Technology
    2. University life: my basketball management system
    3. University life: the fraternity system
  3. Continue to study for your second exam — see last week’s assignments — or begin studying if you have not yet started.
  4. Do Programming Assignment #2.
  5. BE AWARE: A “Study Guides” section has been added to the K(arma) page, and a link to a study guide for Chapter 1 of your textbook is listed there. The study guide for Chapter 1 is a work-in-progress, so look for updates in the future if you find it helpful. Study guides should not be used instead of reading your textbook; rather, they should help reinforce material covered by the book and will occasionally provide information not found in the book.
S:Sunday
M:W3.1, W3.2, W3.3, W3.4 assigned
T:W3.5 added; work/QA day
W:work/QA day (class mtg schedule)
R:Exam #2
F:No School
S:P.A. #2 due at 11:59 PM PST; Mr. Spurgeon was at school with students from 3:30pm–5:30pm
W2: T−34
(9/17–9/23)
  1. Continue to read your textbook.
    1. Read section 1.2 (pp. 14–36) again. There is a lot of material in section 1.2. You need to study it carefully.
    2. Read the Q&As on pages 37–43 again.
  2. Watch and listen to D.E.K. talk about:
    1. My sense of humor
    2. The Potrzebie System of Weights and Measures
    3. Feeling the need to prove myself
  3. Study for your first exam, now scheduled for Tuesday, 19 Sep 2017. Unless other arrangements have already been made, you will have 30 minutes to complete the exam. The exam will mainly cover material presented in section 1.1 of your textbook; however, any topic that has been covered in class or by any assignment (including assigned Web of Stories videos as well as core information from section 1.2) is fair game for the exam.
  4. Do Programming Assignment #1.
  5. BE AWARE: Your second exam will be next Thursday (28 Sep 2017). If you know you will not be in class on that day, make plans ahead of time to take the exam at an alternate time.
    • The exam will focus primarily on the material covered in section 1.2 of your textbook, which you should have read at least once and hopefully twice by now.
    • The exam will also include questions from the Knuth videos you have been instructed to watch, especially the videos that were assigned this week.
    • The exam will also include some questions about material that was covered on the first exam, so make sure you understand all of the answers to the questions on the first exam.
  6. BE AWARE: Next week we will review material from section 1.2 in class prior to the exam.
    • The pace of this review will be fairly brisk.
    • You should have learned much of what you should know by now from the reading you should have done by now.
    • The review we do in class next week will reinforce what you will (hopefully) have already learned by then; questions you ask will be answered in class; material germane to the second exam will be highlighted.
  7. BE AWARE: Your second programming assignment will be revealed on Monday (25 Sep 2017).
    • There are rewards for turning all of your programming assignments in on time.
    • There are consequences to falling behind. (Work piles up.)
    • Don’t fall behind.
S:Sunday
M:W2.1, W2.2, W2.3, W2.4 assigned
T:Exam #1
W:Exam review; help with programming assignment
R:Quine demo → help with programming assignment
F:Added W2.5, W2.6, W2.7
S:P.A. #1 due at 11:59 PM PST (Mr. Spurgeon was at school from 3:30-5pm)
W1: T−35
(9/10–9/16)
  1. Continue to read your textbook.
    1. Read section 1.2 (pp. 14–36).
    2. Read the Q&As on pages 37–43.
  2. Watch and listen to D.E.K. talk about:
    1. My parents’ finances
    2. Interests in high school
    3. Being a nerd of nerds at high school
  3. Read the new Litanies of Programming Style page as it stands now and again and again in the future, as it is very important and will expand over time.
  4. Do Draw me a ... → Exercises 1-3.
S:Sunday
M:W1.1, W1.2 assigned
T:Brief intro. to JDK/javac/java
W:JDK/javac/java practice
R:Added W1.3.; TAOCP arrived at VCHS library!
F:Added W1.4 (preview of first programming assignment)
S:
W0: T−36
(9/3–9/9)
  1. Get the textbook if you don’t already have it.

    Note:

    • This is assignment number W0.1.
    • All assignments will be identified in a similar way.

  2. Verify your understanding of the word peruse; then peruse this blog, especially page P.
  3. Make sure you thoroughly understand the contents of this document; then:
    1. Alert the author to errors if you find any.
    2. Ask questions if you have any.
    3. Make suggestions if you have any.
    4. On a hard-copy of this document:
      1. Write your initials next to the answer to question Q3 above.
      2. Sign and date the document in the space provided in the Acknowledgment section.
    5. Have a parent or guardian do parts i and ii of the previous step too.
    6. Return the page(s) containing signatures and initials to Mr. Spurgeon.
  4. Watch and listen to D.E.K. talk about:
    1. Family History
    2. Learning to read and school
    3. My mother
  5. Do exercises 0–4 of the MESS Baby Steps (Java).
  6. Begin to read your textbook, unless you have already begun to read it.
    1. Read the front matter (pp. i–xix).
    2. Read section 1.1 (pp. 1–8).
    3. Read the Q&As on pages 9–11.
S:Sunday
M:Labor Day
T:First day of school
W:
R:Added assignment W0.5.
F: Added assignment W0.6.
Extended Mass ⇒
33 min. period.
S: