Week 1 Notes — Scratch

Saturday, Dec. 19 to Friday, Jan. 1.

GitHub Accounts

For the Week 0 homework, you need a GitHub account. Some comments on that: (1) GitHub account names are usually all lower-case letters. Upper-case letters are allowed, but are definitely a bad idea. Digits are ok but discouraged. Dashes are ok but not encouraged, although they are heavily used in GitHub project names. So ds-2021-only would be an ok account name, but deepspringsonly is better. My GitHub account name is brianhill. (2) A well-chosen GitHub account name — like a well-chosen internet domain, or a well-chosen gmail address — is a valuable asset in the long run even though it is free. This remains true despite the fact that Microsoft purchased GitHub in 2018. As one small example of the value of GitHubs, it allows you to efficiently edit and deploy a website (at zero cost) — such as the website you are on right now.

Week 0 Video (duration 1:02:25)

My notes are from the 2020 version of the course. Fortunately, Week 0 of 2021 was more or less identical to Week 0 of 2020 so there is no need to re-watch the video or update the notes.

A lot of concepts have been introduced in this video. The somewhat juvenile way they have been introduced might be annoying, but nonetheless, these are foundational concepts for computing, and the terms used in the video and in the notes above are all important to start gaining familiarity with and using precisely.

Also, it may be thoroughly frustrating to use such a sophisticated environment as Scratch — which has drag-and-drop and extensive animation — to learn basic things. In physics, quite an analogous thing happens when we bust out function generators and oscilloscopes when you are making your first RC circuit. The frustration is that although you are learning some important and basic concepts, it isn’t at all clear how the sophisticated tools work and they clearly depend heavily on the concepts they are meant to illustrate. In particular, the function generator and oscilloscope contain vastly more circuitry than the RC circuit you are building. One more concrete example of this would be using a lathe to make a bolt.

Such circularity — using sophisticated systems to build simple systems — is frustrating because it gives you no insight of how you might bootstrap a simple system if you had nothing. Obviously it was somehow bootstrapped. Aliens didn’t give us oscilloscopes and lathes. Maybe such circularity doesn’t bother most people.

Just go with the flow even though Malan starts with bits and bytes but gives you very little idea how those building blocks are actually used to build up computing systems. You can trust him that at the deepest level the hardware you use for computing represents everything in sequences of 0’s and 1’s. It would be a massive detour to actually explain how disk drives, computer memory, computer processors, liquid-crystal displays, and all the other pieces of hardware in a computer do this using semiconductors, magnetism, etc.

Problem Set 0

Problem Set 0 is to make a Scratch program. More specific directions are at the link above.

Finished my Great Conjunction animation (my solution to the problem we were assigned). My program doesn’t make a sound. That was part of the problem directions. I’m nonetheless pleased that the planets move with the correct relative speed around the Sun. When Earth has made about half a revolution around the Sun, Jupiter and Saturn are aligned. This occurs when they are setting soon after sunset, which is the actual situation for the Great Conjunction that just happened.

To view someone’s Scratch program, you have to download their .sb3 file, then open the Scratch Editor in Chrome (need Chrome because Scratch uses Flash?), and then load the downloaded file into the editor. Finally, click the green flag to start the program.