Shorr Foundations of Comp Sci 2025-26-Per 6 Assignments

Upcoming Assignments RSS Feed

No upcoming assignments.

Past Assignments

Due:

Making Shape Functions in Google Classroom

Making Shape Functions

Submission instructions: Copy your code and a screenshot of the working house into a google doc and submit it. To screenshot, do cmd+ctrl+shift+4 to put the selected area into your clipboard. You can then paste that into the google doc.

You will need to make triangle, rectangle, and circle functions based on the square function below. They should have all the same attributes, including the optional parameters, except rectangles have length & width instead of side and circle will have radius instead of side.

If the variable name you used for your turtle is different from the one below, hit cmd+R in pycharm to find and replace all instances of my turtle's name with your turtle's name.

Starter code: 
https://gist.github.com/gshorrSPHS/f855fba4f711b7607891d7c4054c794c


Using the above as a guide, make the following functions:
triangle  with a length to make an equilateral triangle with the x,y being in the top left corner. Turn right.
rectangle with a length and width and the x,y coordinate being the top left corner just like the square. length is left/right. width is up/down. Turn right.
circle with a radius and the x,y coordinate being the center of the circle. Circle does not need the optional angle parameter. Just set the heading to 0 to begin with. To make the x,y the center of the circle, you will have to shift the whole circle down by the value of the radius. To do that, when you call your goto function, instead of goto(x,y), it needs to be goto(x, y-radius).
To test if your code works:
# background
square(-600, 600, 1200, fillcolor="black")

# moon
circle(350, 350, 50, fillcolor="yellow", color="yellow")
circle(330, 350, 40, fillcolor="black", color="black")

# house (the door is currently floating. that is creepy. please fix it so that it is at ground level)
square(-100,100, 200, fillcolor="blue", color="blue")
triangle(100, 100, 200, fillcolor="brown", color="black", pensize=2, angle=180)
rectangle(-25, -10, 50, 90, fillcolor="brown")
Created by Garrett Shorr: Friday, November 7 1:42 PM

Due:

Post Completed Fiction Links Here in Google Classroom

Post Completed Fiction Links Here

When you are done, post your sandbox run link below, then play each other's games. You can leave positive, respectful feedback, and if you encounter a bug, respectfully describe what you were doing when you encountered it.
Created by Garrett Shorr: Wednesday, November 5 1:47 PM

Due:

Python with Turtle Vocabulary in Google Classroom

Python with Turtle Vocabulary

Mark the assignment complete if you have finished the handout. Nothing to submit otherwise.


Definitions:
module: python code from another file you can import & run
           AKA library

object: something that has attributes (ex: x,y, color, heading) & functions (ex: forward, left)

function: set of steps programs execute
has () next to it.   ex: print(), input("name?")

argument: goes inside (). info someone using the function enters to make it work.         ex:   raphael.fd(100)  raphael is the object, fd is the function, 100 is the argument

parameter: when defining a function, it's the variable to store the info provided as an argument.  ex:   def fd(distance):   distance is the parameter. if raphael.fd(100) is called, 100 would be stored in the parameter variable distance.

return: ends the function & sends back the value after it
          not all functions return things. print didn't. input did.
Created by Garrett Shorr: Friday, October 31 3:18 PM

Due:

Interactive Fiction Final Submission in Google Classroom

Interactive Fiction Final Submission

Due end of class on Monday 10/27 at 2:05pm. Don't submit until then.

Your stories will get posted two places:
Paste a link to your sandbox into a google doc and submit it here.
TBD for the second one
You should have in your stories the following:

work that represents an appropriate investment of effort relative to the amount of class time given
at least 4 decisions
custom line wrapping using \n (Example here: https://codehs.com/sandbox/mistershorr/line-wrapping)
color
delays
If you find yourself with extra time, add some ASCII art! The linewrapping codehs link above also has a demo for how to include ASCII art. Here's a site where you can draw your own: https://fsymbols.com/draw/
Created by Garrett Shorr: Thursday, October 23 1:53 PM

Due:

Intro to Python Review in Google Classroom

Intro to Python Review

Created by Garrett Shorr: Friday, November 7 4:52 AM

Due:

Interactive Fiction Part III  in Google Classroom

Interactive Fiction Part III

Take your story and start breaking it up into smaller scenes to fit the interactive nature of the
story. Include the text of the questions you will ask to give the player choices and what choices
are acceptable. Make a separate google doc for this or add it to the bottom of the original story
google doc.  Example follows.


Original Story Example:
You find yourself in a forest and you don't know who you are or why you are here. You see a path
heading off to the west and a note on the ground next to you. You pick up the note and read it, eyes
growing wide, and immediately start running down the path to the west.

Flowchart Version is attached (from Part II)

Broken up into a scene format:

Scene Number: Title
Description
Question to Player [choice1, choice2, etc...]
[choice 1]: Text response for picking this choice
result: which scene you go to or if the game ends here
[choice 2]: Text response for picking this choice
result: which scene you go to or if the game ends here
etc...


Scene 1: Forest
You find yourself in a forest and you don't know who you are or why you are here. You see a path
heading off to the west and a note on the ground next to you.
What do you want to do? [read note, go west, go back to sleep]


[read note] : Run! Run west now! Go! Don't delay! You are in grave danger! Why are you still reading
this note? Start running! Go! Hurry up!
result : Stay in Scene 1


[go west] : You bolt west as fast as you can!
result : Start Scene 2


[go back to sleep] : You go back to sleep. You wake up feeling hot breath on your face. You open your
eyes and the last thing you ever see is the gaping maw of a tyrannosaur. *Chomp*
result: Game over. Try again?


Continue this style for each scene in your story. 

=======================================================================================

If you are done with this, make a Python 3 sandbox project on codehs.com and make sure that your scenes' text isn't too long. General guideline is to keep your lines to roughly 80 - 90 characters.

Example for making sure no text is too long:


If the text looks like this:


You find yourself in a forest and you don't know who you are or why you are here. You see a path heading off to the west and a note on the ground next to you.


It will automatically wrap in a word processor at the end of a word. But in python, we will want to put in manual line breaks so the text isn't too wide because it can wrap in the middle of a word.


To make a line break, you use the symbol: \n


In the python project, I would write:


print("You find yourself in a forest and you don't know who\n\
you are or why you are here. You see a path heading\n\
off to the west and a note on the ground next to you.")


Wherever there's a \n, it will skip down to the next line and continue from there. Run the sandbox and see the output wrapping appropriately. The \ at the end of those first two lines are python syntax to allow for the code to continue onto the next line.

Full example in codehs here: https://codehs.com/sandbox/mistershorr/wrapping
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Interactive Fiction Part II in Google Classroom

Interactive Fiction Part II

You will be making a flowchart of the decision space of your interactive fiction story using https://drawings.google.com.

1. Think about all the places in your story where the main character could have made a choice. Decide what happens if they choose to do something that's not part of your original plot. The choice could cause the story to end there, merely delay the plot, or cause a whole new plot branch to develop.


2. Create a google drawing using flowchart symbols to map out the decision-space of your interactive fiction. See example attached.
Remember that decisions are represented by diamonds rectangles are for story exposition without choices, and rounded rectangles for starting and ending points (terminators). See attached screenshot for example.


Submit your google drawing. You'll have time to work on this on Monday 10/13.


If you run out of room in your google drawing for your flowchart:

Select All: CMD + A
Cut: CMD + X
File->Page Setup
     Change the size, Click Apply
Paste: CMD + V

You can now use the magnifying class in the format bar to change the zoom.
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Interactive Fiction Part I in Google Classroom

Interactive Fiction Part I

May work with a partner, but both must contribute to the story writing and computer programming. Story should be a little longer and more complex than suggested below for someone working solo. Both should submit the form for this assignment, even though the content will be duplicated.

In a google doc answer the following:

Part 1:

1. All stories start with a plot. Read through The Seven Basic Plots. Choose a plot for your story and write it it down. https://en.wikipedia.org/wiki/The_Seven_Basic_Plots

2. Choose a setting and write it down.  https://en.wikipedia.org/wiki/Setting_(narrative)

3. Choose the character your user will play as, you may also have other characters your user interacts with. Write down your characters.

4. Now the fun part! Using your plot, setting and characters write a short story. Here is a suggestion from author Rebecca Makkai.

"Most stories we tell in real life are under 500 words. You're at a party and suddenly you have the floor. You throw out your little story like a grenade. 'Once I knew a guy who...' And if you have any social graces at all, you probably keep it under 500 words. So my advice would be this: Just tell a story, quick while they're still listening."

Reminders:
Keep it school appropriate. 
Fan fiction is okay but no direct adaptation of existing stories.


Fill out the google form that's attached once you've done everything above in a google doc.

Due during class Thursday.

Mark this assignment complete after submitting the form.
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Threats & Safety Notes in Google Classroom

Threats & Safety Notes

Submit your notes you took from everyone's presentations here after all presentations are complete on Tuesday.
Created by Garrett Shorr: Friday, November 7 4:52 AM

Due:

Part III: Threats & Safety in Google Classroom

Part III: Threats & Safety

Submission: One person per group submits the slides. Make sure
your script is on the speaker notes for each slide. Make sure all the
names of members of your group are on the first slide.

Make at least 3 slides. Could be up to 6. Presentations should be between 2 to 3 minutes. Use good presentation practices as described in Slide Basics. Make sure to address the questions listed next to your topic. Make a google doc and write your script that you will speak as you present your slides. Put each portion of your google doc script into the speaker notes section of each of your google slides.

Summarize, paraphrase. If you are using a link provided, you don't have to cite anything. If you are using additional information, please cite it.

If you were assigned a virus, answer these questions:

1.Who/what does it affect? Include major victim organizations if applicable.

2. How does it get installed?

3. What vulnerability did it exploit in the platform?

4. What was the timeline/did it get fixed & how?

5. What were the consequences (Costs, injuries, ec)?

Topics

Phishing - https://www.ibm.com/think/topics/phishing What is it? What do the scammers want? Bulk vs Spear

Phishing - https://www.ibm.com/think/topics/phishing BEC, Smishing, Vishing, Social Media Phishing

Phishing
-  https://www.ibm.com/think/topics/phishing What is it? What do the
scammers want? AI Phishing, Quishing, Hybrid Vishing

Phishing -
https://www.ibm.com/think/topics/phishing Signs of a phishing attempt
(find some real world examples in addition to the signs listed), Phising
prevention: security awareness, training, organizational policies


Malware
- https://www.ibm.com/think/topics/malware What is it? Why do
cybercriminals develop it? How many attacks yearly? What systems are
vlunerable? Who is being targeted more frequently now?

Malware -
https://www.ibm.com/think/topics/malware Botnets, cryptojackers,
fileless malware, worms. Explain what they are and give examples.

Malware
- https://www.ibm.com/think/topics/malware Trojan Horses, Rootkits,
Scareware, Spyware, Adware. What are they and give an example for each.

Malware
- https://www.ibm.com/think/topics/malware  Attack vectors: Social
engineering scams, System vulnerabilities (look up Akira Camera
Ransomware for an IoT related example), Removable media

Malware -
https://www.ibm.com/think/topics/malware  Attack vectors: Fake software
& file downloads (look up Rogue Security Software for an example),
Malvertising, User Devices, Supply Chain Attacks

Public Wifi - https://media.defense.gov/2021/Jul/29/2002815141/-1/-1/0/CSI_SECURING_WIRELESS_DEVICES_IN_PUBLIC.PDF
Why is it dangerous to connect to public wifi? Even if it is password protected? Encrypted? What's an evil twin?
What is the danger? If you have to use public wifi, what are best practices?


Good Passwords - https://cybersecuritynews.com/nist-rules-password-security/
                  What are the recommendations? How are these different from what you see on most websites?

Password Safety - https://ssd.eff.org/module/creating-strong-passwords
                  Password reuse, password managers, low-tech option, security questions

Password Safety - https://ssd.eff.org/module/creating-strong-passwords
                  Multifactor Authentication, One Time Passwords, Strong passwords using dice


Firewalls - https://www.ibm.com/docs/en/i/7.1.0?topic=options-firewalls (what are they, how do they work, what they can't protect)
 (how to turn them on for mac & windows)

Windows built-in security (windows defender), Mac built-in security (https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8/web)
What are virus signatures and why should definitions be updated regularly?

ransomware attacks on hospitals & colonial pipeline - https://www.ibm.com/think/insights/when-ransomware-kills-attacks-on-healthcare-facilities  What are the effects/costs? What vulnerabilities did they exploit? How is it being mitigated now?


Viruses: 
iloveyou virus

ZeroAccess rootkit

Stuxnet worm
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Part II: Avoiding Social Engineering Scams in Google Classroom

Part II: Avoiding Social Engineering Scams

Answer the questions using the links provided in the document. Use a different color when writing your answers. Due partly through class on Tuesday.
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Part I: Behaving Ethically in Google Classroom

Part I: Behaving Ethically

You may talk with a partner and work together to answer the questions, but you should submit your own individual document.
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

URLs & Cookies Wrap-up in Google Classroom

URLs & Cookies Wrap-up

https://docs.google.com/forms/d/e/1FAIpQLScHks5IM4cd3kq8h07026fvOcTYkdnST4wSgJ26HHnohZTxzA/viewform?usp=dialog

For anything you missed, look up what mistakes you made and explain it in a google doc. 

Explain:
what you thought it was
why you thought it
what the actual answer is
why it is the correct answer
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Internet Basics Questions in Google Classroom

Internet Basics Questions

https://docs.google.com/forms/d/1SnhK4LTIxYL4tsaCi8O9tfX_vDKrh2yzuclF77GGo24/preview

Use your notes to fill out the form and then mark this assignment as complete.
Created by Garrett Shorr: Friday, November 7 6:18 PM

Due:

Hobby Website Submission & Requirements in Google Classroom

Hobby Website Submission & Requirements

Due end of class on Tuesday 9/16.

Requirements Checklist :
Class time is used well. Lack of depth, polish, or detail will not receive full credit if effort is not made in class and time is spent playing games, even if minimum requirements below are met.
Have at least 3 individual pages + 1 bibliography/sources page (or sources can be at the bottom of each page without a separate page)
Follow correct HTML & CSS structure and conventions
      * correct HTML skeleton (one head, one body tag. style tag in the head tag. repeated css used in every page style tag is moved to the style.css, etc, no repeat css tags in the same place (i.e. don't have multiple p { } for different attributes and instead put them all in the same p { } )
Have a navigation menu to link them together
      * Try clicking each link on the navigation menu FROM EACH PAGE to make sure you don't have any broken links and all destinations are correct
Include images (anything you find online that you didn't make yourself should be credited on the bibliography page which is a list of links)
Have CSS formatting site-wide on the style.css page
Have at least 1 custom font
Each page should have its own title (look in the head tag for the title tag)
Each page should have a favicon
Have at least one CSS attribute we didn't go over together in class that you found on the web. If you need help finding something not too challenging, I'd recommend going to: https://www.w3schools.com/css/default.asp and looking at the navigation menu on the left and looking at CSS Text->Decoration or Shadow, CSS Fonts->Font Style, or CSS Borders.
Check your contrast for your text to see if it is legible: https://color.adobe.com/create/color-contrast-analyzer
When complete, submit three things IN A GOOGLE DOC (please don't submit the links directly, it's kind of annoying on the teacher side of google classroom):
The link to the code (looks like this: https://favicons-and-titles-10686146.codehs.me/index.html)
The link to your website (looks like this: https://codehs.com/sandbox/mistershorr/favicons-and-titles)
Write what CSS attribute you used that we didn't cover explicitly in class. Explain where you used it and what it does.
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Hobby Website Prep in Google Classroom

Hobby Website Prep

1. Pick a hobby that you enjoy. Remember as you decide this is something that you would feel comfortable showing to visiting administrators or the new superintendent. 

2. Pick 3 topics within that hobby. 
Example: If your hobby is cooking, you could choose 1) why you got into cooking  2) your favorite dishes to make and 3) what dishes you haven't made but want to. 
Example: If your hobby is playing basketball, you could choose 1) general information about the rules of basketball 2) the positions and their responsibilities 3) general strategies on offense and defense

3) For each of the topics you selected, write at least a few paragraphs about them. Go into detail. If you use information from the internet, cite each source. Keep track of the URLs and include those links. Include relevant pictures and videos. Again keep track of the URLs for everything

Don't start working on any code for the website yet. This is all about gathering the information that will be in it.
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Top 5 List Submission in Google Classroom

Top 5 List Submission

Due Friday near the end of class.

Requirements:

ordered/unordered list of 5 things
5 images
5 hyperlinks
change at least one font color somewhere
change at least one font somewhere
change one other attribute we didn't learn about yet somewhere (look something up in w3schools like css text w3schools)
If you finish early, work on getting the content for your hobby website.

Submission Instructions:
Provide the following two things in a google doc:
Link to your website which you can get when you open your site in a new window instead of just looking at the preview pane on code hs (see screenshots for open in new window and url below)
A description of and the code for what new css attribute you learned
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Working with navigation bars in Google Classroom

Working with navigation bars

You can find the starter code here: https://codehs.com/sandbox/mistershorr/intro-to-nav-bars 
Click on the button near the top that says Fork and it will make a copy of the project in your own sandbox.

Watch the attached 20 minute lecture video from last year and follow along. If you are stuck, ask either the TA/academic coach or classmates. Please be helpful to each other!

Due at the end of class.

1. Change the text color of the links

2. Change the background color of the entire nav bar

3. Change the hover color

4. Change the active color

5. Change the font size of the links

6. Make the reptiles page work

7. Take a screenshot while on the reptiles page hovering over the birds link and we will submit that.

To take a screenshot on a mac, use CMD + SHIFT + 4. The screenshot will go to the desktop.

When done, you can start working on your own website. If you haven't finished the prep work, finish that. I'm extending the deadline on that until Tuesday. Otherwise, you can use this template and alter it to make it work for your theme. However, make sure you change the file names of all the html files to match your hobby, as well as the corresponding links in each of the page navigation bars.
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Syllabus in Google Classroom

Syllabus

Please bring back the signed back page of the syllabus by 8/19
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

Top 5 List Prep in Google Classroom

Top 5 List Prep

*Choose One:

Top 5 Things you did over the summer

Top 5 Favorite animals

Top 5

*Do the following in a google doc
1. Pick the list topic
2. List your 5 things
3. Find an image representing each thing online along with a citation link (jpg or png format)
        a. google search the name of your animal or activity
       b. click on images
        c. when you find an image you like, click on it and then right click (or control-click) the preview and select open in new window/tab
     d. go to the new tab and hit command + s to save it.
     e. navigate to your top 5 list folder and hit save as long as the filetype is jpg, jpeg, png, or gif
      f. go back to the google images search and click the visit button to find the website you took the image from and paste that in your list as well
 
4. Find a website url (link) describing that thing
Created by Garrett Shorr: Thursday, October 16 3:17 PM

Due:

First Day Survey in Google Classroom

First Day Survey

Complete the attached survey and then mark this assignment complete.
Created by Garrett Shorr: Thursday, October 16 3:17 PM