Mr. Smith's Schedule

Green White
7:30-7:55 please make an appt (Room 26) please make an appt (Room 26)
Block A/E Skills for Innovation Computer Programming
Block B/F planning Computer Programming
ARE Time please sign up (Room 26) please sign up (Room 26)
Lunch not available not available
Block C/G AP CSA AP CSP
Block D/H planning Artificial Intelligence
2:45-3:15 feel free to drop in (Room 26) feel free to drop in (Room 26)

How to Create an Account in Github

Watch the video --OR-- read the instructions below it.
  1. go to github.com
  2. enter the requested info, and click the green button
    • username = whatever you like. maybe just your school username?
    • email address = please use your school email address
    • password = whatever you like
  3. click the green 'continue' button a couple times until you reach the screen that says "Learn Git and Github without any code!"
  4. go to your school email account, open the auto-email from github, and click the "verify this email" link in there

How to Fork a Repo

  1. go to the WoodstockCS copy of the repo you want to fork
    • either from the list of WoodstockCS Repos (see Quick Links at the top of this page)
    • or by clicking on the link to the repo at the top of the assignment instructions
  2. make sure you're looking at the WoodstockCS copy of the repo (look for woodstockcs in the upper left corner of the page)
  3. click the "Fork" button
  4. wait while your copy of the repo is created
  5. now you should see your github username in the upper left corner of the page

How to Access Google Forms Data from p5

one sample that uses the responses of a google form in p5: link and here's a Shiffman video that shows you how to connect a google form and p5: link

How to Publish a Scheme Program

  1. share the project in WeScheme
    • go to the code for the program you want to publish
    • click the Share button
    • click Yes in the "Publish My Program" popup
    • click on the custom link that WeScheme provides you
    • click the Run button
    • make sure everything looks ok! If not, go back and make changes, but then you have to click the Share button again
  2. put the WeScheme shared URL on the webpage source code in github
    • copy the URL of the page you're viewing your project on (it starts with http://www.wescheme.org/run...)
    • go over to your copy of the relevant repo in github (remember to check for your username in the upper left corner, to be sure you're in your copy not the class copy)
    • click on the file called index.html
    • click the edit button (it's a little pen icon)
    • replace the two existing WeScheme URLs with the one you copied
    • scroll down and click the Commit Changes button
  3. copy your WeScheme source code into the .scm source file in github
    • go back to the editor for your program in WeScheme
    • copy all the code in the Definitions section
    • go back to your repo in github
    • this time click on the scheme source file (it's the file that ends with .scm)
    • click the little pen button (same edit button as before)
    • remove all the code from the editing window
    • paste the code from WeScheme into the github editing window
    • look closely at the start and end of the code you just pasted, to make sure you didn't miss anything
    • click the Commit Changes button
  4. confirm that github is displaying your webpage correctly
    • from the main page of the repo (where you see the list of files in your repo), click the Settings tab
    • scroll about down the page until you reach the Github Pages section
    • click the link to your published webpage, which looks like this: https://YourGithubUsername.github.io/RepoName
    • in case things don't look right, stand up and strech to give github another minute or two to update your webpage on its servers, then hold down the SHIFT key on your keyboard while you reload the page

How to Submit a Lab in Github

  1. create a pull request
    • in your copy of the repo, click the Code tab
    • click the button that says "New pull request"
    • click the green button that says "Create pull request"
    • delete the text that's in the blue box where the cursor is (it probably says something like "Update ...")
    • in that same box write SUBMIT LAB in all caps
    • scroll down and click another green button that says "Create pull request"

How to Follow Up on a Lab in Github

  1. look at the list of pull requests you've created
    • from anywhere in github, click the link in the page header called "Pull requests"
    • the list of open pull requests created by you is shown
    • if you want to see closed pull requests, click the "Closed" word at the top of the table
  2. open the pull request that you're interested in
    • each pull request in the list says woodstockcs/RepoName, followed by the pull request title, which should be something like SUBMIT LAB
    • to read the comments of any pull request, click the title (ie. SUBMIT LAB) of the pull request

How To Write a Good Commit Message

The following guidelines lead to readable messages that are easy for you and other people to follow when looking through a project's history. A good commit message shows that you're a good collaborator.

  • describe the change you made in as few words as possible
  • try to use no more than 50 characters, but absolutely no more than 72 characters (spaces and punctuation are characters)
  • use a verb as the first word, and use it in the imperative, present tense: "change" not "changed" nor "changes"
  • do not capitalize the first letter
  • do not use a dot/period (.) at the end

It's helpful to think of your commit message as silently starting with "This commit will...".

Good Baaaad
add a second player trying to add a second player
accelerate the car to 88 miles per hour accelerate the car to 88 miles per hour.
fix choppy animation fix the part of the animation where it flashes a lot
because that part gives me headaches
open the pod bay doors Open the pod bay doors
fasten the seatbelts fastened the seatbelts
fix typo when is this class over

How To Set Up DrRacket

  1. Download the installation file: Go here and select the correct platform, then click the button to download.
  2. Install DrRacket: After the large file is finished downloading, run it to install the DrRacket software.
  3. Configure the software: Go here and follow the instructions in Section 0.3.4 Installing Libraries, which starts about halfway down the page.

How to Contribute to the Testbank

Each question gets two slides: one without explanation, and one with explanation. Use the first pair of question slides as a model.

  1. open the testbank in edit mode
  2. create one new slide at the end of the slidedeck
  3. on that new slide, write a question with at least 4 multiple choices answers, only one of which is correct
  4. when viewing your new slide, click "Slide" from the menu at the top, then "Duplicate slide"
  5. on this duplicate do the following:
    • draw a circle around the correct answer
    • for each incorrect answer, create a small textbox nearby indicating why it is incorrect
    • indicate your name as the author somewhere on the page

How to Translate Your AP Exam Score to College Credit

Each college and university handles AP exam scores differently. Check with the schools you are interested in to see what their specific policies are.

In Summer 2017 I asked representatives at UVM and Castleton what their policies are. Here is what they said:

School AP Comp Sci A AP Comp Sci Principles
Castleton 3 or higher (addl credits for a 5) 3 or higher (addl credits for a 5)
UVM 4 or higher 3 or higher

How to Know What is Acceptable Collaboration on CSP Performance Tasks

This guidance is only relevant for the "Performance Tasks" which students complete as part of the AP Computer Science Principles exam.

Here is what the College Board wrote about this question in an email to all teachers in September 2017:

Student Collaboration on the Create Task
  • Students are not allowed to collaborate on the video or the written responses of the Create performance task. If students submit identical or similar responses, they will be flagged for not following task directions and will get a zero on the performance task.
  • Students may collaborate on the ideation or problem-solving of the code.
  • See page 117 of the Course and Exam Description.
No Student Collaboration on the Explore Task
  • Students are not allowed to collaborate on any aspect of the Explore performance task. If students submit identical or similar responses, they will be flagged for not following task directions and will get a zero on the performance task.
  • See page 112 of the Course and Exam Description.

How to Troubleshoot the Display of Processing Sketches Online

Open the javascript console, where you might find an error message that gives you a clue about what the problem is. Or you can look through your code carefully to:

  • rename any variables that have the same name as functions, like size
  • remove or comment out these functions which are not supported when you run processing online:
    • clear();
    • System.out.println(...)
    • println(...)
    • System.out.print(...)
    • print(...)

Retake a Test

Unlimited retakes are available to everyone on every test, but only when the following conditions are met. It takes some effort to request a retake, so don't consider a retake as a 'free pass'. Read this section carefully to see what's involved.

A retake gives you additional opportunities to show your proficiency in a standard, and it is an excellent way to increase your grade. However a retake may also reveal gaps in your understanding which were not apparent in the original test. These gaps are not ignored, so this means a retake may cause your grade to go down.

The following conditions are important to keep in mind when requesting a retake:

  • You must fill out the retake form linked here. I will not accept requests by email, paper, voice, smoke signal, telegram or any other manner of communication.
  • Pay attention to the deadline. It is strict because I need enough time to set up your retake for you.
  • Fill out one form per test you want to retake. You do not need to retake the entire test. You are welcome to ask for questions on only one or some of the standards from that test, or all of the standards which from that test. Whatever standards you indicate on the form are the ones that will be on your retake -- there's no changing your mind once you see the test, so choose carefully.
  • I will respond by 8am the next day to
    • confirm that you've been accepted for a retake, and
    • to confirm the time and place.
  • Not all retake requests are granted. I will spend time creating your retake, and you will spend time taking it, and we both want to spend our time well. For this reason I only approve retake requests for students who show evidence of growth since the original test. You do this in two ways.
    1. In a direct and specific question in the Retake Request Form, you indicate an honest feeling of readiness to answer new questions on the standards you are requesting.
    2. You do Test Corrections on your original test and you give those to me before you submit the form requesting a retake.
  • Be thorough with your Test Corrections and be sure to submit your form correctly! The 3pm-day-before deadline is critical, so if your Test Corrections need more work then you may need to wait until the following week.
  • I encourage you to talk with me before you request a retake. I'm glad to give guidance in understanding the retake process. I am also glad to give support with the standards themselves, but only after you've put decent effort into doing Test Corrections (see section below).

Test Corrections

I generally write two types of feedback on tests:

  • I draw circles around or X's near stuck points (things that are just plain wrong, or things that need some improvement because are in some grey zone between right and wrong). Occasionally I annotate my circles, but often not.
  • Everything else (things that are particularly well done, or other things comments about notable things that are not stuck points) gets an underline or an arrow or simply a short note, but no circle. Circles only go around stuck points.

It's your responsibility to figure out how you erred on tests. Initial work on figuring out errors must be done by students, without my help, mostly for the educational benefit. In particular, do not ask a teacher to identify your error or justify their scoring as soon as you receive your test. Instead, re-read the problem and give it another shot. If you're still stuck you should feel free to consult with your classmates and look at their tests.

Whether you plan on taking a retest or not, it is in your best interest to do Test Corrections because they are a great way to prepare for future tests.

Do your Test Corrections on a separate sheet of paper (not the test itself). For each stuck point I circled on your test, write the following:

  • problem number.
  • what was your thinking when you wrote it? (dont' write "I wasn't thinking")
  • how has your thinking changed? (don't write "it's correct now")
  • what is the correct answer?

After having written your Test Corrections on a separate sheet of paper, put that paper in my inbox or take a picture of it and email it to me.

I will give feedback (but not change grades) on all test corrections regardless of when they are submitted.

If you are submitting the Test Corrections as part of a Test Retake Request, then the Corrections must be on my desk or in my email inbox by 3pm the day before you would like to do the retake.

Structured Learning

Guides and Tips

Lists

Mr. Smith's Book Recommendations

Classes and Objects