<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Android%2FGogoTraining%2FIntroduction_to_Programming_for_Non-Programmers</id>
	<title>Android/GogoTraining/Introduction to Programming for Non-Programmers - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Android%2FGogoTraining%2FIntroduction_to_Programming_for_Non-Programmers"/>
	<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Android/GogoTraining/Introduction_to_Programming_for_Non-Programmers&amp;action=history"/>
	<updated>2026-05-08T19:45:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://aznot.com/index.php?title=Android/GogoTraining/Introduction_to_Programming_for_Non-Programmers&amp;diff=1571&amp;oldid=prev</id>
		<title>Kenneth: /* Objectives */</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Android/GogoTraining/Introduction_to_Programming_for_Non-Programmers&amp;diff=1571&amp;oldid=prev"/>
		<updated>2015-01-03T06:55:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Objectives&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;If you are interested in getting into a programming then Introduction to Programming for Non-Programmers is a good place to start.  People who like to program tend to be people who have a problem-solving mindset.  In this course you can test your problem-solving abilities and determine if programming is the right career for you.  This course is designed specifically for individuals who are interested in starting a career in programming and presents programming skills to the non-programmer.  By the end of the course you will be writing simple programs, understand the basics of programming and have a good idea if programming is the career for you.   You will also be prepared to start taking more traditional programming languages classes.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
As a result of taking this course, you will be able to:&lt;br /&gt;
* Write scripts to manipulate graphics objects on the screen&lt;br /&gt;
* Collect input from the user and make decisions based on that input&lt;br /&gt;
* Communicate between separately running scripts&lt;br /&gt;
* Perform math calculations and do comparisons&lt;br /&gt;
&lt;br /&gt;
== Outline ==&lt;br /&gt;
&lt;br /&gt;
Module 00: Introduction to Programming for Non-Programmers - Course Introduction&lt;br /&gt;
&lt;br /&gt;
Module 01: Getting Started&lt;br /&gt;
* Programming Concepts&lt;br /&gt;
* Types of Languages&lt;br /&gt;
* What Makes a Good Programmer?&lt;br /&gt;
* Demo: Installing the Scratch Environment&lt;br /&gt;
&lt;br /&gt;
Module 02: A Tour of Scratch&lt;br /&gt;
* Basic Areas&lt;br /&gt;
* Sprites&lt;br /&gt;
* How to Build a Scratch Script&lt;br /&gt;
* Comments&lt;br /&gt;
* Workshop&lt;br /&gt;
&lt;br /&gt;
Module 03: More Scratch Features&lt;br /&gt;
* Costumes&lt;br /&gt;
* Backgrounds&lt;br /&gt;
* Help Features&lt;br /&gt;
* 3 Types of Scratch Blocks&lt;br /&gt;
* Workshop&lt;br /&gt;
&lt;br /&gt;
Module 04: Problem Solving&lt;br /&gt;
* Math, Movement and Puzzle Problems&lt;br /&gt;
* Basic Steps in Problem Solving&lt;br /&gt;
* Algorithms&lt;br /&gt;
* Scratch Cards&lt;br /&gt;
* Workshop&lt;br /&gt;
&lt;br /&gt;
Module 05: Variables, Operators and Input&lt;br /&gt;
* Creating and Using Variables&lt;br /&gt;
* Mathematical Operators&lt;br /&gt;
* Asking Questions and Getting Answers&lt;br /&gt;
* Using Answers in Control Blocks&lt;br /&gt;
* Workshop&lt;br /&gt;
&lt;br /&gt;
Module 06: Threads and Tying It All Together&lt;br /&gt;
* Threads&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Workshop&lt;br /&gt;
* Comparison of Scratch Programs to C&lt;br /&gt;
* Review&lt;br /&gt;
&lt;br /&gt;
== 00: Introduction to Programming for Non-Programmers - Course Introduction ==&lt;br /&gt;
&lt;br /&gt;
Scratch - http://scratch.mit.edu/&lt;br /&gt;
&lt;br /&gt;
Scratch 1.4 Download - http://info.scratch.mit.edu/Scratch_1.4_Download&lt;br /&gt;
&lt;br /&gt;
== 01: Getting Started ==&lt;br /&gt;
&lt;br /&gt;
Programming Languages&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Low level&amp;quot; languages&lt;br /&gt;
* interact with hardware directly&lt;br /&gt;
* example: assembler&lt;br /&gt;
* code specific to the processor&lt;br /&gt;
* example: C (more portable than assembler)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;High level&amp;quot; languages&lt;br /&gt;
* closer to human language&lt;br /&gt;
* more restrictions (intentional)&lt;br /&gt;
* one statement in high level equals many statements of a &amp;quot;low level&amp;quot; language&lt;br /&gt;
* c++, java&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Very High Level&amp;quot; languages:&lt;br /&gt;
* Ruby, Python&lt;br /&gt;
&lt;br /&gt;
Object-Oriented Languages:&lt;br /&gt;
* c++&lt;br /&gt;
* classes of objects&lt;br /&gt;
&lt;br /&gt;
Scripting Languages:&lt;br /&gt;
* interpreted&lt;br /&gt;
* perl, python&lt;br /&gt;
&lt;br /&gt;
=== Scratch ===&lt;br /&gt;
&lt;br /&gt;
Scratch - http://scratch.mit.edu/&lt;br /&gt;
&lt;br /&gt;
Developed by MIT Media Lab&lt;br /&gt;
* Visual programming language&lt;br /&gt;
&lt;br /&gt;
Rather than using lines of code, programs are built with &amp;quot;building blocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Scratch download - http://scratch.mit.edu/download&lt;br /&gt;
&lt;br /&gt;
Programming concepts of scratch:&lt;br /&gt;
* iterations (loops)&lt;br /&gt;
* decision making (if, if-else)&lt;br /&gt;
* numbers and names (variables, lists)&lt;br /&gt;
* advanced:&lt;br /&gt;
** threads&lt;br /&gt;
** events&lt;br /&gt;
&lt;br /&gt;
Scratch Panels:&lt;br /&gt;
* Blocks Palette - motion, looks, sound, etc&lt;br /&gt;
* Scripts Area - where blocks are scripted&lt;br /&gt;
* Stage - clicking green flag will run program on the stage&lt;br /&gt;
* Sprite List - graphics character&lt;br /&gt;
&lt;br /&gt;
Snap blocks together&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;green&amp;quot; flag block, in the control block palette, as a starting block for scripts&lt;br /&gt;
&lt;br /&gt;
Scratch&amp;#039;s website has many existing projects that can be used, and a number of tutorials&lt;br /&gt;
&lt;br /&gt;
== 02: A Tour of Scratch ==&lt;br /&gt;
&lt;br /&gt;
Scratch tools&lt;br /&gt;
&lt;br /&gt;
scratch cat - sprite&lt;br /&gt;
&lt;br /&gt;
Those who programming in Scratch are called &amp;quot;Scratchers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
scratch environment:&lt;br /&gt;
* stage&lt;br /&gt;
* blocks palette&lt;br /&gt;
* script area&lt;br /&gt;
* sprites&lt;br /&gt;
&lt;br /&gt;
drag blocks from block palette to script area - building blocks for scripts&lt;br /&gt;
&lt;br /&gt;
snap (attach) blocks together to build scripts&lt;br /&gt;
&lt;br /&gt;
can double click on a placed block(s) (in script area) to cause to happen now&lt;br /&gt;
&lt;br /&gt;
blocks:&lt;br /&gt;
* movement blocks - can be absolute or relative&lt;br /&gt;
* looks - change size and color of sprite&lt;br /&gt;
* sound - audio sounds for your sprite&lt;br /&gt;
* pen - drawing on screen&lt;br /&gt;
* events - triggers&lt;br /&gt;
* control - start, loops, wait&lt;br /&gt;
* sensing - ask questions, check states&lt;br /&gt;
* operators - math&lt;br /&gt;
* variables - contains a value that can be manipulated&lt;br /&gt;
&lt;br /&gt;
strings - sequence of characters&lt;br /&gt;
&lt;br /&gt;
scripts are tied to sprites - each will have their own&lt;br /&gt;
&lt;br /&gt;
Hello World&lt;br /&gt;
 say [Hello world]&lt;br /&gt;
&lt;br /&gt;
Sample Scripts:&lt;br /&gt;
&lt;br /&gt;
 when [up arrow] key pressed&lt;br /&gt;
 point in direction [90]&lt;br /&gt;
 move [10] steps&lt;br /&gt;
&lt;br /&gt;
 forever&lt;br /&gt;
   move [10] steps&lt;br /&gt;
   turn [right] [15] degrees&lt;br /&gt;
   play sound [meow]&lt;br /&gt;
   wait [1] secs&lt;br /&gt;
&lt;br /&gt;
Gravity Cat:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
when [flag] clicked&lt;br /&gt;
go to x:[0] y:[0]&lt;br /&gt;
clear&lt;br /&gt;
pen down&lt;br /&gt;
set [vx] to 1&lt;br /&gt;
set [vy] to 4&lt;br /&gt;
forever&lt;br /&gt;
  change x by [vx]&lt;br /&gt;
  change y by [vy]&lt;br /&gt;
  if [y position] &amp;lt; [-200] then&lt;br /&gt;
    set [vy] to [-30]&lt;br /&gt;
  if [y position] &amp;lt; [-200] or [y position] &amp;gt; 400 then&lt;br /&gt;
    set [vy] to [-1] * [vy]&lt;br /&gt;
  if [x position] &amp;lt; [-200] or [x position] &amp;gt; 200 then&lt;br /&gt;
    clear&lt;br /&gt;
    set [xy] to [-1] * [xy]&lt;br /&gt;
  change [vy] by [-0.9]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
* right click and select &amp;quot;add comment&amp;quot;&lt;br /&gt;
* can be added to script space or specific block&lt;br /&gt;
&lt;br /&gt;
Project Notes - comments for whole project&lt;br /&gt;
* found under &amp;quot;project page&amp;quot;&lt;br /&gt;
&lt;br /&gt;
scenes - ?&lt;br /&gt;
&lt;br /&gt;
== 03: More Scratch Features ==&lt;br /&gt;
&lt;br /&gt;
Sprite control&lt;br /&gt;
&lt;br /&gt;
Sprite rotation style:&lt;br /&gt;
** 365 rotation&lt;br /&gt;
** left-right rotation only&lt;br /&gt;
** no rotation&lt;br /&gt;
&lt;br /&gt;
Sprite costumes:&lt;br /&gt;
* change in appearance (think motion frames)&lt;br /&gt;
&lt;br /&gt;
Sprite sounds:&lt;br /&gt;
* sounds associated with sprite&lt;br /&gt;
&lt;br /&gt;
Sprite tools:&lt;br /&gt;
* duplicate&lt;br /&gt;
* delete&lt;br /&gt;
* grow&lt;br /&gt;
* shrink&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
* good background while programming: &amp;quot;xy-grid&amp;quot;&lt;br /&gt;
* can have multiple backgrounds to rotate through&lt;br /&gt;
&lt;br /&gt;
Help&lt;br /&gt;
* right click on block and select help&lt;br /&gt;
* shows usage and example&lt;br /&gt;
&lt;br /&gt;
Types of blocks:&lt;br /&gt;
* Stack blocks - blocks with puzzle piece connectors, that can be snapped together (eg. move steps, if, loops)&lt;br /&gt;
* Hat blocks (hats) - placed on top of stack - wait for something to happen (eg. start flag)&lt;br /&gt;
* Reporter blocks - oval (return value) or pointed ends (return true/false) (eg. mouse x, mouse down?)&lt;br /&gt;
** Checkbox - oval reporter blocks can be displayed on screen by clicking checkbox&lt;br /&gt;
&lt;br /&gt;
== 04: Problem Solving ==&lt;br /&gt;
&lt;br /&gt;
puzzles and brain teasers&lt;br /&gt;
&lt;br /&gt;
algorithm - &amp;quot;step-by-step procedure for solving a problem or accomplishing some end, especially by a computer&amp;quot; -- Merriam-Webster&lt;br /&gt;
&lt;br /&gt;
Scratch Cards - have programming problems for you to solve&lt;br /&gt;
* &amp;lt;s&amp;gt;http://info.scratch.mit.edu/Support/Scratch_Cards&amp;lt;/s&amp;gt;&lt;br /&gt;
* http://scratch.mit.edu/help/cards/&lt;br /&gt;
&lt;br /&gt;
== 05: Variables, Operators and Input ==&lt;br /&gt;
&lt;br /&gt;
Variables - areas in memory that store things&lt;br /&gt;
&lt;br /&gt;
Variables can be created globally for &amp;quot;all sprites&amp;quot; or locally for &amp;quot;this sprite only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Operators are math functions in the pointy edge blocks.&lt;br /&gt;
&lt;br /&gt;
Input can be received by using the &amp;quot;ask&amp;quot; block.&lt;br /&gt;
&lt;br /&gt;
== 06: Threads and Tying It All Together ==&lt;br /&gt;
&lt;br /&gt;
Threads are scripts running in parallel.&lt;br /&gt;
&lt;br /&gt;
Can communicate between threads&lt;br /&gt;
* broadcast&lt;br /&gt;
* when I receive&lt;br /&gt;
&lt;br /&gt;
Can be used to synchronize several scripts&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
</feed>