Shorr 2024-25 PLTW CSP-Per 6 Assignments
- Instructor
- Mr. Garrett Shorr
- Term
- 2024-2025 School Year
- Department
- Mathematics
- Description
-
Upcoming Assignments
No upcoming assignments.
Past Assignments
Due:
Video 1 Part 1: https://www.youtube.com/watch?v=0gNauGdOkro (timestamps 0:00 to 8:20)
Questions for during part 1 of video 1:
1. In what ways did Marques describe using generative AIs as a tool?
2. What is the first danger Marques describes in using generative AIs? What were two examples of this?
For after the video:
Consider the following scenarios:
A. Amina is assigned to write a short persuasive essay on any topic of her choosing. She wanted to argue for holding the World Cup only in countries that don't have recent records of human rights abuses. So she asked a generative AI to list the pros and cons of holding the World Cup only in countries with good track records on human rights. After seeing several arguments for and against, she wrote her essay and submitted it.
B. Liam is given the same assignment. They didn't know what topic to write about, so they asked the AI to list 10 random topics. They saw climate change as a suggestion, and they asked the AI to list 10 topics within climate change. They saw "the role of the individual and collective action in addressing climate change" and decided arguing for more collective action would be a good topic. They did some more research on the topic, wrote their essay, and submitted it.
C. Arthur is on the swim team and he had a big meet the weekend before the persuasive essay was due. He earned A's in English every year and felt that he knew how to write a good persuasive essay if he had the time. He asked the generative AI to write an essay arguing for less homework in high school. He looked over the output, rewrote a couple of awkward sentences, and submitted it.
D. Ashley is assigned to solve a set of computer programming problems and is given two class periods to work on them. Much of class time is spent talking with friends rather than attempting the work. Her teacher attempts to redirect her and gives her hints on solving the first problem. She finishes the first problem and resumes socializing. Later, after the due date has passed, she realizes she doesn't want to have a bad grade on the assignment, and asks ChatGPT to solve each of the remaining problems. She turns in the now completed assignment.
3. For each of the scenarios above, address the following:
a. Did the student cross an ethical line? What specific action crossed the line? Why?
b. If they did cross an ethical line, what could they have done differently to behave ethically? Be specific. If you think they didn't cross a line, explain why and where you think that line is.
Video 1 Part 2: https://www.youtube.com/watch?v=0gNauGdOkro (timestamps 8:20 to 14:08)
Questions for during part 2 of video 1:
4. What are you consenting to do when you use Lensa or Avatar AI?
5. Whose consent has not been considered in the creation of these apps?
6. What is the loophole with the LAION-5B dataset?
Video 2: https://www.youtube.com/watch?v=DUwDqSY8StE&t=1s
For after the video:
7. Many artists are upset about AI generated art for a variety of reasons, but central to their concerns is their artwork being used in the training data for these AIs without their consent. Supporters of AI art often cite that this is no different from a human being inspired by existing art or training to draw or paint in someone's style. The rebuttal is that the AI can do this training many, many orders of magnitude faster than humans, as well as machines do not learn in the same way as humans, so the situations are incomparable.
a. Should artists explicitly have to consent to have their artwork used in AI training sets? Why or why not?
b. Some AI companies have acknowledged the potential issues and have provided a way for artists to opt-out, removing their art from the dataset. Is having the ability to opt-out the equivalent of consent? Why or why not?
Read this article about Nightshade: https://www.technologyreview.com/2023/10/23/1082189/data-poisoning-artists-fight-generative-ai/
8. Describe what Nightshade does. How does it "poison" the generative AI model?
9. Why do Nightshade's creators believe this tool will help protect artists? Do you believe this is an ethical approach? Why or why not?
Links to further reading/watching on the topic:
https://glaze.cs.uchicago.edu/ - tool artists are using to protect their art (free to use)
https://www.technologyreview.com/2022/09/16/1059598/this-artist-is-dominating-ai-generated-art-and-hes-not-happy-about-it/
https://www.wired.com/story/ai-is-already-taking-jobs-in-the-video-game-industry/
https://www.youtube.com/watch?v=5Viy3Cu3DLk - SamDoesArts video
Questions for during part 1 of video 1:
1. In what ways did Marques describe using generative AIs as a tool?
2. What is the first danger Marques describes in using generative AIs? What were two examples of this?
For after the video:
Consider the following scenarios:
A. Amina is assigned to write a short persuasive essay on any topic of her choosing. She wanted to argue for holding the World Cup only in countries that don't have recent records of human rights abuses. So she asked a generative AI to list the pros and cons of holding the World Cup only in countries with good track records on human rights. After seeing several arguments for and against, she wrote her essay and submitted it.
B. Liam is given the same assignment. They didn't know what topic to write about, so they asked the AI to list 10 random topics. They saw climate change as a suggestion, and they asked the AI to list 10 topics within climate change. They saw "the role of the individual and collective action in addressing climate change" and decided arguing for more collective action would be a good topic. They did some more research on the topic, wrote their essay, and submitted it.
C. Arthur is on the swim team and he had a big meet the weekend before the persuasive essay was due. He earned A's in English every year and felt that he knew how to write a good persuasive essay if he had the time. He asked the generative AI to write an essay arguing for less homework in high school. He looked over the output, rewrote a couple of awkward sentences, and submitted it.
D. Ashley is assigned to solve a set of computer programming problems and is given two class periods to work on them. Much of class time is spent talking with friends rather than attempting the work. Her teacher attempts to redirect her and gives her hints on solving the first problem. She finishes the first problem and resumes socializing. Later, after the due date has passed, she realizes she doesn't want to have a bad grade on the assignment, and asks ChatGPT to solve each of the remaining problems. She turns in the now completed assignment.
3. For each of the scenarios above, address the following:
a. Did the student cross an ethical line? What specific action crossed the line? Why?
b. If they did cross an ethical line, what could they have done differently to behave ethically? Be specific. If you think they didn't cross a line, explain why and where you think that line is.
Video 1 Part 2: https://www.youtube.com/watch?v=0gNauGdOkro (timestamps 8:20 to 14:08)
Questions for during part 2 of video 1:
4. What are you consenting to do when you use Lensa or Avatar AI?
5. Whose consent has not been considered in the creation of these apps?
6. What is the loophole with the LAION-5B dataset?
Video 2: https://www.youtube.com/watch?v=DUwDqSY8StE&t=1s
For after the video:
7. Many artists are upset about AI generated art for a variety of reasons, but central to their concerns is their artwork being used in the training data for these AIs without their consent. Supporters of AI art often cite that this is no different from a human being inspired by existing art or training to draw or paint in someone's style. The rebuttal is that the AI can do this training many, many orders of magnitude faster than humans, as well as machines do not learn in the same way as humans, so the situations are incomparable.
a. Should artists explicitly have to consent to have their artwork used in AI training sets? Why or why not?
b. Some AI companies have acknowledged the potential issues and have provided a way for artists to opt-out, removing their art from the dataset. Is having the ability to opt-out the equivalent of consent? Why or why not?
Read this article about Nightshade: https://www.technologyreview.com/2023/10/23/1082189/data-poisoning-artists-fight-generative-ai/
8. Describe what Nightshade does. How does it "poison" the generative AI model?
9. Why do Nightshade's creators believe this tool will help protect artists? Do you believe this is an ethical approach? Why or why not?
Links to further reading/watching on the topic:
https://glaze.cs.uchicago.edu/ - tool artists are using to protect their art (free to use)
https://www.technologyreview.com/2022/09/16/1059598/this-artist-is-dominating-ai-generated-art-and-hes-not-happy-about-it/
https://www.wired.com/story/ai-is-already-taking-jobs-in-the-video-game-industry/
https://www.youtube.com/watch?v=5Viy3Cu3DLk - SamDoesArts video
Due:
Modifying the code of a tree fractal...
# goals pick 4
# make a tree that has fewer branches, take a screenshot. note the code you changed to do that
# make a tree that has more branches, take a screenshot. note the code you changed to do that
# make a tree that's really narrow and tall, take a screenshot. note the code you changed to do that
# make a tree that's so wide it grows underground and through itself. note the code you changed to do that.
# make each branch a random color, take a screenshot. note the code you changed to do that
# add a 3rd branch to each section of the tree, take a screenshot. note the code you changed to do that
Here's the starter code for fractals.py:
# https://towardsdatascience.com/creating-fractals-with-python-d2b663786da6
import turtle
MINIMUM_BRANCH_LENGTH = 5
def build_tree(t, branch_length, shorten_by, angle):
if branch_length > MINIMUM_BRANCH_LENGTH:
t.forward(branch_length)
new_length = branch_length - shorten_by
t.left(angle)
build_tree(t, new_length, shorten_by, angle)
t.right(angle * 2)
build_tree(t, new_length, shorten_by, angle)
t.left(angle)
t.backward(branch_length)
tree = turtle.Turtle()
tree.hideturtle()
tree.speed(0)
tree.setheading(90)
tree.color('green')
build_tree(tree, 50, 5, 30)
turtle.mainloop()
# goals pick 4
# make a tree that has fewer branches, take a screenshot. note the code you changed to do that
# make a tree that has more branches, take a screenshot. note the code you changed to do that
# make a tree that's really narrow and tall, take a screenshot. note the code you changed to do that
# make a tree that's so wide it grows underground and through itself. note the code you changed to do that.
# make each branch a random color, take a screenshot. note the code you changed to do that
# add a 3rd branch to each section of the tree, take a screenshot. note the code you changed to do that
Here's the starter code for fractals.py:
# https://towardsdatascience.com/creating-fractals-with-python-d2b663786da6
import turtle
MINIMUM_BRANCH_LENGTH = 5
def build_tree(t, branch_length, shorten_by, angle):
if branch_length > MINIMUM_BRANCH_LENGTH:
t.forward(branch_length)
new_length = branch_length - shorten_by
t.left(angle)
build_tree(t, new_length, shorten_by, angle)
t.right(angle * 2)
build_tree(t, new_length, shorten_by, angle)
t.left(angle)
t.backward(branch_length)
tree = turtle.Turtle()
tree.hideturtle()
tree.speed(0)
tree.setheading(90)
tree.color('green')
build_tree(tree, 50, 5, 30)
turtle.mainloop()
Due:
For everyone in class on Monday, it is due at the end of the period.
1. Read the attached excerpt from chapter 1 of Janelle Shane's "You Look Like a Thing and I Love You". (Start with the paragraph right above the section SOMETIMES ITS RULES ARE BAD)
In a Google Doc...
2. Generally reflect on what you've read. What new things did you learn? What new questions did it inspire in you? Write at least 4 statements. 2 of the statements should start with "I noticed..." and 2 more statements should start with "I wonder..."
3. Think about the AI focusing on the rolling green hills when learning how to identify sheep. What's something else that an AI might learn to recognize incorrectly from an image? What mistake do you anticipate it making?
4. Search the internet for real instances of AIs going wrong. Pick one that you find interesting.
a. Describe the situation, and then think about the Four Signs of AI Doom you read about from the excerpt of chapter 1.
b. Which warning sign(s) do you think, in hindsight, applied to the problem? Why? Cite specific sentences from the reading to support why the warning sign(s) apply. Example: I believe that falls under the warning sign "The problem is Too Hard" because involves understanding humor. According to the reading, "It's nearly impossible for AI to understand the nuances of jokes or tone or cultural references."
If you have some extra time, feel free to browse some of Janelle Shane's blog about AI misadventures:
https://www.aiweirdness.com/
Due:
Video 1: https://www.youtube.com/watch?v=qABFYiYqXSU (if you need the transcript to translate, you can scroll down to the description, click show transcript, then highlight the whole transcript and translate through your preferred website)
Timestamps we will be watching together:
0:00 - 10:40
14:19 - 23:59
31:06 - 37:00
Questions to go with that video:
1. what advantage did computers provide in working with fractals?
2. what is self-similarity?
3. find 3 fractal patterns (2 at least not seen in the video) and describe how they are self-similar (name and picture)
4. find 3 things that fractals can be used to model to help us gain a better understanding
Second video (What's so special about the Mandelbrot Set? - Numberphile): https://www.youtube.com/watch?v=FFftmWSzgmk
Questions to go with that video:
5. what's the equation that's the basis of the mandlebrot set?
6. what do the black areas mean in the mandlebrot set?
7. what do the non-black colors represent in the mandlebrot set?
List of fractals: https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension
Mandlebrot Set Website: https://mandel.gart.nz/#/
Fractal Viewer Software for Mac, Windows, & Linux: https://xaos-project.github.io/
8. find 3 locations that look beautiful/cool and record their coordinates and zoom. Give it a name like the existing ones (e.g. seahorse valley, julia island). Take screenshots as well and click the permalink button to get a link for that location & color set.
Put all the answers 1-8 in a google doc and submit that.
Timestamps we will be watching together:
0:00 - 10:40
14:19 - 23:59
31:06 - 37:00
Questions to go with that video:
1. what advantage did computers provide in working with fractals?
2. what is self-similarity?
3. find 3 fractal patterns (2 at least not seen in the video) and describe how they are self-similar (name and picture)
4. find 3 things that fractals can be used to model to help us gain a better understanding
Second video (What's so special about the Mandelbrot Set? - Numberphile): https://www.youtube.com/watch?v=FFftmWSzgmk
Questions to go with that video:
5. what's the equation that's the basis of the mandlebrot set?
6. what do the black areas mean in the mandlebrot set?
7. what do the non-black colors represent in the mandlebrot set?
List of fractals: https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension
Mandlebrot Set Website: https://mandel.gart.nz/#/
Fractal Viewer Software for Mac, Windows, & Linux: https://xaos-project.github.io/
8. find 3 locations that look beautiful/cool and record their coordinates and zoom. Give it a name like the existing ones (e.g. seahorse valley, julia island). Take screenshots as well and click the permalink button to get a link for that location & color set.
Put all the answers 1-8 in a google doc and submit that.
Due:
Submit the following:
Your python file
A screenshot of your game over screen.
I will also come around and you will show me the working game with the score and timer correctly showing and a game over message at the end.
Your python file
A screenshot of your game over screen.
I will also come around and you will show me the working game with the score and timer correctly showing and a game over message at the end.
Due:
starter code: https://gist.github.com/GarrettShorr/0f84aadaf29938770ee6a179ea8a99d0
Submit the following:
a screenshot of the completed picture
your modulus_towers.py python file
######################## ASSIGNMENT #############################
# Put your code for each part below the related comment
# 1. make the tower rotate through 3 colors all the way up
# 2. make a 2nd and 3rd tower to the right of the first that
# also rotates through 4 and 5 colors respectively.
# 3. Make a 4th tower to the right of the others. However,
# this one is a pyramid of random colors.
# Hint: in the loop, shorten the width and adjust the start
# location
#
# BONUS:
# 1. Make the buildings have an outline (1 pixel of a different
# color all the way around them).
# 2. Make an Hourglass. (think pyramid, but with an inverse
# pyramid on top of it) Give it an outline. Make it look like
# sand is dripping out of it and.
#
# ######
# # #
# #...#
# #.#
# #
# #.#
# # . #
# #.....#
# #####
#
#################################################################
Submit the following:
a screenshot of the completed picture
your modulus_towers.py python file
######################## ASSIGNMENT #############################
# Put your code for each part below the related comment
# 1. make the tower rotate through 3 colors all the way up
# 2. make a 2nd and 3rd tower to the right of the first that
# also rotates through 4 and 5 colors respectively.
# 3. Make a 4th tower to the right of the others. However,
# this one is a pyramid of random colors.
# Hint: in the loop, shorten the width and adjust the start
# location
#
# BONUS:
# 1. Make the buildings have an outline (1 pixel of a different
# color all the way around them).
# 2. Make an Hourglass. (think pyramid, but with an inverse
# pyramid on top of it) Give it an outline. Make it look like
# sand is dripping out of it and.
#
# ######
# # #
# #...#
# #.#
# #
# #.#
# # . #
# #.....#
# #####
#
#################################################################
Due:
Classwork Instructions:
If you were having trouble getting started with the art, I have provided starter code for you here that has all of the shape functions completed: https://gist.github.com/gshorrSPHS/186c2abc1b87d25b5d2618d481f76c2d
Submission Instructions:Submit a google doc with TWO things in it:
1. Your full code.
2. A screenshot of your finished picture.
To take a screenshot:
Take a screenshot by pressing CMD+SHIFT+4
Use the crosshairs to click and drag to select the area you want to screenshot
The screenshot appears on the desktop with the title "Screenshot on" and then a timestamp.
Rename the file by clicking on the file, pressing return once, and then giving it a relevant name that describes your drawing with .png at the end
If you were having trouble getting started with the art, I have provided starter code for you here that has all of the shape functions completed: https://gist.github.com/gshorrSPHS/186c2abc1b87d25b5d2618d481f76c2d
Submission Instructions:Submit a google doc with TWO things in it:
1. Your full code.
2. A screenshot of your finished picture.
To take a screenshot:
Take a screenshot by pressing CMD+SHIFT+4
Use the crosshairs to click and drag to select the area you want to screenshot
The screenshot appears on the desktop with the title "Screenshot on" and then a timestamp.
Rename the file by clicking on the file, pressing return once, and then giving it a relevant name that describes your drawing with .png at the end
Due:
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.
Code for a square:
# by default, pensize will be 1. If I don't specify it, it will stay 1
# default color is black, default fill is empty string which means no fill
# default angle is 0 which is east
def square(x, y, side, color="black", pensize=1, angle=0, fill_color=""):
koopa.penup()
koopa.goto(x,y)
koopa.pendown()
koopa.pensize(pensize)
koopa.pencolor(color)
koopa.setheading(angle)
# != means not equal to
if fill_color != "":
koopa.fillcolor(fill_color)
koopa.begin_fill()
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
if fill_color != "":
koopa.end_fill()
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 bottom left corner. Turn right.
rectangle with a length and width and the x,y coordinate being the top left corner just like the square.
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, fill_color="black")
# moon
circle(350, 350, 50, fill_color="yellow", color="yellow")
circle(330, 350, 40, fill_color="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, fill_color="blue", color="blue")
triangle(100, 100, 200, fill_color="brown", color="black", pensize=2, angle=180)
rectangle(-25, -10, 50, 90, fill_color="brown")
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.
Code for a square:
# by default, pensize will be 1. If I don't specify it, it will stay 1
# default color is black, default fill is empty string which means no fill
# default angle is 0 which is east
def square(x, y, side, color="black", pensize=1, angle=0, fill_color=""):
koopa.penup()
koopa.goto(x,y)
koopa.pendown()
koopa.pensize(pensize)
koopa.pencolor(color)
koopa.setheading(angle)
# != means not equal to
if fill_color != "":
koopa.fillcolor(fill_color)
koopa.begin_fill()
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
koopa.forward(side)
koopa.right(90)
if fill_color != "":
koopa.end_fill()
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 bottom left corner. Turn right.
rectangle with a length and width and the x,y coordinate being the top left corner just like the square.
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, fill_color="black")
# moon
circle(350, 350, 50, fill_color="yellow", color="yellow")
circle(330, 350, 40, fill_color="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, fill_color="blue", color="blue")
triangle(100, 100, 200, fill_color="brown", color="black", pensize=2, angle=180)
rectangle(-25, -10, 50, 90, fill_color="brown")
Due:
Some definitions:
module: python code from another file that can be run in your program. it's what you import.
object: something that has attributes and functions
function: a set of steps that a program can execute. You can tell something is a function by seeing () next to it.
argument: arguments go inside parentheses. These are the information that someone using the function enters to make the function work. If a function doesn't need any information, the parentheses are empty and we say it has no arguments.
ex: painter.fd(100) --> 100 is the argument. the fd function needs to know how far forward to go.
parameter: when writing a function, we set up variables that will store the information that the user enters to make the function work.
ex: def fd(distance) --> distance is the parameter that will store the value of how far forward a turtle will go. When we entered 100 as the argument above, that value 100 is stored in the parameter distance.
Common datatypes:
String: Text in quotes like "red"
Integer: Whole numbers, positive, negative, or zero
Float: Numbers with decimals
List: A group of values contained in []. Ex: [10, 20, 30] or [“dog”, “cat”]
Tuple: Similar to a list but can’t be changed once created. Contained in (). Example: (10, 20, 30)
Copy the code and paste it starting at line 1. Call the file terminology.py
# imports the turtle library
import turtle as trtl
# creates a screen object and assigns it to the wn variable
window = trtl.Screen()
window.colormode(255)
# creates a Turtle object and assigns it to the painter variable
painter = trtl.Turtle()
painter.speed(5)
painter.color("red")
painter.forward(100)
painter.left(120)
painter.fd(100)
painter.lt(120)
painter.forward(100)
painter.setheading(0)
painter.penup()
painter.goto(200, 300)
painter.pendown()
painter.color((0, 100, 255))
painter.pensize(10)
painter.fd(50)
# keeps the window open when we run the code (bottom of your code)
window.mainloop()
module: python code from another file that can be run in your program. it's what you import.
object: something that has attributes and functions
function: a set of steps that a program can execute. You can tell something is a function by seeing () next to it.
argument: arguments go inside parentheses. These are the information that someone using the function enters to make the function work. If a function doesn't need any information, the parentheses are empty and we say it has no arguments.
ex: painter.fd(100) --> 100 is the argument. the fd function needs to know how far forward to go.
parameter: when writing a function, we set up variables that will store the information that the user enters to make the function work.
ex: def fd(distance) --> distance is the parameter that will store the value of how far forward a turtle will go. When we entered 100 as the argument above, that value 100 is stored in the parameter distance.
Common datatypes:
String: Text in quotes like "red"
Integer: Whole numbers, positive, negative, or zero
Float: Numbers with decimals
List: A group of values contained in []. Ex: [10, 20, 30] or [“dog”, “cat”]
Tuple: Similar to a list but can’t be changed once created. Contained in (). Example: (10, 20, 30)
Copy the code and paste it starting at line 1. Call the file terminology.py
# imports the turtle library
import turtle as trtl
# creates a screen object and assigns it to the wn variable
window = trtl.Screen()
window.colormode(255)
# creates a Turtle object and assigns it to the painter variable
painter = trtl.Turtle()
painter.speed(5)
painter.color("red")
painter.forward(100)
painter.left(120)
painter.fd(100)
painter.lt(120)
painter.forward(100)
painter.setheading(0)
painter.penup()
painter.goto(200, 300)
painter.pendown()
painter.color((0, 100, 255))
painter.pensize(10)
painter.fd(50)
# keeps the window open when we run the code (bottom of your code)
window.mainloop()
Due:
Due end of class on Tuesday 10/22. 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://replit.com/@garrettshorr/super-long-text#main.py)
color
delays
emoji OR ascii art
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://replit.com/@garrettshorr/super-long-text#main.py)
color
delays
emoji OR ascii art
Due:
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.
Due:
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. This will be due end of class on Thursday.
=======================================================================================
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.
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.
You find yourself in a forest and you don't know who\nyou are or why you are here. You see a\n path heading off
to the west and a note on the\nground next to you.
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\nyou are or why you are here. You see a\n path
heading off to the west and a note on the\nground 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.
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. This will be due end of class on Thursday.
=======================================================================================
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.
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.
You find yourself in a forest and you don't know who\nyou are or why you are here. You see a\n path heading off
to the west and a note on the\nground next to you.
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\nyou are or why you are here. You see a\n path
heading off to the west and a note on the\nground 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.
Due:
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 should be able to finish this today (Tue Oct 8) but you can turn it in on Thursday Oct 10.
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.
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 should be able to finish this today (Tue Oct 8) but you can turn it in on Thursday Oct 10.
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.
Due:
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.
Fill out the google form that's attached once you've done everything above in a google doc.
Due during class Tuesday.
Mark this assignment complete after submitting the form.
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.
Fill out the google form that's attached once you've done everything above in a google doc.
Due during class Tuesday.
Mark this assignment complete after submitting the form.
Due:
Answer the questions using the links provided in the document. Use a different color when writing your answers. Due partly through class on Thursday.
Due:
You will be assigned a virus or slide(s) from the pdfs below.
If you were assigned a virus, answer these in a google doc and be ready to present that to the class:
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?
If you were assigned one or more slides:
Write a 30 - 60 second narration of the slide in a google doc. You can say the bullet points but then do additional research to add context to it. Find specific examples.
Write out the speaker notes in a google doc that you can read from when I have the slide on the screen.
Each person should submit their google doc and CITE YOUR SOURCES. If any section of your text is fully copied, it should be in quotes to establish that. Otherwise, summarize and cite.
Dylan: stuxnet (worm)
Hendrix : iloveyou virus
Samuel Yu: trojan horse viruses in general. specifically: remcos
Sebastian: Bonzibuddy
Alan: Rootkit in general. specifically: ZeroAccess
Jae: Ransomware in genreal. specifically: Clop
Jospher: Coinminer virus
Kenji: Shlayer Trojan
5 remaining tables, 8 slides
Protecting Identity Slides:
Ren: page 2 Why Protect public persona, private data
August: page 3 Why Protect Devices & Software
L: page4How to protect privacy,
Kost: page5 safety social sites
Thanos: page6 Good Passwords,
Michael: page 7:Respect Passwords
Scarlett: page 8: Monitor Identity Theft
Jasper: page9: Safe Shopping
Social Engineering
Josh: page 2: social engineering
Megan: page 3 Phising (examples)
Mateo C: page 4 Targeted Attacks (examples)
Nicole: page 5 Rogue Security Software (examples)
Maddy: page 6 Malicious Websites (typosquatting)
Adrian: Hoaxes & Chain letters
Use Safe Software
Julianna: page 3 Use Antivirus Programs (examples, what built-in ones do Windows have?)
Jacob: page 4: built-in mac protections: https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8/web
Joshua: page 4 Use Firewall (how to turn them on for windows & mac)
Dom: page 5 Public Wifi (what are the dangers?)
Carl: page 6 Downloading Software
Mateo S: page 7 USB Drives
Oliver: Crowdstrike caused internet outage
If you were assigned a virus, answer these in a google doc and be ready to present that to the class:
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?
If you were assigned one or more slides:
Write a 30 - 60 second narration of the slide in a google doc. You can say the bullet points but then do additional research to add context to it. Find specific examples.
Write out the speaker notes in a google doc that you can read from when I have the slide on the screen.
Each person should submit their google doc and CITE YOUR SOURCES. If any section of your text is fully copied, it should be in quotes to establish that. Otherwise, summarize and cite.
Dylan: stuxnet (worm)
Hendrix : iloveyou virus
Samuel Yu: trojan horse viruses in general. specifically: remcos
Sebastian: Bonzibuddy
Alan: Rootkit in general. specifically: ZeroAccess
Jae: Ransomware in genreal. specifically: Clop
Jospher: Coinminer virus
Kenji: Shlayer Trojan
5 remaining tables, 8 slides
Protecting Identity Slides:
Ren: page 2 Why Protect public persona, private data
August: page 3 Why Protect Devices & Software
L: page4How to protect privacy,
Kost: page5 safety social sites
Thanos: page6 Good Passwords,
Michael: page 7:Respect Passwords
Scarlett: page 8: Monitor Identity Theft
Jasper: page9: Safe Shopping
Social Engineering
Josh: page 2: social engineering
Megan: page 3 Phising (examples)
Mateo C: page 4 Targeted Attacks (examples)
Nicole: page 5 Rogue Security Software (examples)
Maddy: page 6 Malicious Websites (typosquatting)
Adrian: Hoaxes & Chain letters
Use Safe Software
Julianna: page 3 Use Antivirus Programs (examples, what built-in ones do Windows have?)
Jacob: page 4: built-in mac protections: https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8/web
Joshua: page 4 Use Firewall (how to turn them on for windows & mac)
Dom: page 5 Public Wifi (what are the dangers?)
Carl: page 6 Downloading Software
Mateo S: page 7 USB Drives
Oliver: Crowdstrike caused internet outage
Due:
You may talk with a partner and work together to answer the questions, but you should submit your own individual document.
Due:
https://docs.google.com/forms/d/e/1FAIpQLSe803OePrIYUkeLSFpzxfre_DvUdCoToAZeyYmQW4yV5nU8bg/viewform
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
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
Due:
Due end of class on Monday 9/9.
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)
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.
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.
If in group, describe the division of labor
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)
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.
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.
If in group, describe the division of labor
Due:
Please bring back the signed back page of the syllabus by 9/5.
Due:
You can find the starter code by going to codehs.com, selecting View Assignments, then under the HTML & CSS section, selecting the intro to nav bars assignment & clicking on the example link.
Due partway through class on Thursday.
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. 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.
Due partway through class on Thursday.
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. 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.
Due:
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, try messing around with more CSS attributes like borders, backgrounds, font effects, etc. Go to the w3schools CSS tutorial pages.
Submission Instructions:
TBA
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, try messing around with more CSS attributes like borders, backgrounds, font effects, etc. Go to the w3schools CSS tutorial pages.
Submission Instructions:
TBA
Due:
Due Monday during class.
HTML -> Hypertext Markup Language
*Choose One:
Top 5 Things you did over the summer
Top 5 Favorite animals
*Open Textedit (Command + Space: TextEdit)
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
Finally, make a google doc and copy all the your text and paste it in there and submit that.
HTML -> Hypertext Markup Language
*Choose One:
Top 5 Things you did over the summer
Top 5 Favorite animals
*Open Textedit (Command + Space: TextEdit)
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
Finally, make a google doc and copy all the your text and paste it in there and submit that.