Anne Collet
Citizens 3.0
Information & Communication Technologies
2008
2009
1994
2004
1997
2009
commoditization cost ↘︎
↖︎
=>
the Software as a Service business model
that many tech startups apply
a BM which relies heavily on the cloud infrastructure
“Everybody should learn how to program a computer...
because it teaches you how to think.”
- Steve Jobs
“Coding is the 21st century literacy.”
- Neelie Kroes
“Don't just play on your phone. Program it.”
- Barack Obama
© BestReviews
are machines that
can be told what to do
are written instructions that
define what we want the computer to do
program
computer
input
device
output
device
info in
info out
treatment
storage
In order to be executable by the computer,
instructions must be passed to it in
a sequence of 0s and 1s
it's a base-2 system
a bit (= binary digit)
can only take 2 possible values :
a byte is a set of 8 bits
hence the possibility to represent
2^8 (= 256) different "things"
(numbers, colors, characters,...)
128s 64s 32s 16s 8s 4s 2s 1s
0 0 0 0 0 0 0 1
the equivalent decimal number is : 1
128s 64s 32s 16s 8s 4s 2s 1s
0 0 0 0 0 0 1 1
the equivalent decimal number is : 3
128s 64s 32s 16s 8s 4s 2s 1s
1 0 1 0 0 0 1 1
the equivalent decimal number is : 163
128s 64s 32s 16s 8s 4s 2s 1s
87
65
71
79
78
W
A
G
O
N
1001101001001010100
first_name = gets.chomp
vs
these 0s and 1s represent the discrete states
OFF, False, 0 Volts, no current flowing
ON, True, +Volts, the current flows
that must take the computer's core components
i.e. the transistors
once charged electronically, billions of tiny transistors...
will execute the logic we want
combined on a thin film of silicon, a semiconductor material,
to form an integrated circuit (aka microchip)
algorithm :
a set of instructions
that precisely defines
a sequence of operations
to be performed
algorithmics :
the art of building a procedure
which can solve a problem
by breaking it down
into small logical steps
flowchart is one of the ways to represent an algorithm
0. Enumerate numbers until a defined stopper ('N')
1. Start by considering 'number' is equal to 1
2. If 'number' is a multiple of 3, say Fizz
3. If 'number' is a multiple of 5, say Buzz
4. If 'number' is a multiple of both, say FizzBuzz
5. Else say the current value of 'number'
6. Increment the value of 'number' by 1
7. Repeat until the value of 'number' is equal to 'N'
http://rosettacode.org/wiki/FizzBuzz
ASSEMBLY
http://rosettacode.org/wiki/FizzBuzz
RUBY
JAVA
JAVASCRIPT
text editor
terminal
online resources
ergonomic keyboard (Dvorak, Bépo,...)
1
3
2
a desktop application is
a program that runs locally on the user's computer
e.g. Microsoft Excel 2010
needs to
be installed on
the user's computer
strict hardware
requirements
(hard disk, RAM,...)
one version
for each OS
(Windows, Mac,...)
complicated
updates
no Internet connection needed to use it
often, basic
user interfaces
a mobile application is
a program that runs on a mobile device
and is exchanging data with a remote server via Internet
needs to
be installed on
the user's mobile device
e.g. Zoho Sheet Mobile
+
- for iOS (Objective C or Swift)
- for Android (Java)
- for Windows Phone (C#)
=> 2 to 3 times the cost
of a web app !
3 very different families of
technologies / mobile OS :
a web application is
a program that runs on a remote web server
and is displayed on the user's computer's web browser
all you need is
a web browser on
the user's computer
e.g. Google Sheets
works even on users' devices with limited hardware capabilities
one single version of the app,
with continuous
development
seamless upgrade & easier maintenance
big problem for the user
if bad internet connection!
more interactive, media-rich user interfaces
the global system of INTERconnected computer NETworks
Vint Cerf
Bob Kahn
ISP = Internet Service Provider
wired
wired
wireless
wireless
ISP = Internet Service Provider
in Belgium ?
ISP = Internet Service Provider
the (World Wide) Web
Tim Berners-Lee
Robert Cailliau
the (World Wide) Web
accessible through a web browser
identifiable thanks to their unique URL/URI
connected together
via hyperlinks,
which allow us to surf
from one to another
a gigantic space of resources (images, HTML documents,...)
* aka, navigate from one web page to another
by following hyperlinks
the World Wide Web is one of the many services
relying on the Internet infrastructure
the World Wide Web is one of the many services
relying on the Internet infrastructure
the World Wide Web is one of the many services
relying on the Internet infrastructure
www.google.com = IP address ?
url = IP address
Example :
www.google.com = 216.58.208.46
DNS = Domain Name System
google.com = 216.58.208.46
url = IP address
webmaster
web visitors
http request / http response
(aka site vitrine)
http request / http response
(aka web application)
( = the front-end part )
content
+ structure
style
dynamism
+ usability
( = the back-end part )
thanks to API (application programming interfaces)
API
API
API
API
{"richestPeople":[
{"firstName":"Bill", "lastName":"Gates", "value":"81"},
{"firstName":"Carlos", "lastName":"Slim", "value":"79"},
{"firstName":"Warren", "lastName":"Buffet", "value":"72"}
]}
what a machine likes to see
more & more applications are created today
by calling the APIs of third-party web services
(Google maps, Facebook authentication,...)
can be integrated into your application
by calling and consuming their API
select the best ones
already widely tested & acclaimed
for their usability & functionality
Stripe (payment)
MailChimp (e-mailing)
Uber
application stack
focus on your core business
and outsource the rest through APIs calls