5 min read

1.11.1 🚃 Coding Projects, Trolley Problem, NASA Astronomy Projects, Wolf Goat Cabbage

1.11.1 🚃 Coding Projects, Trolley Problem, NASA Astronomy Projects, Wolf Goat Cabbage
Jon Stammers on Flickr

Is it Wednesday already? :-) Summer is a great time to make time to learn. This week I want to continue with summer projects, specifically, what to do if you want to learn how to code. Where to begin? I have one solution and a few links below, starting with a great YouTube video. This email also includes a recreational math problem about a wolf, goat, and cabbage crossing a river. Plus links to space and astronomy projects from NASA and the Trolley Problem.

But let's begin with a Dad joke and then explore how to get started with software programming.

#
🤔
How do astronomers organize a party? (answer below)
#

Summer Projects: Coding

In my experience working in software development shops, programmers are either university trained or self taught. Both are needed. School teaches programmers a common language to describe programming and it exposes them to a diverse set of computing problems. Self taught programmers tend to focus on learning enough to solve problems. In doing so, they think about programming in different ways than what’s taught in school.

This matters when talking about where to begin to learn coding. Ideally, you want both school and self-taught approaches as you learn programming.

Probably the first hurdle is to explore whether or not programming interests you, or someone you’re working with. Sites like CodeGuppy have a number of basic projects that you can work through. It’s a fun way to gauge interest. If someone likes the way coding is iterative and requires problem solving — you write code, then run code, then tweak code, then run code, and so on, then that’s a good sign to continue exploring programming.

The next question to answer is what language to learn? For someone under the age of 10, you might start with visual or block languages like Scratch or Hopscotch. Block languages focus on the rule making and algorithmic aspect of programming, as well as setting values that trigger rules. Evolving into text or script languages like Python might make more sense after coding with a block language. However, if someone is old enough to understand cause and effect, then beginning with Python might be a good place to start.

And while there’s all kinds of online courses, I’d begin by following the process above: find a site like CodeGuppy, play around with their projects to confirm that programming interests you, and then evolve into self-discovery using block or text languages. Then take courses. But (hopefully) never lose sight of playing around and exploring on your own terms.

Once you do begin to master a programming language by creating small projects, there’s a couple additional hurdles. One is what projects to work on. Open source projects that accept beginners might be a good place to start. And the other hurdle is how many languages to learn. Learning multiple languages helps you understand the different solutions to common problems across all languages. You begin to look for how to organize data, for example, discovering that one language uses arrays and another uses dictionaries. Once you can code in one language, be open to learning how to use other languages to solve problems.

Ultimately, if programming does interest you, it becomes a choose your own adventure experience. It’s fun and yes frustrating at times but also rewarding.

The How I Would Learn to Code video immediately below is an excellent introduction to coding, as well as the CS50 link. And clicking the More link on the YouTube video displays a lot more resources, in addition to the ones mentioned in his video. The other links below are personal preference: there’s thousands of similar links if you’re searching online.

How I Would Learn To Code (If I Could Start Over)
https://www.youtube.com/embed/k9WqpQp8VSU

CS50: Introduction to Computer Science
https://pll.harvard.edu/course/cs50-introduction-computer-science

Block Languages
https://scratch.mit.edu/
https://www.gethopscotch.com/
https://en.wikipedia.org/wiki/Visual_programming_language

CodeGuppy
https://codeguppy.com/

Python
https://realpython.com/
https://realpython.com/learning-paths/

Miniscript
https://miniscript.org/
https://kidscodecs.com/sections/mini-micro-virtual-machine/

#

Astronomy for Kids

The US space agency NASA has a website dedicated to helping kids and families learn about space, astronomy, and their programs. Their education department creates the material working with NASA scientists and engineers. There’s lots of activities, from coding to crafts to finding exoplanets. It makes for a great resource if you’re looking for structured projects about space exploration and astronomy that’s geared towards kids.

NASA at Home
https://www.nasa.gov/nasa-at-home-for-kids-and-families/

Code a Mars Helicopter Video Game
https://www.jpl.nasa.gov/edu/learn/project/code-a-mars-helicopter-video-game/

5 Ways to Find a Planet
https://exoplanets.nasa.gov/alien-worlds/ways-to-find-a-planet/?intent=021

Coloring Pages for Exoplanets
https://science.nasa.gov/learning-resources/for-kids-and-students/download-our-exoplanet-coloring-pages-and-colorwithnasa/

#

The Trolley Problem

Computing has a number of interesting thought problems whose possible answers inform how computers are designed and built. The Trolley Problem is fairly simple to describe, in this case, from Wikipedia:

"The trolley problem is a series of thought experiments in ethics, psychology and artificial intelligence involving stylized ethical dilemmas of whether to sacrifice one person to save a larger number. The series usually begins with a scenario in which a runaway tram or trolley is on course to collide with and kill a number of people (traditionally five) down the track, but a driver or bystander can intervene and divert the vehicle to kill just one person on a different track. Then other variations of the runaway vehicle, and analogous life-and-death dilemmas (medical, judicial, etc.) are posed, each containing the option to either do nothing, in which case several people will be killed, or intervene and sacrifice one initially "safe" person to save the others."

As with most thought problems, there's no 100% clear answer. There's only answers based upon legal and moral constraints. For most people, hurting another person is immoral. And the law often takes the simplest approach: in some cases, if you're a bystander and not an actor in a situation, then you have no legal responsibility to do anything. What interests me is that humans are more complicated than the law and morality. And it's not easy to make technology and tools reflect that complexity. How to program the behavior of self-driving autonomous cars is a good example of how this problem translates to real life.

The Trolley Problem
https://en.wikipedia.org/wiki/Trolley_problem

The “Moral Machine” Is Bad News for AI Ethics
https://mindmatters.ai/2020/03/the-moral-machine-is-bad-news-for-ai-ethics/

The Surprising Answer to the Trolley Problem
https://medium.com/@IEAI/the-surprising-answer-to-the-trolley-problem-2ce17e288a41

#

Wolf, Goat, and Cabbages

Here’s another fun recreational math problem to work out. Like the Hungry Camel problem two weeks ago, in issue 1.9.1, this one also is from math problems attributed to Alcuin from around 800 AD. I’ve included the Alcuin-related links from a couple weeks ago.

You stand on the bank of a river with a wolf, a goat, and cabbage. You can carry only one across the river at a time. The wolf will eat the goat if left alone. And the goat will eat your cabbage if left alone. How do you get the wolf, goat, and cabbage across the river?

The beanz magazine article describes how to work through the problem to solve it. And no worries, the goat lives. The cabbage survives.

Wolf, Goat, Cabbage
https://kidscodecs.com/logic-puzzles-wolf-goat-cabbage/

Propositiones ad acuendos iuvenes by Alcuin
https://mathshistory.st-andrews.ac.uk/HistTopics/Alcuin_book/

Alcuinundrums: Seven brain teasers from the early Middle Ages
https://thijsporck.com/2016/06/05/alcuinundrums/

Alcuin of York
https://en.wikipedia.org/wiki/Alcuin

#

This Week

Our Sunday issue this week has fun offbeat links about how orange peels left outside for years created a biodiverse environment, an effort to create a vaccine that works all bad viruses, how to create your very own AI assistant, how turning down noise improves your health, and more.

#
🙄
How do astronomers organize a party? They planet. :-)
#
# # #