Lecture 0 - Scratch

Products mentioned:

Scratch - a free, graphical programming drag-and-drop language and community developed by MIT

Visual Studio Code - a free source-code editor

Languages mentioned:

C - an older, lower-level programming language

Python - a more modern, higher-level programming language

HTML - this is not a programming language, but rather a markup language used in websites

Computational thinking is using programming to solve problems.

Problem-solving includes using inputs → outputs.

Binary

Unary (referred to as base-1) - using a single digit to solve a problem, such as counting people in a room using fingers on your hand.

Binary (referred to as base-2) - a two-digit system used by computers, with the digits, or bits, represented by 0s and 1s.

Think of 0s as a light bulb being switched off and 1s as a light bulb being switched on.

8 bits are in a byte.

Moving right to left, 11111111 the first 1 = 1, the second = 2, the third = 4, and all the way to the eighth 1, or the furthest left = 128. So it looks like 128 64 32 16 8 4 2 1

Kilobytes = thousands of bytes

Megabytes = millions of bytes

Gigabytes = billions of bytes

Letters of the Alphabet

Because all of the first eight bits are used to help represent numbers, letters are created differently.

A = 65, or 01000001 because the furthest right 1 = 1 and the next to furthest left 1 = 64; 1 +64 = 65

Thus, B = 66; C= 67

ASCII = American Standard Code for Information Interchange

Created by Americans

Mapped numbers in bits to letters

Unicode is a mapping of numbers to letters in multiple languages and emojis

Colors

Can be represented using binary, in a graphical interface, to designate how much RGB (Red; Green; Blue) is combined to make up a color

Videos

Are simply images made up of pixels that are changed over time, like a flipbook.

Programming terms

Abstraction = the simplification of how something works into high-level goals.

Algorithm = step-by-step instructions for solving a computer problem.

Input → Algorithm → Output

Functions are the equivalent of verbs, i.e. actions. Which is the implementation of an algorithm.

Conditional = an else/if statement.

Boolean expressions = a question with a true/false or yes/no answer.

Loops = code that tells the program to return to a previous line of code.

Arguments → Functions → Side Effects

Scratch

A cloud-based drag-and-drop visual programming tool using puzzle pieces that link together to develop a program.

Sprite = an interactive character/image in a game or system.

Arguments = input into a function that modifies a behavior.

Side effect = is usually a visual response, or output, to an input.

Return value = when a function provides the user back with something.

From here on is a demonstration of manipulating Scratch. Pay attention, because it does elude to how code is written using the various programming terms and other things previously discussed.

Lecture 1 - C

Source code - code that a human programmer writes.

Machine code - the code, binary, the computer writes based on source code.

Compiling - taking the input of source code and outputting it into machine code.

Three goals of programming - correctness (i.e. not buggy), design (e.g. well-designed code runs faster), and style (e.g. formatting for easy visibility).

Visual Studio Code - a free source code editor that includes a compiler.

Terminal - a CLI (Command Line Interface) that uses keyboard strokes to manipulate or run a program.

GUI - Graphical User Interface that manipulates a program based on buttons and other non-keyboard-based interactions.

$ = indication of where to type.

make = command to compile a program in C.

To run a program you use . /<insert program name>

There are two hello files because hello.c is the source code and hello is the machine code that appeared after the “make hello” command was run in the terminal.