Programming 101  Study materials -- Copyright 2015 Usmar A. Padow (amigojapan) usmpadow@gmail.com
Part 1 programming basics done in Scratch
 
lesson 1
-lightbot (a programming game)
Learn the basics of programming
Procedural instructions
Click here to play lightbot
-Scratch
Note: I am a dyslexic, so if you find spelling mistakes, please bear with it...  they don't really affect the programs themselves
Note: this is not a tutorial on how to use scratch, it is an introduction to programming that happens to use scratch as a tool to make it easy to get used to the basics of programming(while avoiding certain problems called "syntax errors" and "compiler errors"). We will not go into depth on how to use Scratch itself
 
Note: Completed exercise projects are marked with a **, it is not recommended you click “look inside" until after you finish making them yourself but you may execute the program to see what the output should be like.
Note: if you finished your project before others you will become a "deputy teacher" and help the others understand what they are doing. But don't do their work for them please.
Note: make your own Scratch account so you can save your work on the cloud
Note: when you are ready to write your own solution to a problem, either click onSolve problem online or use the scratch offline editor which you can download by clicking here
Input/Output 
(we will touch on string handling(string concatenation))
Run program 
View source 
	
Run program 
View source 
Variables
Run program 
View source 
Operators > = <
Conditional(if/else),
Run program 
View source 
 AND and OR logical operators
Refference this please View source 
Tasks:
Write hello world
Write a greeting program “hello your name” 
Write a program that asks for a username *and*  password *or* password2
Write a program with > < telling  you to wear a coat or sun screen
Write Body mass index 
Run program
Solve problem online
** View source 
formula  BMI =weight/(height*height)
Category	BMI range – kg/m2	BMI Prime
Very severely underweight	less than 15	less than 0.60
Severely underweight	from 15.0 to 16.0	from 0.60 to 0.64
Underweight	from 16.0 to 18.5	from 0.64 to 0.74
Normal (healthy weight)	from 18.5 to 25	from 0.74 to 1.0
Overweight	from 25 to 30	from 1.0 to 1.2
Obese Class I (Moderately obese)	from 30 to 35	from 1.2 to 1.4
Obese Class II (Severely obese)	from 35 to 40	from 1.4 to 1.6
Obese Class III (Very severely obese)	over 40	over 1.6
extra task:
Write a blood pressure program
 lesson 2
-Scratch
loops(repeat/repeat until), counter
you may reference  View source 
Tasks:
Make a program that draws a square
Make a program that draws 4 squares 
Make a program that makes the number of squares indicated by the user
lesson 3
 Random number generator
tasks:
Write the “guess my number” game 
Run program 
Solve problem online
** View source 
Write a program that plays rock paper scissor
Run program
Solve problem online
** View source 
Lesson 4
Exercise day 1
Write a calculator
Run program
Solve problem online
** View source 
Write a Memory game “flash a number, remember it,  and then input it"
Run program
Solve problem online
** View source 
lesson 5
 Lists
 
Write a program that is an address book(using lists)
Run program
Solve problem online
** View source 
Algorithms
An Algorithm is a set of step-by-step instructions that work towards achieving a specific goal or solving a problem
the difference between an algorithm and a program is that a program is coded for a computer to follow, and an algorithm can be followed by a person…. I am thinking of bringing a set of cards and have the students sort them using insertion-sort
every program is an algorithm.
 for example, a cooking recipe is an algorithm. lets now sort a deck of cards using insert sort.  
Computer Science focuses more on algorithms  than Software Engineering does.  
The Sort algorithms
http://wiki.scratch.mit.edu/wiki/Sorting_Values
Lesson 6
String handling
get the first letter of a string
View source 
input a phrase and get the first and last words of a sentence
get the phrase, count the spaces, count the words, get the position of the first and last space in the phrase, concatenate the letters of each word to itself to make the words
Run program
Solve problem online
** View source 
Write a program that gets the nth word in a sentence
Run program
Solve problem online
** View source 
International Morse code
A.- B-... C-.-. D-.. E. F..-. G--. H.... I.. J.--- K-.-
L.-.. M-- N-. O--- P.--.
Q--.- R.-. S... T- U..- V...-
W.-- X-..- Y-.-- Z—..
make spaces be / and a longer wait(no sound)
Write a program that converts English to Morse code
Run program
Solve problem online
** View source 
Write a program that converts Morse code to English
.... . .-.. .-.. --- / .-- --- .-. .-.. -.. should be "hello world"
Run program
Solve problem online
** View source 
	
Now modify the first program so that it plays out the message in sounds.
lesson 7
functions(blocks) 
Why Functions?
Make your code more readable, by braking it into blocks
You can reuse code: Define the code once, and use it many times.
You can use the same code many times with different arguments, to produce different results.
When you are writing a program and you seem to be repeating stuff, it should be a function. 
Examples:
Add function
Run program
View source 
A fraction simplifier that used the greatest common divisor function
Run program
View source 
Write a calculator that uses functions to do its calculations
Solve problem online
Write a program that plays hangman
Your main loop should look like this:
 
Run program
Solve problem online
** View source