compSci (original) (raw)
Comp Sci at Stuyvesant with D. Holmes
advice and rules for more success with less work
moving on
Working with students and teachers at Stuyvesant High School has been an honor, a privilege, and an enormous pleasure. You people taught me about learning and laughter and life. Your examples, expectations, thinking, gratitude, and considerable feedback rewarded me for working harder than anyone did in the programming jobs that previously made me happy.
But "The Road goes ever on and on", and the stretch I'm on now is paved with intentions to address familial obligations that I've neglected for 10 years, and, more selfishly, resuscitate memories of exercise andtrumpet-playing.
The past tense above is deceptive, since people have been treating me to email with their news and opinions. Email tomr
will continue to reach me. These communications are so valuable that I commonly postpone reading them until I think I've earned that pleasure. (Hey, you knew I was weird before you read this far.)
Hail and farewell, as ever.
Content | |
---|---|
notes | notes by Holmes to augment some lessons, starting with a syllabus |
hw | Check for a new homework assignment after 4 p.m. on every class day. |
Piazza | Piazza forum, for communicating among students and instructor(s) How to succeed with Piazza, especially for issues with homework |
hw server | for submitting homework answers. See these FAQs. |
Zoom | steps for joining a remote session when Stuy closes |
Table of contents
- homework teaches success
- how else to succeed
- recommendation: work with a classmate
- keep up when you miss a lesson
- good students seek help
- class and community participation
- learn from your errors
- notes help, if used well
- how to read
- how to write
- how to study for a test in a problem-solving course
- taking tests
* rules for taking tests
* extra credit: points for perspicuity
- Holmes's schedule
- email helps communication
- classroom routines
- absence
- etiquette
- grades
- miscellany
homework teaches success
Students succeed in this course by understanding the homework. You are unlikely to learn new material at the pace of this course merely by attending class, even if that worked in middle school. Whether you judge success by mastery of the course material, or judge success by grades, understanding the homework is required. To acquire that understanding, you must practice the thinking, look for patterns, find your errors, and revise erroneous attempts. Homework exercises all of those necessities.
Homework requires 20–30 minutes per day for a typical student in an introductory course. It commonly takes less for a student with experience in programming, but more for a student who is struggling or catching up.
There are six key elements to doing homework completely and correctly. These apply to many courses in high school and college:
- Struggle solowith a problem. When confronted by something they don't understand, beginning programmers should struggle on their own for at least 10 minutes, which initially feels like a very long time. More experienced programmers spend longer on their own, perhaps half an hour.
- Seek help but not answers for problems that remain. The best programmers seek help eventually; that helps makes them the best.
- Incorporate help to produce correct results. This means returning to "struggle solo", but armed with more knowledge.
- Test your work A correct-looking solution that has not been tested is almost certainly wrong.
- Compare your work with posted solutions. If the posted solution leaves you with questions, ask them.
- Re-do parts of the homework based on your comparison. Merely reading correct answers leaves lots of us unable to create correct answers. So if the "compare" step shows that your initial understanding was faulty, and if the topic is at all interesting, shut any display of the right answers and recreate those answers yourself.
Tests in this course aim to assess the extent to which a student understands the homework. People motivated by grades can boost them via the do–compare–re-do sequence.
keeping up is easier than catching up
Keeping up with homework assignments is challenging but crucial in computer science courses, for several reasons:
- Undone homework piles up. Many students find it challenging to fit each day's homework into full or over-full schedules, and skipping a day doubles the problem. Longer delays are many times worse.
- It is in doing homework that students actually learn the material presented in a day's class. The longer the delay between the presentation of the material and the homework, the less you remember from the class. It is easier to do Monday's homework at 4 pm than 11 pm. It is easier to do Friday's homework on Friday than on Sunday. Delays make homework harder.
- Here's the most important issue: understanding classes depends on your having learned previous classes' material, by doing the associated homework. Without that learning, succeeding classes can be worse than worthless to you, because they confuse you instead of teaching you. The confusion makes the next homework more difficult, in a rapid, downward spiral.
homework omits repetition
In fifth grade, math homework typically involves many repetitions of similar problems. Students can learn by repeating similar work until patterns become obvious. Each problem requires only a minute to solve.
That model fails in problem-solving courses like this one, where the problems are larger. It can easily take 10 or 15 minutes to write a program, test it to find errors, and fix those errors. So an assignment that is aimed to take half an hour should require writing at most three such programs. Students can no longer rely on absorbing a pattern through repetition.
Instead, be thoughtful about the problems. Do the significant work that can be required to understand the question. Struggle solo with the solutions, rather than immediately asking for assistance. Write down questions that occur to you, and take the initiative and responsibility to seek answers.
manage your homework time
Keep an eye on the clock as you do homework. Assignments are aimed to require half an hour of work or less. But it is notoriously difficult to estimate how long a programming task will take.
So you must accept responsibility for noticing how long you have been working on an assignment, and for cutting off that work at around half an hour. You will need more time if you have fallen behind or are in the process of resolving confusion. But a factor of two is a reasonable maximum: an up-to-date student who has spent twice the estimated time on an assignment should cut off work. Even if a particular assignment particularly interests you, a capable student with other homework lacks the luxury of over-commitment to any single subject.
This approach makes more sense when you consider reasons that an assignment might require extra time for an up-to-date student. The reason might be unrelated to the student. For example, the estimate for the time requirement might be grossly wrong. There might even be an error in the assignment that makes it impossible for anyone, in any amount of time!
Assignments routinely ask students to report the time they spent. Reviewing those reports allows me to extend due dates when necessary.
understand homework solutions
You are responsible for understanding solutions for homework problems by reviewing answers to them. Students and I collaborate on posting answers, usually on Piazza. There are good reasons to study these solutions:
- You learn little from incomplete or erroneous homework. I lack the time to check your work routinely and completely. That responsibilitydevolvesto you.
- Programmers learn by reading other programmers' work. I have learned that way for many years, with no end in sight. Posted solutions are imperfect and occasionally outright wrong, but one also learns from rejecting and correcting others' ideas.
- Learning from others' solutions is efficient. If you did the homework, it takes only a few minutes to compare your solutions to those posted, more if the solutions are better than yours, less if they are similar. If you failed to do the homework, reading others' solutions is slower and less educational, but still better than nothing.
"My computer (or internet connection) broke, so I can't do the homework."
Computer failure happens to everyone eventually. I would like to express my sympathy by lifting the requirement to do homework while awaiting repair or replacement. But from the point of view of keeping up with the homework, a broken computer provides no relief from the problems of falling behind. Students must find a way to keep up. Here are some strategies:
- Do the homework with a classmate, on their computer. It is usually more educational and often more fun to work with a friend, even when your computer works. Of course, if you work with someone else on the homework, you must cite that cooperation in your submissions.
- Share a computer with a family member. Most homework requires only a browser and an installation of a processor for the relevant language (DrRacket,NetLogo, Python, or Java). Installing a language processor is straightforward. Modern operating systems allow a family member to establish a guest account that preserves their privacy while allowing a student to share the working computer.
- Go to the CS Dojo, where there are plenty of computers. Bring a pair of headphones or ear buds if the homework requires listening to Mr. Brooks's videos.
Whatever approach you take, rise to the challenge of keeping up while repairing your computer.
A broken internet connection requires similar thinking. You can use a computer at school, including those in the library andCS Dojo. You can submit homework by carrying it to school on a USB drive and submitting it from school.LinkNYCandNYC's parksprovide free wi-fi, as do many other sources.
corrections on the homework server are shown as late submissions
The homework server records the time of the last submission to each homework slot. So if you submit homework on time, but subsequently submit a correction to it, the homework server will show the submission as late. That happens even if the correction is that you originally submitted the homework to the wrong homework slot, and you re-submit it to the correct slot.
Corrections are helpful. Correcting the content of homework is a great way to learn. Correcting which slot holds which homework helps me if I review it.
The apparent lateness is such a minor problem that you can ignore it. To keep the record straight, you can include a comment with the re-submission, telling me that the original was on time. But look at this from my perspective: I use the timeliness to alert me to students who are falling behind in the course, to spot where a conversation might be helpful. A rare lateness is harmless, so neither of us should spend much effort to avoid a rare appearance of lateness.
Re-submissions overwrite the comments from previous submissions. So if the existing comment has valuable information, copy it before re-submitting, and include the copy in the re-submission.
how else to succeed
recommendation: work with a classmate
Working on the homework with another student can help significantly. Some people mistakenly expect that the benefit derives solely from sharing knowledge. But other factors probably outweigh that sharing:
- Working with another person fosters questions and answers. Verbalizing questions and answers fosters the hard thinking that is necessary for learning.
- Some people think more productively in company,as discussed here.
- The discipline of working with another person supplements the self discipline required to work alone. If you — like most of us — find it difficult to push away distractions and focus on work we want to accomplish, you may find it easier to make an appointment with a classmate to work together, ideally at the CS Dojo. Then your natural politeness and disinclination to abandon an appointment will augment your self discipline.
- For those of us who enjoy teamwork, working with others is more fun than working solo.
- Sharing knowledge is easier when working in pairs.
Stuy's CS teachers strongly encourage you to experiment and improve at working in pairs.
Some caveats:
- "Working on" homework is not the same as "copying" homework. Copying involves no thinking and helps little in computer science courses. You need not believe me; ask someone with bad grades who tried it.
- Academic honesty requires that you understand and be able to explain your submissions, and that you identify sources of help. For example, it is always a pleasure to read comments like "I worked with Brian Kernighan on this task, and I completely understand the results." Submitting another's work without giving credit is cheating.
keep up when you miss a lesson
As with homework, it is easier to keep up than catch up with the content of lessons. If you miss a day or are confused by a lesson, take remedial action quickly.
The best way to catch up is to sit with another student from your class to go over their notes, while taking notes yourself. Both of you are likely to benefit; a person who teaches learns from the process, clarifying their own thinking. (I know; I learn from this effect every day.)
The web page on "notes from class" shows some class materials. Those materials can augment or correct your recollection of what you heard in class. They cover only fragments of lessons, however, so you will need notes by a student.
good students seek help
Too many Stuy students are reluctant to seek help, perhaps because middle school was easy for them. In better high schools and colleges, good students seek help; weak students don't.
Know these sources of help:
- **Ask and answer questions in class.**This is so helpful that it meritsits own section.
- Participants in this course will be enrolled in**Piazza**, a web forum in which students pose and answer questions, obviatingthe challenges of meeting in person. It has aided communication and learning for hundreds of thousands of students in colleges.
- Your classmates— especially those in classes I lead — have thought about and solved issues you face. Ask a few for their approach, pick one you can emulate, and practice it. Copying an effective technique is easier than inventing one.
- At the Comp Sci Dojo, successful comp sci students offer help in an environment conducive to doing comp sci homework. The Dojo is open Monday through Thursday in room 307, from 3:40-5:00. Bring your notes, plus a homework problem or test question that illustrates your confusion.
Bring a classmate; both of you will learn more by working together, with your work augmented by occasional help from the mentors at the Dojo.
For many students, the best way to learn what transpired in a class they missed or which confused them is to work with a classmate at the Dojo. Notes taken by class members should provide topic questions and partial answers. Dojo mentors can provide backup and alternative explanations, even though mentors do not typically attend our lessons.
When I visit the Dojo, I usually recognize students there who are among the best in their classes, working in an environment that they have found fun and conducive to success. But don't believe me. Check out the Spec article on"Decoding the CS Dojo". - I answer questions.Here is howto make an appointment. You can generally find me in room 301when I am not teaching.
- ARISTAoffers one-on-one peer tutoring in all subjects, given by students. There is no charge for the tutoring, but it takes time. I know only a little about it. Results seem to depend heavily on the interaction between the two students involved.
class and community participation
Asking questions or proposing answers helps the askers and answerers. Askers benefit because they do the hard thinking necessary to identify misunderstandings. Answerers benefit because they do the hard thinking necessary to verbalize their understanding. In addition, participating in class helps participants stay engaged with the class. Both questions and answers help me assess how well concepts are being communicated.
Many students are initially reluctant to reveal their confusion. Such reluctance is understandable since no one likes being wrong. You can help: work on making class a hospitable environment for the ego-sacrifice of asking questions and proposing answers that could be wrong.
Explaining another student's question to me helps all of us. You must have experienced this already: A helpful and brave student says "I don't understand". The teacher starts to re-explain whatever they regard as the hardest part of the material. But every student in the room knows that the problem was a term that the questioner had not heard before, often because the term was new to lots of people. In that case, please jump in with an interruption like "No, Mr. Holmes, the issue might be the term x." Everybody wins.
The Piazza on-line forum extends participation beyond the class time. Participating via Piazza is particularly valuable for people who are disinclined to speak during class.
learn from your errors
Figure out how you erred on homework and tests. That effort is educational because that work focuses on the elements of the course that I think are important.
For tests and other heavier-weighted assessments, I create a rubric to promote consistent grading. I publish the rubric with the grades. It can communicate the parts of a problem I regard as important and it often lists common errors.
Initial work on figuring out errors must be done by students, without my help, mostly for the educational benefit. So do not ask me for help until you have thought, asked, and experimented to correct your work.
To find the error in your answers, try some of these steps:
- Re-read the problem. It is common for people to notice instructions that they overlooked initially. This is easily the most common answer to grading questions about tests.
- Consult with classmates, either in person, via Piazza, or at theCS Dojo.
- Identify theimportant partsof the question, by reading the rubric.
- Consult the**usual sources of help**.
- Test your code thoroughly.
notes help, if used well
Each lesson's aims are displayed as questions, which you areasked to record. Knowing the aims in advance helps you recognize the answers as the lesson covers them. If we both do our jobs, you should be able to answer those questions after the class.
Many Stuy students found notes superfluous in middle school. Material was presented slowly enough, and with enough repetition, that they learned it during class, with no need to refer back to it. However, as you rise through increasingly challenging education, eventually you will reach a level at which you can no longer get by on being a fast learner, because everyone in your class learns as fast as you do, and the pace of the class is sped up accordingly. When you reach that level, learning requires thinking about the material after class, independently. Independent thinking requires recalling the material. Successful students take notes that aid that recollection.
Cameras (including on cell phones) can record a diagram from the board more accurately and with less interruption in your learning, compared to copying by hand. You can take more pictures than you use, and delete or ignore thedetritus. You can walk briefly and politely to anywhere in our classroom to take a picture of the board, without seeking individual permission first. Standard privacy considerations require framing your pictures to omit classmates.
To benefit from notes, good students improve them after classes, reminding themselves of the questions, and identifying the answers.
In fact, if you do not review your notes, or if you store them un-read until the night before an exam, you are likely to learn more by listening and thinking hard during class, without the distraction of taking notes.
Apollo Robbins will convince youin 9 minutes that copying from the board interferes with learning, because you can't think about two things at once. Way cool.
Do your review and answering before you start the homework. That timing helps with the homework, because the homework aims to exercise material from the most recent class. The alternative to review-before-homework is more work for less learning. There are often many ways to solve computer problems, and lessons often base new techniques on those taught previously. Homework after the later lessons aims to exercise the new learning. But students who have not reviewed a lesson forget it. Instead, such students try to apply old lessons to new problems. That involves more work than using the newly-taught techniques, and forsakes the opportunity to learn the new techniques.
Algebra students are often introduced tosolving quadratic equations by factoring. Later, they are taught thequadratic formula, which is helpful when the solutions are fractions or complex numbers. Pity the student who ignores the aim of the lesson on the formula, and works hard on the homework trying to guess the factors of_x_2–_x_–1=0. The effort will be fruitless and it won't help the student understand the formula.
In summary:
- Record each lesson's aims, both the projected questions and their answers.
- Bring your notes with you to do the homework, so you can start by reminding yourself of the material that the homework addresses.
- Use the new material from class to solve the homework problems, so that the new material becomes meaningful to you.
how to read
Probably you have been told how to succeed at reading comprehension under time pressure. Often the techniques include…
- Read the questions before the passage, so you will recognize the parts of the passage that merit attention.
- Skim-read the text, underlining the parts that address the questions.
- Answer the questions and move on.
Sadly, that is not"how to succeed at reading comprehension".
Maybe that is "how to succeed at reading comprehension on a standardized test".
Certainly it is "how to failat reading comprehension in computer science and math".
Comprehension in this subject requires multiple close readings. Here is a typical sequence for understanding a programming problem:
- Read the problem quickly.
- Read it carefully.
- Re-read it carefully.
- Write the answer.
- Re-read the problem, to see whether you answered the problem that was asked.
Successful students read differently in different subjects. I learned that only in grad school. Maybe you can learn it sooner. Teachers never told me this before then, presumably because lots of teachers are as ignorant as I was, and for a similar reason: a single reading style had long worked for me in the subjects I liked best, and I got by in the other subjects.
New students routinely complain that my writing is hard to read. I may be a particularly bad writer, but there is also another issue: reading computer science text requires serious concentration on every word. Two examples:
- When I answer tests written by another comp sci teacher, I have to the read each problem 2 or 3 times, even though I have already spent a long time thinking about constructing these kinds of problems.
- I asked a group of comp sci teachers whether they needed multiple readings, and they gave me the "Duh" look. Unless you are much better at computer science than those teachers, imitate them.
Communication is hard. Readers must expect to do their share of the work.
how to write
Problems posed in this course routinely ask for answers in good English sentences. The responses are routinely hard to read, often because they ramble, or constitute only sentence fragments, or lack antecedents for pronouns.
Problems posed in this course routinely impose word limits. Weak students routinely violate those limits.
Avoid these errors by drafting an answer on scrap paper or a word processor. I cannot answer a hard question in a single draft; it is optimistic, prideful, or foolish for you to expect that you can.
Save words by omitting echoes of my question. For example, if asked "What advantages derive from clear writing?", it is redundant to start your answer with "There are many advantages to clear writing. For example, one should practice clear writing because...". Eleven words wasted."Omit needless words."
Students have taught me why they make these errors: writing a lot, quickly and poorly, succeeds in other courses. That approach fails in this course.
how to study for a test in a problem-solving course
Answer: solve problems.
Maybe that sounds simplistic or obvious, but lots of otherwise-good students don't know it or do it. Alternatives like "re-read your notes" may work in other courses. But to improve as a student, learn to recognize differences between courses, so you can study in ways that accommodate these differences.
Where can you find problems to solve? Here are some answers:
- The homeworkis the best source, because it shows you the kinds of problem that I think are important. (I care deeply about spending your homework-doing time only on important problems.) Tests aim to answer the question "Did you understand the homework?" To that end, test problems resemble homework problems. Moreover, tests often include a problem that appeared as homework.
Problems given for homework are often harder than problems that would be reasonable for students to solve for the first time on a test. So students who do the homework and review it before a test have the relatively easy task of recalling their thinking. By contrast, students who skipped struggling with the problem as homework face an unusually tough challenge on the test.
Do not skip this source out of fear of the time it took to do the homework the first time you did it. Re-doing homework is much faster. - **Tests from previous semesters.**I provide these when I can.
- **Other students' questions.**Everyone is expected to follow the discussions on Piazza, and preferably to contribute to them. To help, particularly useful questions are marked "An instructor thinks this is a good question".
- Proposed test questionsfrom you or other students, shared on Piazza. If the questions look important enough and are of appropriate difficulty, I can use them and thereby save myself work. The authors of these problems typically do well on them. Win-win, eh?
In summary, solve homework problems and review problems and solutions in preparation for tests.
taking tests
Tests are given on the last day of the week, to avoid having students take many tests on a single day. Even with this scheduling, tests in this course frequently overlap with social studies tests.
A test on a particular Friday covers only material from classes through the Wednesday two days earlier, and from homework due on Thursday one day before the test. That limitation gives people time to learn the material via homework, and to ask questions about that homework.
rules for taking tests
In response to proctoring considerations and students' questions, a large-ish bunch of rules has grown around taking tests I administer:
- One point penalty for asking a redundant question. A question is redundant when it is answered in the written instructions.
- Interpret the "Pencils down" instruction literally. You are cheating if you hold a pencil after time is called.
- Use my paper, not paper you brought.
- Do scratch work only on the sheet that holds the questions, not on your answer sheet. See the first sentence in this typical test header.
- Your desk space should hold 2 mechanical pencils, an eraser, blank paper, a turned-off phone, a backpack, and nothing else. No pencil cases. No hats. And especially no other pieces of paper, even if the paper was there when you sat down. It is your responsibility to verify that nothing on the desk could be construed as material for your cheating; claiming "Someone else left these notes" is not a defense.
- I distribute reference sheets after the test has started, to maximize students' test-taking time. It is a redundant question to ask for your reference sheet while I am clearly working. If you think I have forgotten to distribute reference sheets (as I sometimes do), wait to ask until I look idle.
- You may go to the toilet only after you decide you are done with the test and if the need is urgent (because processing a student's papers separately increases the chance that I will lose some important part). Hand me your phone if you leave the room during the test. Consider a proactive toilet visit before class.
- The rules for writing answers are detailed. Following them contributes to test grades. You can save time during the test by readingthis typical test header. The header for the current test is frequently projected before the test starts, for the benefit of students who arrive promptly.
extra credit: points for perspicuity
Students can earn points forperspicuity. If a piece of code or English is so clearly and tersely written that I can verify its correctness in a single reading, it can be worth extra credit. Clear writing is hard in any language, however, so achieving it normally requires drafting the answer and editing the initial drafts.
Holmes's schedule
period | activity | room |
---|---|---|
1 | teaching | 307 |
2 | teaching | 307 |
3 | teaching | 307 |
4 | usually available | 301 |
5 | usually available | 301 |
6 | teaching | 307 |
7 | teaching | 307 |
8 | usually available | 301 |
9 | usually available | 301 |
10 | usually available | 301 |
after school | usually available | 301 |
For the periods' times, seeMr. Brook's clock or some other, official school source.
To make an appointment, send email. As in the rest of life, meetings are more productive when everyone knows the agenda in advance so they can prepare their thinking or background investigations. So please email me…
- the topic(s) you want to discuss
- an estimate of the length of the meeting
- the date and period for two times when you can meet.
I will respond with whether I can meet then.
Caregivers are requested to provide a phone number that I can call at the appointed time.
Courtesy requires keeping your appointments, or — second best — alerting me in advance if you intend to break an appointment.
My office is in room 301, phone extension 3013.
email helps communication
Before emailing me, considerPiazza, forthese reasons. Emailing me is appropriate for issues that concern only you, but Piazza is often more efficient.
If you decide to email me — or anyone — recognize that thought transference from your head to another's is difficult. So help the reader by writing carefully. Use standard English, the way you would in a paper submitted for a grade in an English class, including full sentences, verbs, paragraphs, courtesy, organized thoughts, re-reading, revision, spell-checking, and all the other techniques you know for communicating effectively.
In the first sentence of your email tell me why you are writing or what you want. Like a topic sentence in a paragraph, the email's first sentence should answer the reader's implicit question, "Why should I make the large effort to understand the rest of this email?"
For that reason, business-related emails like ours should not start with "I hope you're having a nice day", nor any of its variants.
Word choice can help focus your sentence on why you are writing. If you start with a first-person pronoun, like "I" or "my", you are likely to be writing about yourself, rather than telling the reader what you seek from them. Try starting with a second-person pronoun, like "you", or animperative, probably introduced by "please". Examples:
- helpful: "Please add me to Piazza."
This helpful topic sentence starts with the imperative form of the verb "add". The reader immediately learns what the writer wants. The reader expects subsequent paragraphs to provide background, explanation, or amplification. - weak: "I joined the class late because I transferred from another teacher's class, so I am not enrolled in Piazza."
Starting with a first-person pronoun ("I") focuses this sentence on the writer, rather than the reader. It fails to tell the reader what is wanted from them.
Do not use informal abbreviations, like "ur". Do not omit punctuation, as in "dont". Shortcuts like those are fine when texting with friends, but they are inappropriate in more formal communication, like ours. You are better thanthese peopleat establishing an appropriate tone for your communication.
Use the subject field of your email to maintain threads that bind related messages together, thereby distinguishing one conversation from others. Indicate content and purpose. A subject like "help!" or "homework" is useless; it tells the reader nothing except that the author is too lazy to help the reader understand the issue. Expect bad results from telling the reader that.
Improve your subject field further by designing it to tie together a thread for the recipient. A subject of "my comp sci homework" will suffice to identify the thread in your collection of email, but a comp sci teacher receives lots of email on comp sci homework. Better: "Haley Zeng's homework #11"
Configure your email software to include the thread's previous entries at the bottom of a new entry. The recipient participates in many ongoing threads. Including the previous entries can help them revive their memory without searching older emails.
Send your email to the appropriate address:
your class period | send to… |
---|---|
1 | 1![]() |
2 | 2![]() |
3 | 3![]() |
i, for 1 ≤ i < 11 | etc. |
Put your name in the message, perhaps by configuring your email client'sdisplay name.
Keep your email program from categorizing email from me as spam, by_whitelisting_thedomain DavidMHolmes.net
. For instructions on how to do this in your email program, run a web search that starts with the email software you use, followed by the term whitelist, likegmail whitelist
classroom routines
It is widely observed that time is the most critical scarce resource in a class. As a student, the scarcity rarely occurred to me; I just had to keep up. But in leading a class, the scarcity rankles constantly. Can we delve far enough into a question to understand why people find it interesting? How much easier will the homework be if students start it in pairs in class? What's so cool about_tail recursion optimization_, and why should I care?
So it is worth establishing routines that save time and disruption.
arrive before the late bell
Class begins at the late bell. Before then, be seated, set up, and ready to work.
your first period
You cannot arrive on time by aiming to arrive on time. For example, if your commute requires 35 minutes and you allow 35 minutes for it, then _any_delay in the commute means you will be late. Have you ever heard of a delay on the subway?
Big data can help. Check outthis cool analysisof data from the MTA, showing the amount of time to add to your commute to change from being late once aweekto being late once amonth. Here is their advice to me on the "time you'll need to allocate for your commute" after I added my walking time on both ends:
willing to be late…
Once per week | 40 minutes |
---|---|
Once per month | 43 minutes |
That is, it would cost me only3 minutesto move from being late way, way too often, to being late one-quarter as often.
How much time do you think I should add if I want 95% certainty of being on time every day for a semester? 10 minutes? Are you willing to arrive a little early most days, to be a competent student? "80 percent of life is showing up."
start of class
Your objective at the start of each class is to enter a mental and physical state in which you are ready to contribute and learn.
- Readiness to make notes requires starting a new page in your notebook with the day's date, and having two writing utensils of different colors on the table.
- Stow all other belongings under the table, clearing the aisle between tables.
Arrive before the late bell, so that you finish these tasks by the time it rings. Successful sophomores have assimilated this timing; I make it explicit here to avoiding embarrassing anyone who has not learned it yet.
I have sympathy for people who are only now jettisoning the impression from middle school that time before the late bell is free for socializing, because I remember making the transition.
But the absurdity of this misconception becomes apparent if you think about college classes. For example, in the first year at a medium-sized university, I was privileged to hear David Wilkinson take time out from hiswidely-recognized workstudying howbackground radiation supports the big bang theoryto teach physics to beginners. And Burton Malkielhad just left President Ford's Council of Economic Advisers to teach Econ 101 to a few hundred first-years. When people like that take 50 minutes to explain what they think you should know, you don't squander the first three looking for a seat and a pencil. Students probably don't make it that far unless they have learned how to prepare to learn.
My teaching falls far short of those teachers', but you can certainly read a clock as well as their students.
The start-of-class assignment (a.k.a. the do-now) typically asks you to…
- Record the projected questions, which communicate the aims for the lesson. If you and I do our jobs, by the end of the lesson you should be able to answer these questions.
- Read the questions you recorded for the previous class; and
- highlight the answers to those questions in your notes, using your contrasting-color writing utensil.
You are welcome — indeed, it is probably more educational — to work in pairs with an immediate neighbor, augmenting each other's notes and jointly identifying answers. If you missed the previous class, seeking help from a classmate is necessary, not just optional.
As adherents of the Cornell note-taking system[1] [2]know, the review contemplated here is actually too little too late. By the time they start college, good students develop the self-discipline to review notes without prompting. That review is most profitably done soon after each day's class. In college, there will be no do-now, no teacher-designed exercises to help students recall the context of the previous class. Instead, successful students do that review on their own initiative, on a schedule that works for them.
While you are in high school, learn about and experiment with techniques that good students use. To help with that experimentation, I assign techniques, such as the beginning-of-class reviews. By the time you reach college, you want to have internalized the techniques that work for you.
Start-of-class routines typically finish within 3 minutes of the late bell, depending on the opening assignment. Four minutes represents 10% of a 41-minute period, so you can appreciate the need for discipline.
I cannot address individual concerns before lessons. At that time I am trying to start the class as speedily as possible, so attending to individual concerns would delay the entire rest of the class. If you need individual attention for less than a minute — for example, to hand in papers — wait until the start-of-class work is under way. For longer conversations,make an appointment. Sometimes I can also talk after classes.
If you enter the class too late to be working when that bell sounds, sign in on the sheet on the side of the teacher's desk.
Your signing in reminds me to change the attendance sheets, without interrupting the class. Without that reminder and change, the attendance office will record that you cut the class.
late arrival during a presentation by a student
Presentations by students require heightened manners, since students are often little-used to presenting. If you arrive late while a student is making a presentation, remain unobtrusive, just inside the door, until the student is done. That courtesy avoids disrupting the student's presentation as you sign in and seat yourself.
bathroom
As John Bruestle aphorized, "You cannot program when you have to go the bathroom." But no one wants to raise a hand during a discussion, wait to be called on, only to ask to be excused. Instead, gesture pointedly toward the door, and I can respond non-verbally without interrupting the class.
More stringent rules apply during tests.
food and liquids stay in backpacks
If you bring food or liquid to the classroom, put it in your backpack before entering the room and leave it there. Do not eat or drink in class. Step outside if necessary.
The prohibition on food aims to keep our shared keyboards and mice as clean as we can, given that they are handled by 10 or more persons every day.
The prohibition on liquids stems from a long history showing that students who spill liquids fail to clean them up, leaving them for others to slip on, and for me to clean up.
Could you sneak in a quick sip or bite without my noticing? Absolutely. But that would make you a sneak. Honesty feels better.
absence
your absence
When you miss a class, you bear the responsibility to catch up. Ask a reliable classmate to review their notes with you. Ideally, do this at the CS Dojo, for access to more help if questions arise. I regret that I cannot afford the time to tutor individual students. One benefit of your accepting this responsibility is that I rarely need to object to a student's missing a class for musical or sports conflicts, or to make up a test in another subject, etc.
If I collected homework for grading in a class you missed, hand yours to me, with thestandard header.
I teach your course several times a day. Students who plan to miss a partial day can keep up the easy way by seeking permission to attend one of the other classes.
absent for a test
This section is under development, since the school's policies in this area are under development as of 2022-09-08.If the school's policy requires a change to the following notes, the policy for this course will change to be consistent with the school's policy.
When you miss a test, accept responsibility for taking it late:
- Prepare to take the test during your first class in this course when you return to school.
- Talk to me before the beginning of that class.
- Avoid talking about the test's content with classmates who took it. Do not learn about the questions before taking the test. Advance knowledge of that content constitutes academic dishonesty.
If your absence is planned in advance (such as for a class trip in another subject) you can sometimes simplify our workflow by volunteering to take the test during one of your free periods. That is convenient when another class in the same coursetakes the test, and is also usually possible during periods that my schedule shows me to be "usually available".
my absence
When I am absent, I usually post instructions in the class notes. Look there and remind your neighbors to do so.
etiquette
independent learning and showing off
Everyone is welcome to learn extra topics on their own, and to use it on homework or tests. One of the great aspects of computer science courses is that you can learn any amount more on your own, and benefit from it, whether the amount is small or large. Every semester there are a handful of students whose interest in the material leads them on, and it is a pleasure to see.
But in class and Piazza, don't introduce digressions that hurt — rather than benefit — the class as a whole. Independent learning is great, as long as it is, well, independent.
This kind of self-restraint is tougher than it sounds, since it is natural to want to show off extra learning. Showing off is unattractive as well as distracting. Instead, independent learners occasionally ask quick questions after class on material they have been studying on their own, without distracting anyone or showing off in the slightest. Sometimes I can help by pointing them to appropriate documentation.
The temptation seems particularly acute on the homework solutions that students are asked to post. The solutions should present the simplest possible answer to the homework problems, so as to help someone who was a little confused by the presentation in class. Introducing new material is likely to further confuse such a person. In one semester this kind of showing off rendered Piazza posts unusably dense for many students and me. Keep that from happening.
Rather than Piazza, consider public forums like theStackOverflow community, which is, in spots, like Piazza for pros. No one there will think you are showing off, not least because the pros there are really impressive.
Hereis a posting on StackOverflow by a great Stuy student. The question was answered by Seth Tisue, who was then thelead developer of NetLogo! Also notice how polite most people are on StackOverflow, including both the student in the original posting, Mr. Tisue in his generous response, and the student again in saying "thank you". If life were only like this.
To burnish your reputation within the class in a positive way, answer questions, in class and on Piazza, without condescension or outside-the-syllabus material. You can help lots of people by writing high-quality, well-tested hints or answers to questions about the material.
Answering a question posed by another student helps because the questioner hears an answer phrased differently from the way I might phrase it. That difference often improves their understanding compared to an attempted answer by me because the questioner was left confused by my original phrasing. So hearing different phrasing is likely to help them.
People who enjoy learning about computer science will feel rewarded by taking more comp sci courses at Stuy or participating in the comp sci community outside classes. The other classes and activities are led by people whose great teaching inspired me to want to join them. Both activities will give you the company of independent learners who are nice people, and who share your interests. Learning in the company of good students is why you went to Stuy, whether you knew that in advance or not.
"Mister", not "Doctor"
"Mr. Holmes" is my name within the community of Stuy students.
In academic circles, people earn the honorific "Doctor" by spending about six years after college learning more and generating original thinking. Please do not misuse this high honorific by applying it to me.
no gifts, please
I cannot accept material or monetary gifts from students or their families. Students regularly give me gifts of their attention, their effort, their patience, their opinions, and their advice on becoming a better teacher, all of which are valuable to me. Let's keep material gifts out of this.
If you (or your parents/ caregivers) have roots in a culture with a different gift-giving tradition, please help everyone involved understand my respect and disinclination to give offense, while remaining consistent.
There are many reasonable views on this issue; the "no gifts" policy is just mine. Here are two optional others:
- O. Henry's gem-like 1905 short story, "Gift of the Magi" will enliven your life much longer than most parts of this course.
- And if O. Henry's vision of the power and beauty of gifts leaves you emotionally drained, switch to NYC Charter §2604(b)(5). That'll straighten you right out.
grades
Students have a legitimate interest in grades. But focusing on grades wastes a student's time, without boosting their grade. This course's grading seeks to align higher grades with…
- knowledge of computer science, and
- good practices for learning, especially those discussed in this document.
So to earn higher grades, spend your efforts on those areas; let the grades take care of themselves.
sources for grades
The Stuyvesant Computer Science web site, includes a section ongrading policy. The brief version: test results contribute most to the semester's grades. Details on the categories in this course areexplained here.
When homework assigns reading, the initial grading for that assignment reflects an assumption that the student did the reading. If a student's subsequent actions demonstrate ignorance of the content, the grade on the homework will decrease.
For example, hw00 asks students to read this web page, since it contains my best advice for succeeding in this course and others like it. Part of that advice gives instructions for writing email that helps both you and me. So, if a student sends me email any time during the semester that demonstrates ignorance of those instructions, their grade on hw00 decreases.
Questions? Comments? Suggestions? Discuss themon Piazza.
raising grades
Students who focus on grades occasionally ask for opportunities to earn extra credit to compensate for low grades. I know of no work outside the curriculum to recommend as a remedy. Instead, whatever time a student wants to devote to improving their grade in this course should be devoted to learning the course material and preparing for the next assessment. My best advice on doing so isin this document.
reporting grades
Grades on individual assessments will be posted on the system designated by the school (unknown to me as of 2022-08-28).
revising grades
correcting my processing errors
I make processing errors in grading. By "processing" I mean operations that involve no judgment. Rather, processing errors are mechanical or arithmetic. I welcome the opportunity to correct them. Typical processing errors include…
- arithmetic errors in adding scores
- typing errors, while entering scores in my grade book
To help me correct one of these errors, show your computation of the score in the top margin of your answer sheet. For example, suppose I found errors worth –1, –2, and –3 points, but I erroneously recorded 92 as the grade. To help me correct this, show how you arrived at a different answer in the top margin:
100 – 1 – 2 – 3 = 94
Hand the answer sheet back to me. Unlikedisputes about judgment, I will only check your check; I will not re-grade the test.
disputing judgment
When you and I agree that an answer is wrong, please respect my efforts toward fairness and consistency, by accepting my judgment of the penalty.
If the penalty seems high, estimate the fraction of the important parts of the problem you did correctly, as identified in the rubric. For example, if you decide you did an 18-point problem about half right, then a score between 8 and 12 is probably close enough. Contesting the grade is probably not worth the time and risk of requesting that the entire assessment be re-graded.
If you insist on disputing my judgment, within two school days of the publication of the grade and rubric, write a paragraph explaining the alleged error. Resubmit your work to me, with the explanation. I will re-grade the whole assessment. I will correct all grading errors I find, in both directions. Your grade may go up or down.
curved grades (optional reading)
I scale grades upwards when fairness requires it. I assume that a typical range of students populates classes I lead. That suggests that average grades in these classes should resemble averages from other teachers.
curving techniques(optional reading) I use method 4.
miscellany (optional reading)
- for students joining a class after its first session
- It Gets Better.This site's main aim is "empowerment of LGBTQ+ youth", but its three-word assertion applies to anyone who has noticed that high school is tough socially. One of the first videos I watched was by a person named — and I am not making this up — Dave Holmes. His6-minute videoremains a favorite.
- Is Advanced Placement Computer Science (APCS) at Stuy for you?
- requesting a recommendation for college applications
- Ubuntu setup and rescue on StuyCS's systems
- changing a passwordthat is used to access computers run by the comp sci department. For passwords for email accounts, readthe school's web site.
- Syllabusesappear on the department's web site. These are necessarily works in progress, as we learn to adapt and improve previous years' syllabuses to current thinking.
- parents' and caregivers' frequently-asked questions
- Stuyvesant Computer Science web site, including grading policy.
- Google Classroomjust links back to this page.