Your SlideShare is downloading. ×
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Introduction to Programming (well, kind of.)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to Programming (well, kind of.)

2,632

Published on

I worked through these slides during the THATCamp New England 2010 Introduction to Programming Bootcamp Session. For more info on THATCamp NE see http://www.thatcampnewengland.org/

I worked through these slides during the THATCamp New England 2010 Introduction to Programming Bootcamp Session. For more info on THATCamp NE see http://www.thatcampnewengland.org/

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,632
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
67
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction to Programming Well, Kind Of. THATCamp New England 2010 Julie Meloni // @jcmeloni // jcmeloni@gmail.com
  • 2. What’s missing in the slides... • A lot of extemporaneous talking about how everyone is already a programmer. • In fact, you all probably know a lot of this, but just didn’t know the terms. • What’s more, the applications of the future come from the needs of the present: your needs. ▫ When you can articulate them to someone who can do the codework, we all win.
  • 3. Why Program? • Express complex logic and perform computations. ▫ We make the computer do what we want it to do. ▫ These behaviors come from our imaginations. ▫ The processes come from our needs and desires. • Do things that take a long time or are difficult for humans to do (counting, comparing, repeating)
  • 4. What is a “Programming Language”? • An artificial language with a limited purpose • A means of expressing computations (math) and algorithms (logic) Thanks, @wayne_graham. I “repurposed” some of your content on this slide and the next.
  • 5. What Does a Programming Language Look Like? • ...a lot like human language. They have: ▫ Syntax (form) ▫ Semantics (meaning)  signs/words (variables, symbols, numbers, strings)  expressions  flow control (decisions, conditions, loops, narrative)  complex entities (methods, structures, & objects)
  • 6. A Few Types of Programming Uses • Job control or shell scripting; text processing • Graphical User Interface (GUI) programming • Application-specific programming • Web applications ▫ Front-end ▫ Back-end
  • 7. Some Programming Languages You May Have Heard About • C++ • Java • JavaScript (completely unrelated to the former) • Perl • Python • Ruby • PHP
  • 8. A Few Basic Programming Components (pretty much regardless of language) • Variables & Arrays • Operators • Flow Control • Functions Putting together these pieces adds up to programming (or scripting, or in general “writing some stuff to tell the computer what to do”)
  • 9. Variables & Arrays • A variable is a bucket that holds one piece of information. • Examples (language doesn’t matter here; the concept does): ▫ $string_variable = “THATCamp”; ▫ $numeric_variable= 4; ▫ $myname = “Julie”;
  • 10. 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): ▫ $THATCamps = array(“Prime”, “New England”, “Pacific Northwest”)  $THATCamps[0] holds “Prime”  $THATCamps[1] holds “New England” ▫ $THATCamps = array(“1” => “Prime”; “NE”=> “New England”, “PNW” => “Pacific Northwest”)  $THATCamps[“NE”] holds “New England”
  • 11. Operators • Arithmetic ▫ +, -, *, / (add, subtract, multiply, divide) • Assignment ▫ = (“Assign the value of 4 to the variable called a”)  $a = 4; ▫ += (“Add the value of 5 to the variable that already holds 4”)  $a += 5; // $a now holds 9 ▫ .= (“Attach the value ‘World’ to the end of ‘Hello’ to make a new value for the string variable”)  $string = “Hello”;  $string .= “World”; // would print “HelloWorld” (no space because we didn’t add that!)
  • 12. Operators • Comparison ▫ == (“when I compare the value in variable a to the value in variable be, that comparison is true”)  $a == $b ▫ != (“when I compare the value in variable a to the value in variable be, that comparison is not true”)  $a != $b ▫ === (“when I compare the type of and value in variable a to the type of and value in variable be, that comparison is true”)  $a === $b ▫ >, >= (“the value of variable a is greater than (or greater than or equal to) the value of variable b”)  $a > $b ▫ <, <= (“the value of variable a is less than (or less than or equal to) the value of variable b”)  $a < b
  • 13. Operators • Logical ▫ && (and) ▫ || (or) ▫ ! (not)
  • 14. Flow Control (conceptual structures virtually independent of language, although might look a little different) • if if (something is true) { do something here } • if ... else ... else if if (something is true) { do something here } else if (something is true) { do something here } else { do something here }
  • 15. Flow Control (conceptual structures virtually independent of language, although might look a little different) • while while (something is true) { do something here } • for for (something is true) { do something here }
  • 16. Flow Control (conceptual structures virtually independent of language, although might look a little different) • switch switch (some_variable) { case “some_value”: do something here break; case “some_other_value”: do something here break; default: do something here }
  • 17. Procedures and Functions • Scripts can contain linear, procedural code. • Scripts can also contain references to reusable bits of code, called functions. ▫ Built-in language functions ▫ Functions you write yourself. • [Note at this point in the presentation I talked a bit about how every element you see in an application can be boiled down to its logical structures and the code you want to execute within those structures.]
  • 18. Some Application Examples • Static web site with some snippets of interactivity ▫ The example I used was a simple form on a web site. • A library catalog with a content discovery mechanism ▫ I showed VIRGO (http://search.lib.virginia.edu). • Custom Web-based application like NINES ▫ That would be http://nines.org • WordPress/dynamic platform such as Omeka ▫ I showed two Omeka sites: Lincoln at 200 (http://lincolnat200.org) and MITH’s Vintage Computers (http://mith.umd.edu/vintage-computers/) ▫ Clicked through to show exhibit & item conceptually same in both sites (because of framework). ▫ Data goes in, data is pulled out; it exists in one place but accessed many ways
  • 19. Let’s Design an Application • What do you want it to do? • What type of programming is required? • Does language matter? • What elements of programming are required (GUI? Actions? Frameworks? etc) • What can you leverage? • What comes next? ▫ Being logical, being incremental, being procedural, being functional, being a programmer...and then talking to specialists.
  • 20. And then... • Asked the group for examples of ideas/tools/things they wanted to do. Some examples: ▫ Discover similarities between two data sets ▫ Social annotation of images/primary sources ▫ Visualizing relationships between data • Turns out you need three things for all of the projects/ideas people had: ▫ Primary material ▫ Metadata ▫ Interface/use thoughts
  • 21. And THEN... • We walked through several examples and kept coming back to: ▫ Logical construction of actions; explain it to someone in “pseudocode”  “If I click on this link, I want X to happen, and if I select this form element and that form element together, I want Y to happen”, etc. ▫ Most processes can be broken into smaller processes, all loopy or controlled structures in some way. ▫ If you can think of what you want to see or do, you can tell the computer how to do it so you can see it. ▫ You don’t need to be a Comp. Sci. person to do any of the above – just an imaginative and relatively logical person.

×