Professional Documents
Culture Documents
programming
Content
• Hardware • Network
• Information storage Protocols
RAM, ROM Packets
HD, DVD • Programming
• Display Algorithm
Images Pseudocode
Characters (fonts) Flowchart
• File system/type • Languages
Encryption • Source code
Compression Example
The computer
Internally
The connections
Information storage
• 1 bit • bit (1 or 0)
• 8 bits • byte (octet) (28)
• 16 bits • word (216)
• 32 bits • double (232)
• 64 bits • long double (264)
OR 1 1 1
XOR XOR 0 1
NOT 0 0 1
1 1 0
RAM/ROM
Memory mapping
Address Values • Size reminder:
0000 10111001
00001111
• Kilobyte Kb 210 ~103
0001
0002 11100011 • Megabyte Mb 220 ~106
.. • Gigabyte Gb 230 ~109
.. • Terabyte Tb 240 ~1012
..
• Petabyte Pb 250 ~1015
• …
..
FFFF 00100100
HD/DVD
track
sector
head
Display
QuickTime™ et un
décompresseur TIFF (non compressé)
sont requis pour visionner cette image.
• od -c od -h
Software layers
bin lib
emacs X11
Windows Unix
Path
suffix
path filename
File types
• Data
Text (.txt)
Music (.mp3)
Image (.jpg, .gif)
Movie (.mpg, .mov)
Binary (.bin)
Encryption / compression
• Compression
Reducing the size of files
E.g., .mp3, .gz, .jpg, .zip
• Encryption
Protecting your privacy
E.g., .pgp
• Packing
Grouping the files
E.g., .tar
Networks
• Direct
USB 11Mb-480Mb
Ethernet 10Mb-1Gb
• Wired
Modem 56Kb
ADSL 600Kb-8Mb
LAN 10Mb-10Gb
• Wireless
Bluetooth 1Mb-20Mb
WIFI (AirPort) 11Mb-54Mb
Network (ethernet or wireless)
• TCP/IP • DNS
Domain Name Server
transmission control
protocol/internet protocol • URL
Universal Resource Locator
• IP addess
192.42.197.51
DNS reminder
2 Root DNS 3
*.org
5 4
Local DNS Primary DNS
dns.anywhere.net www.expasy.org
1 6
www.expasy.org ??
• How to cook?
• The algorithm
• Are you a programmer?
Pseudocode
• Compiler+linker • Compiler+linker
Fortran, C, Pascal, C++… Fast to execute, but slow to
debug
• Interpreter • Interpreter
Basic, Perl… Slow to execute, but fast to
debug (no need to recompile)
• Intermediate
• Intermediate Slow…
Java
Source code
• Loops • Pointers
Allow the computer to Reference to region in
repeat blocks memory (address)
• Tests • Objects
Decide what to do
Combination of data and
• Subroutines code
Programs frequently
called (functions)
• Comments
The most important lines
of the source code…
Example: a text to treat
« Noon rings out. A wasp, making an ominous sound, a sound akin to a klaxon or a tocsin, flits
about. Augustus, who has had a bad night, sits up blinking and purblind. Oh what was that word
(is his thought) that ran through my brain all night, that idiotic word that, hard as I'd try to pun it
down, was always just an inch or two out of my grasp - fowl or foul or Vow or Voyal? - a word in
a quizz which, by association, brought into play an incongruous mass and magma of nouns,
idioms, slogans and sayings, a confusing, amorphous outpouring which I sought in vain to control
or turn off but which wound around my mind a whirlwind of a cord, a whiplash of a cord, a cord
that would split again and again, would knit again and again, of words without communication or
any possibility of combination, words without pronunciation, signification or transcription but out
of which, notwithstanding, was brought forth a flux, a continuous, compact and lucid flow: an
intuition, a vacillating frisson of illumination as if caught in a flash of lightning or in a mist
abruptly rising to unshroud an obvious sign - but a sign, alas, that would last an instant only to
vanish for good. »
Gilbert Adair
Result…
a=97 n=91
b=15 o=104 Do you see any problem??
c=26 p=15
d=35 q=1
f=23 r=43
g=32 s=59
h=44 t=77
Try with this:
i=90 u=52
j=1 v=4 « The quick brown fox, jumps over
k=5 w=31 the lazy dog. »
l=33 x=2
m=17 y=13
z=2
Flowchart
Source code example
foreach $line (@text) { # read one line from the array into $line and repeat for each line
@table = split(//,$line); # read each character of the line in an array
while ($char=pop(@table)) { # read one character of the array 'table' and repeat for all
$char =~ s/[^a-z]//; # keep only the alphabetical character a to z
if ($char) { # check if the character exists and execute the block
$count{$char}++; # if yes, increment by one the hash 'count'
}
}
}
# print each character and its number of occurence one per line
foreach $c (keys %count) {
print "$c=$count{$c}\n";
}
exit; # quit the program
Tips
• Monday • Wednesday
Intro computers & Object Oriented programming
programming BioPerl
Intro Unix EMBOSS
Tutorial Unix • Thursday
• Tuesday Database indexing
BLAST
Intro Perl
HTML & cgi-bin
Regexp & Perl In-liners
• Friday
Finish exercises
Users questions
Unix
• Next presentation…
Vassilios
alias
UnixMan!!!