65
Programming Languages Coder Dojo - Limerick Mark Cahill – MBA, BEng

Coder dojo Limerick - introduction to programming languages

Embed Size (px)

DESCRIPTION

This is a presentation I delivered at Coder Dojo Limerick - http://coderdojo.com/We teach Kids to Code !

Citation preview

Page 1: Coder dojo Limerick - introduction to programming languages

Programming LanguagesCoder Dojo - Limerick

Mark Cahill – MBA, BEng

Page 2: Coder dojo Limerick - introduction to programming languages

Problem: I need to cross a river

Page 3: Coder dojo Limerick - introduction to programming languages

Bridge

Page 4: Coder dojo Limerick - introduction to programming languages

Bridge

Page 5: Coder dojo Limerick - introduction to programming languages

Possible solutions?

Page 6: Coder dojo Limerick - introduction to programming languages

Possible solutions

• Rocks• Swim• Boat• Bridge

Page 7: Coder dojo Limerick - introduction to programming languages

Rocks

Page 8: Coder dojo Limerick - introduction to programming languages

Rocks

• The River is too deep

Page 9: Coder dojo Limerick - introduction to programming languages

Bridge

Page 10: Coder dojo Limerick - introduction to programming languages

Swim

• There are Piranhas in the river• The current is too strong

Page 11: Coder dojo Limerick - introduction to programming languages

Bridge

Page 12: Coder dojo Limerick - introduction to programming languages

Bridge

Page 13: Coder dojo Limerick - introduction to programming languages

Bridge

Page 14: Coder dojo Limerick - introduction to programming languages

Bridge

Page 15: Coder dojo Limerick - introduction to programming languages

Boat

• I don’t know how to build a boat• I need to get a car across• The current is too strong & there is a

dangerous waterfall.

Page 16: Coder dojo Limerick - introduction to programming languages

Bridge

Page 17: Coder dojo Limerick - introduction to programming languages

Helicopter

• I don’t know how to build a helicopter• Where do I get the materials?• How long will it take to build?• How much will it cost?

Page 18: Coder dojo Limerick - introduction to programming languages

Bridge

Page 19: Coder dojo Limerick - introduction to programming languages

Bridge

Page 20: Coder dojo Limerick - introduction to programming languages

Bridge

Page 21: Coder dojo Limerick - introduction to programming languages

What kind of Bridge do I need?

• What material?• How big?• How strong?• How wide?• How many times will be used?• How much will it cost to build?• Will I toll the bridge?

Page 22: Coder dojo Limerick - introduction to programming languages

What kind of Bridge do I need?

• How long will it take to build?• Does it need to be lift to let boats by?• What happens is the water rises?• Does it need maintenance?• Has someone built one that fits my needs?• What volume of traffic will pass over it?• How many people will be using it?

Page 23: Coder dojo Limerick - introduction to programming languages

Q: Where is software used?

Page 24: Coder dojo Limerick - introduction to programming languages
Page 25: Coder dojo Limerick - introduction to programming languages
Page 26: Coder dojo Limerick - introduction to programming languages
Page 27: Coder dojo Limerick - introduction to programming languages
Page 28: Coder dojo Limerick - introduction to programming languages
Page 29: Coder dojo Limerick - introduction to programming languages
Page 30: Coder dojo Limerick - introduction to programming languages
Page 31: Coder dojo Limerick - introduction to programming languages
Page 32: Coder dojo Limerick - introduction to programming languages

Q: Where is software used?A: Everywhere

Page 33: Coder dojo Limerick - introduction to programming languages

Where I started

• Commodore 64 at the age of 9

Page 34: Coder dojo Limerick - introduction to programming languages

Language was called BASICNEW1 REM NUMBER GUESSING GAME2 PRINT "(CLR/HOME)"5 INPUT "ENTER UPPER LIMIT FOR GUESS "; LI10 NM = INT(LIRND(1))+115 CN = 020 PRINT "I'VE GOT THE NUMBER.": PRINT30 INPUT "WHAT'S YOUR GUESS "; GU35 CN = CN + 140 IF GU > NM THEN PRINT "MY NUMBER IS LOWER." : PRINT : GOTO 3050 IF GU < NM THEN PRINT "MY NUMBER IS HIGHER.": PRINT : GOTO 3060 IF GU = NM THEN PRINT "GREAT! YOU GOT MY NUMBER"65 PRINT "IN ONLY"; CN ;"GUESSES." : PRINT70 PRINT "DO YOU WANT TO TRY ANOTHER (Y/N)?"80 GET AN$ : IF AN$ = "" THEN 8090 IF AN$ = "Y" THEN 2100 IF AN$ <> "N" THEN 70110 END

Page 35: Coder dojo Limerick - introduction to programming languages

• Why do we need programming languages?

Page 36: Coder dojo Limerick - introduction to programming languages

Think like a computer

Page 37: Coder dojo Limerick - introduction to programming languages

Think like a computer

• Computers are from Venus, Humans are from Mars

• Computers “think” in a very different way to Humans.

• Computers are stupid, Humans are intelligent.

Page 38: Coder dojo Limerick - introduction to programming languages

Think like a computer

• Computers will do exactly as you tell them to do.

• Computers are very good at executing instructions over and over again, and will not get bored.

Page 39: Coder dojo Limerick - introduction to programming languages

Think like a computer

• Computers think in Binary.• People think about ‘things’ and how they

relate to each other

Page 40: Coder dojo Limerick - introduction to programming languages

Think like a computer

• Computers view of Website address– 173.194.37.104

• Human view of Website address– Google.ie

Page 41: Coder dojo Limerick - introduction to programming languages

Computer view of a photo

Page 42: Coder dojo Limerick - introduction to programming languages

Human view of a photo

Page 43: Coder dojo Limerick - introduction to programming languages

Think like a computer

• Computers view of Location

• Human view of Location– Next door to Starbucks, by the Luas, you can’t

miss it.

Page 44: Coder dojo Limerick - introduction to programming languages

High and Low Level Languages

• High Level languages – easy for a human to read. Examples are C++, Python, Java.

• Low level Languages – are designed to be easy for a computer to execute; also called machine language or assembly language

Page 45: Coder dojo Limerick - introduction to programming languages

High Level Languages

Page 46: Coder dojo Limerick - introduction to programming languages

Low Level Languages

Page 47: Coder dojo Limerick - introduction to programming languages

Hello World – C++

Page 48: Coder dojo Limerick - introduction to programming languages

Hello World – C#

Page 49: Coder dojo Limerick - introduction to programming languages

Hello World – 8051 assembler

Page 50: Coder dojo Limerick - introduction to programming languages

Hello World - Java

Page 51: Coder dojo Limerick - introduction to programming languages

Hello World -JavaScript

Page 52: Coder dojo Limerick - introduction to programming languages

Hello World - PHP

Page 53: Coder dojo Limerick - introduction to programming languages

Hello World – POV-Ray

Page 54: Coder dojo Limerick - introduction to programming languages

Hello World -Python

Page 55: Coder dojo Limerick - introduction to programming languages

Web

• PHP• Python• Java• Perl• HTML• Ruby on Rails• Javascript• Flash

Page 56: Coder dojo Limerick - introduction to programming languages

Desktop

• C• C++• Python• Perl• Java

Page 57: Coder dojo Limerick - introduction to programming languages

Games

• C• C++• Python• Perl• Java

Page 58: Coder dojo Limerick - introduction to programming languages

Artificial intelligence

• Lisp• Prolog

Page 59: Coder dojo Limerick - introduction to programming languages

Smart Phones

• iPhone, iPad, iPod -> Objective C• Android -> C, C++• Nokia -> Java ME, C++, Ruby• Window 7 -> C#

Page 60: Coder dojo Limerick - introduction to programming languages

Low level hardware

• C• Assembly

Page 61: Coder dojo Limerick - introduction to programming languages

Programming languages

Different languages solve different problems in different ways

Page 62: Coder dojo Limerick - introduction to programming languages

List of programming languages

• http://en.wikipedia.org/wiki/List_of_programming_languages

Page 63: Coder dojo Limerick - introduction to programming languages

What kind of Software Solution do I need?

• What material?• How big?• How strong?• How wide?• How many times will be used?• How much will it cost to build?• Will I toll the bridge?

Page 64: Coder dojo Limerick - introduction to programming languages

What kind of Software solution do I need?

• How long will it take to build?• Does it need to be lift to let boats by?• What happens is the water rises?• Does it need maintenance?• Has someone built one that fits my needs?• What volume of traffic will pass over it?• How many people will be using it?

Page 65: Coder dojo Limerick - introduction to programming languages

How do I cross a river?

• There are many ways to solve a problem.• Every problem is different.• Ask the right questions.• Break the problem into smaller pieces• You choose the best Tool for the Job !