Слайд 1Introduction to Coding
with Brian Pichman and Chad Mairn
Слайд 2What is computer programming?
A set of commands a computer understands –
like a recipe.
Computer programs can help cure diseases; drive cars; create video games; make animated movies/graphics; build websites and apps; and much more.
Basic coding concepts are used by most every program and most every programmer.
To learn more visit http://www.bfoit.org/itp/Programming.html
Слайд 3Why learn to code?
Why not?
Learn the importance of clarity/brevity of
expression.
Be able to think and problem solve more accurately.
Build something useful and maybe start a business.
Have a better understanding of how technology works.
Have fun!
Do you think it is valuable to learn to code? Why? You are here today, so that is a good sign. ☺
Слайд 4Read more at http://goo.gl/Hgy16A
Слайд 5Is coding a cryptic visual of typed languages?
Or a process? Or
both?
Слайд 6Computer programming has a reputation of being cryptic and too complex
for the average person; however, when you get familiar with basic programming logic you will see patterns everywhere!
Слайд 7“It has often been said that a person does not really
understand something until he teaches it to someone else. Actually a person does not really understand something until after teaching it to a computer, i.e., express it as an algorithm.”
Donald Knuth, in American Mathematical Monthly
Слайд 8Describe in natural language how to make
a peanut butter and
jelly sandwich.
Слайд 9Some great resources to help you learn to code
Слайд 10.com
Learn to code interactively, for free.
Слайд 18Some Other Coding Resources
Lightbot is a programming puzzle game that gives
the user a one-to-one relationship with programming concepts. Try it today at http://light-bot.com/!
Hopscotch: Coding for Kids is an iPad programming language. Download it today at https://www.gethopscotch.com/ .
Code.org wants to bring Computer Science classes to every K-12 school. Check it out at http://code.org/ and find some excellent computer programming tutorials.
Scratch helps children create stories, games, animations, and also lets them share these projects with others around the world. More info at http://scratch.mit.edu/.
www.scratchjr.org is a free iPad app that brings coding to students as young as age five.
www.kodable.com gives children opportunities to program in order to solve puzzles. http://www.allcancode.com is similar.
Visit Medium for a “2 minute read” listing other ideas and resources to help inspire children and teens to code.
There are several MOOCs (Massive Open Online Course) and other freely available resources that offer computer programming classes. Coursera, Udacity, and Edx are great examples. Also, Khan Academy has some great resources for kids and adults too!
A Google search query for computer programming resources for kids limited to the last year can be found at http://goo.gl/RaUups.
Слайд 19Download it for free and get great handouts at http://raptor.martincarlisle.com
RAPTOR
is a flowchart-based programming environment.
DEMO
Слайд 20What is a programming language?
A programming language is set of rules
that provide a way of telling a computer:
What operations to perform
Communicating an algorithm
Receives an input from the user and generates an output.
A programming language is a system for describing a computation (math) or algorithms (logic) in a machine-readable and human-readable form.
Has words, symbols, and grammatical rules (natural language)
Grammatical rules = Syntax
Each language has a different set of syntax rules
Has semantics (meaning)
Слайд 21A Few Basic Programming Components
(pretty much regardless of language)
Variables &
Arrays
Operators
Flow Control
Functions
Слайд 22Variables & Arrays
A variable is a bucket that holds one piece
of information. A variable can change value when
Specific conditions are met
Based on user input
Examples (concept)
$string_myhomelibrary = “Montgomery Library”;
$numeric_variable= 100;
$myname = “Brian”;
Слайд 23Variables & Arrays
An array is a type of variable (or bucket)
that holds many pieces of information.
Example (language doesn’t matter here; the concept does):
$FavoriteCities = array(“Orlando”, “Boulder”, “Miami”)
$FavoriteCities[0] holds “Orlando”
$FavoriteCities [1] holds “Boulder”
$States = array(“1” => “Prime”; “FL”=> “Florida”, “CO” => “Colorado”)
$States[“FL”] holds “Florida”
Слайд 24Operators
Arithmetic
+, -, *, / (add, subtract, multiply, divide)
Assignment
= (assign the
value of 2 to the variable called v)
$v = 2;
+= (“Add the value of 3 to the variable that already holds 1”)
$v += 3; // $a now holds 5
Слайд 25Flow Control
Very readable programming languages
Sequence
Choice (if then, if then else, if
then else if)
Continual
Слайд 26Flow Control - Sequence
Reads like a book, the instructions are executed
in the same order they where given:
OPEN the door
WALK inside the room
SIT on a chair
PICKUP a book
READ the book.
Слайд 27Flow Control - Choice
With choice, instructions are executed based on variables,
commands, outputs, etc.
Слайд 28Flow Control - Choice
If Then
if (something is true/conditions are met)
{
then do this
}
If Then Else
Else: XYZ
Starts the same as “If Then” but allows a result if condition is false
Else If
if (something is true/conditions are met) {
then do this
} elseif (another something is true/conditions are met) {
then do this instead
}
Слайд 29Flow Control - Continual
With continual, instructions are executed based on variables,
commands, outputs, etc … as they remain true
While (or repeat)
while (something is true) {
do something here
}
for
for (something is true) {
do something here
}
Слайд 30Flow Control – Putting It Together
1) Sequence
Go to the library
Check out
a book
Read the book
Return the book
2) Choice
If you have a library card, you can check out books. Otherwise open a library card account.
3) Repeat
Continue to read the book till there are no more pages.
Слайд 31Functions
A function is type of procedure or routine
A function usually returns
a value
A procedure preforms an operation but typically doesn’t provide a value
Most languages have pre-built or pre-defined functions in its library.
For instance, the “delete” function means to “remove”. You don’t have to code what “remove” does; only what to remove.
Слайд 32Ways to Program
Machine Language (Mechanical, Firmware, Drivers)
Job Control, Shell Scripting, Text
Processing
GUI Programming (Graphical User Interface)
Types:
Application Specific Programming
Web Applications / Software Applications
Front End Systems (what the users see)
Back End Systems
Слайд 33FORTRAN
FORmula TRANslation.
Developed at IBM in the mid-1950s.
First programming language
Designed for scientific
and mathematical applications by scientists and engineers.
Traditional Programming Languages
Слайд 34COBOL
COmmon Business Oriented Language.
Developed in 1959.
Typically used for business applications.
Traditional Programming
Languages (cont’d.)
Слайд 35BASIC
Beginner’s All-purpose Symbolic Instruction Code.
Developed at Dartmouth College in mid 1960s.
Developed
as a simple language for students to write programs with which they could interact through terminals.
Traditional Programming Languages (cont’d.)
Слайд 36C
Developed by Bell Laboratories in the early 1970s.
Provides control and efficiency
of assembly language
Often used for system programs.
UNIX is written in C.
Traditional Programming Languages (cont’d.)
Слайд 37C++
It is C language with additional features.
Widely used for developing system
and application software.
Graphical user interfaces can be developed easily with visual programming tools.
Windows Based
Object-Oriented Programming Languages
Слайд 38JAVA
An object-oriented language similar to C++ that eliminates lots of C++’s
problematic features
Allows a web page developer to create programs for applications, called applets that can be used through a browser.
Objective of JAVA developers is that it be machine, platform and operating system independent.
Object-Oriented Programming Languages
Слайд 39Scripting Languages
JavaScript and VBScript
Php and ASP
Perl and Python
Command Languages
sh, csh, bash,
cmd
Special Programming Languages
Слайд 40HTML
HyperText Markup Language.
Used on the Internet and the World Wide Web
(WWW).
Web page developer puts brief codes called tags in the page to indicate how the page should be formatted.
XML
Extensible Markup Language.
A language for defining other languages.
Special Programming Languages
Слайд 41Considerations when choose languages
Proprietary
Microsoft Languages (C#, C++, Visual Basic)
Oracle (Java)
Open Source
PHP
Python
Standardized
Languages
HTML
Databases
Microsoft SQL (Microsoft), MySQL (Open Source), NoSQL (now Apples)
Слайд 42What do you want to make?
Games
Mobile Applications
Web Applications
Software Applications
Databases
Слайд 47When it comes to mechanics of the task, learning to speak
and use a programming language is in many ways like learning to speak a human language
you have to learn new vocabulary, syntax and semantics (new words, sentence structure and meaning)
require continual practice
Things to Consider
Слайд 48Formerly: Run-time performance
At one point, a well performing computer was costly,
so lightweight languages had to be used, concise commands, and less “flashy” design
Now: Life cycle (human) cost is more important
Ease of use for both user and programmer
Cost of maintenance (debugging, updates, etc)
What determines a “right” language
Слайд 50Quick Review
Computer programming is a set of commands a computer understands
– like a recipe. Basic coding concepts are used by most every program and most every programmer.
A programming language is set of rules that provide a way of telling a computer what operations to perform, communicating an algorithm, and receives an input from the user and generates an output.
Learning to code will emphasize the importance of clarity/brevity of expression, you will be able to think and problem solve more accurately, and essentially have a better understanding of how technology works.
There are a few basic computer programming components that exist in most programming languages. They are variables & arrays, operators, flow control, and functions
There are a ton of other great/free resources available online to help you learn to code.
Слайд 51Download it for free and get great handouts at http://raptor.martincarlisle.com
RAPTOR
-- a flowchart-based programming environment.
Hands-on with …
Слайд 52http://getfirebug.com/
See how things on the Web work behind the scenes using
…
Слайд 53SCRATCH Basics
.mit.edu
Scratch is a programming language for everyone. Create interactive stories,
games, music and art and share them online.
DEMO
Слайд 57Sphero – MSRP $130 (libraries99 code = -30)
https://www.youtube.com/watch?v=S95KiPws54M
Слайд 62www.slideshare.net/chadmairn
@cmairn
www.slideshare.net/bpichman
@bpichman
Слайд 63Contact Us
Brian Pichman
bpichman@evolveproject.org
Chad Mairn
mairn.chad@spcollege.edu