The document provides an introduction to coding and computer programming concepts. It discusses the agenda which includes understanding how computers work, learning programming concepts like variables and syntax, gaining an appreciation of different programming languages, and developing resources to learn programming basics. It then discusses what computer programming is, why learn to code, programming languages, basic programming components like variables, operators, flow control and functions. It also provides some examples and resources for learning to code.
2. Agenda:
• Understand how computers work and learn basic computer
programming concepts (e.g., variables, syntax etc.)
• Gain an appreciation of the various programming languages and study
what they can do.
• Develop a resource list of computer programming tutorials and tools.
• Become inspired to learn programming basics to help you work smarter
and more efficiently.
3. Is coding a cryptic visual of typed languages?
Or a process? Or both?
4. Computer 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!
5. What 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
6. Why learn to code?
• Why not?
• Learn the importance of clarity/brevity of expression.
• Be able to think and problem solve more accurately.
• Have a better understanding of how technology works.
• Create a tool that can make your life and many others’ lives easier.
8. “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
19. Some 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.
20. What is a programming language?
• A programming language is set of rules that provides 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)
Slide courtesy of Brian Pichman
21. Tons of example code in the Arduino IDE
(Integrated Development Environment)
24. Python Shell is where you enter commands
and/or lines of code.
At the prompt type: print(“Hello, world!”)
25. IDLE - Integrated DeveLopment Environment)
# is a comment and the computer ignores it.
The second line asks the user to enter their name and remembers it as "name.” This is a variable!
The third line is a print statement, which prints the stored name.
27. A Few Basic Programming Components
(pretty much regardless of language)
• Variables & Arrays
• Operators
• Flow Control
• Functions
Slide courtesy of Brian Pichman
28. Variables & 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”;
Slide courtesy of Brian Pichman
29. Variables & 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”
Slide courtesy of Brian Pichman
30. Operators
• 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
Slide courtesy of Brian Pichman
31. Flow 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.
Slide courtesy of Brian Pichman
32. Flow 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
}
Slide courtesy of Brian Pichman
33. Flow 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
}
Slide courtesy of Brian Pichman
34. Flow 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.
Slide courtesy of Brian Pichman
35. Functions
• A function is type of procedure or routine and 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.
Defining a function in Python
36. Download it for free and get great handouts at
http://raptor.martincarlisle.com
RAPTOR is a flowchart-based
programming environment.
DEMO
37. FORTRAN
• 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
Slide courtesy of Brian Pichman
COBOL
• COmmon Business Oriented Language.
• Developed in 1959.
• Typically used for business applications.
38. BASIC
• 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.)
Slide courtesy of Brian Pichman
C
• 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.
39. C++
• 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
Slide courtesy of Brian Pichman
JAVA
• 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.
40. • Scripting Languages
• JavaScript and VBScript
• Php and ASP
• Perl and Python
• Command Languages
• sh, csh, bash, cmd
Special Programming Languages
Slide courtesy of Brian Pichman
41. • HTML
• 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
Slide courtesy of Brian Pichman
55. Interact with the real world
using the Tickle App
https://tickleapp.com
Learn to program Arduino, drones, robots, connected
toys, and smart home devices, all wirelessly.