Maggie’s First Python Project

Maggie is taking her first computer science class this year. The seventh grade course meets every other day for half a block (45 minutes) during the first trimester. This isn’t a lot of time for learning and practice, but students usually dive in with gusto and Maggie is no exception. Although I do teach a section of the class, I don’t have Maggie. She’s with my brilliant colleague, Chris Collins.

At the mid point of the first trimester, we ask students to create a short project using the code that they’ve learned thus far. They are using the Python programming language. Here’s what Maggie created:

Maggie’s program uses the turtle to create a campsite scene.

To create this scene, Maggie wrote 170 lines of code using Python’s default text editor (known as IDLE). If you’re curious, the code is appended below.

#project1

import turtle
t = turtle.Pen()
t.speed(0)
t.screen.bgcolor("midnight blue")

#ground
t.width(10)
t.color("brown")
t.pu()
t.goto(-200, -161)
t.pd()
t.goto(200, -161)

#tree 1
t.pu()
t.width(7)
t.color("maroon")
t.goto(-190, -160)
t.pd()
t.goto(-190, -60)
t.color("forest green")
t.goto(-210, -90)
t.pu()
t.goto(-190, -60)
t.pd()
t.goto(-170, -90)
t.pu()
t.goto(-190, -80)
t.pd()
t.goto(-210, -110)
t.pu()
t.goto(-190, -80)
t.pd()
t.goto(-170, -110)
t.pu()
t.goto(-190, -100)
t.pd()
t.goto(-210, -130)
t.pu()
t.goto(-190, -100)
t.pd()
t.goto(-170, -130)
t.pu()

#tree 2
t.setheading(270)
t.pu()
t.fillcolor("green")
t.pencolor("darkgreen")
t.goto(100, -90)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
t.pu()
t.goto(120, -120)
t.pd()
t.pencolor("chocolate1")
t.fillcolor("burlywood1")
t.begin_fill()
t.forward(40)
t.left(90)
t.forward(20)
t.left(90)
t.forward(40)
t.end_fill()

#tent
t.fillcolor("purple1")
t.pu()
t.goto(-50, -160)
t.pd()
t.begin_fill()
t.color("purple1")
t.goto(40, -160)
t.goto(20, -110)
t.goto(-30, -110)
t.goto(-10, -160)
t.end_fill()
t.pu()
t.fillcolor("purple3")
t.begin_fill()
t.goto(-30, -110)
t.goto(-50, -160)
t.end_fill()
t.pu()
t.color("purple1")
t.goto(-33, -110)
t.pd()
t.goto(-53, -160)

#moon
t.pu()
t.goto(110, 50)
t.pd()
t.begin_fill()
t.color("old lace")
t.circle(50)
t.end_fill()

#stars
t.pu()
t.goto(220, 40)
t.pd()
t.color("lemon chiffon")
t.circle(2)
t.pu()
t.goto(220, 90)
t.pd()
t.circle(2)
t.pu()
t.goto(160, 90)
t.pd()
t.circle(2)
t.pu()
t.goto(40, 20)
t.pd()
t.circle(1)
t.pu()
t.goto(20, 20)
t.pd()
t.circle(2)
t.pu()
t.goto(0, 20)
t.pd()
t.circle(3)
t.pu()
t.goto(-130, 30)
t.pd()
t.circle(2)
t.pu()
t.goto(-40, 30)
t.pd()
t.circle(1)
t.pu()
t.goto(-40, 150)
t.pd()
t.circle(2)
t.pu()
t.goto(0, 150)
t.pd()
t.circle(1)
t.pu()
t.goto(0, 190)
t.pd()
t.circle(3)
t.pu()
t.goto(140, 190)
t.pd()
t.circle(2)
t.pu()
t.goto(-160, 130)
t.pd()
t.circle(1)
t.pu()
t.goto(220, 164)
t.pd()
t.circle(2)
t.pu()
t.goto(-220, 100)
t.pd()
t.circle(2)
t.pu()
t.goto(-80, -70)
t.pd()
t.circle(1)

t.hideturtle()

Triathletes

Sarah has regularly completed the YWCA Women’s Triathlon around Lake Nokomis since her first outing in 2018. This year, however, Maggie decided to join her! They did the “Super Sprint” rather than the full Triathlon because Maggie’s not old enough for the full version yet (you have to be 14+). The Super Sprint consists of a 200-yard swim in Lake Nokomis, a 7.3-mile bike loop, and a 1-mile run to the finish line. Maggie had some trepidation going into it, but handled herself like a champ. She crossed the finish line at a full-on sprint.

Video clip of Sarah and Maggie as they head from the lake to their bikes:

Griffin at Widji

Griffin has spent the last three weeks on a canoe trip managed by Camp Widjiwagan in northern Minnesota. This year his crew traveled up to the Quetico area in Canada.

Griffin went with his good friend Murray. We pick them up tomorrow but just received this group photo from camp. Looks like a great crew!

Griffin’s companions for the past three weeks in the Canadian wilderness.

Tropical Curry

Chef Griffin has outdone himself once more. The kids have a new cookbook based on a video game that they love: The Official Stardew Valley Cookbook. This isn’t the first recipe that they’ve tried, but it was certainly the most complex. Maggie, sadly, was out this afternoon, so Griffin was the primary cook with Oliver as sous chef. Served in pineapple bowls, this curry looked as spectacular as it tasted!

Summer Fencing

Griffin participated in a local fencing tournament today which was very exciting to watch. This was a small tournament, so Griffin’s cohort included high school and adult fencers. He was up against some extremely experienced fencers. And he is still a beginner. As always, he entered the fray with a positive attitude and had a lot of fun. His first words at the end were something like “That was fun. I’m glad I did this.” I appreciate that positivity.

Fencing tournaments begin with pools where you have short bouts to five points with each member of the pool. This establishes the seeds for the elimination rounds. Griffin won his first of five bouts in the pool. The other four opponents were far better than he was, though he did manage to score a point against one of the best fencers in the tournament.

Griffin won one of his five bouts in his pool.

To our relief, in the first elimination round, Griffin faced an opponent at his level. In the elimination bouts, you win with 15 points, so they last longer. Griffin took the lead initially, but then his opponent tied it up. They were neck and neck up to 12-12. Then Griffin found a hidden reserve and landed three quick touches to win, 15-12, with barely 5 seconds remaining on the clock.

Griffin won his first elimination round (this is the first time he’s managed that feat in a tournament), but then faced the #1 seed. Yikes!

His next opponent was the #1 seed of the tournament. 😬 Alas, no Hollywood victory. Griffin was soundly defeated, 0-15. To our great surprise, however, his opponent did not manage to win the tournament. Indeed, he was ultimately defeated in the final round by the fencer from Griffin’s pool that he managed to score a point against.

I see at least three things to be proud of here. First, and most importantly, Griffin’s positive attitude and sportsmanship. Second, Griffin’s hard-won victory in an elimination round. Finally, the fact that he managed to score a touch against the tournament champion!

Here are a few pictures of Griffin in action.

AI Assistant

New AI Assistant Sidebar

As I was prepping Maggie’s graduation posts for publication, I noticed a new WordPress sidebar called the “AI Assistant.” (It actually comes with Jetpack, a set of add-on tools that help optimize WordPress. Basic tools are free; more advanced usage comes with subscription fees.)

It looks like I initially got 20 “requests” for free. Improving the title or getting feedback on the post take one request each. Generating a featured image costs 10 requests. The feedback is pretty basic, but not entirely useless. It’s a bit like an advanced Grammarly analysis where it checks spelling and grammar but also gives tips on tone and style.

The featured image tool seems like it will be a direct threat to stock art companies. I ran it on my previous post about Maggie’s graduation slideshow. I thought it might create a collage or something from the gallery of images on the page. Nope. Instead, it appears to have generated an image based on an analysis of the title and text. Here’s what it came up with:

AI-generated image for one of the posts about Maggie’s graduation.

Definitely not going to use it. Far too corporate for my style. But I could see someone else using it and could easily see it as a generic graphic on an article about graduation in a print magazine or on-line zine. I can’t imagine how this sort of thing won’t cost real people their jobs.

The latest news from Sarah and Andrew.