Professional Documents
Culture Documents
Content
Hardware Information storage
RAM, ROM HD, DVD
Network
Protocols Packets
Programming
Algorithm Pseudocode Flowchart
Display
Images Characters (fonts)
File system/type
Encryption Compression
The computer
Internally
The connections
Information storage
1 bit 8 bits 16 bits 32 bits 64 bits bit (1 or 0) byte (octet) (28) word (216) double (232) long double (264)
Encoding information on a fixed element of length n with a base b gives bn non-redundant possibilities
Information coding
Binary
0 or 1
How to count
128 64 32 16 8 4 2 1 1 0 1 1 0 1 0 1
Octal
0-7
Hexadecimal
0-9+A-F
128+32+16+4+1=
181 (decimal) 265 (octal) B5 (hexadecimal)
Decimal
0-9
Signed vs unsigned
0 to 255 -127 to +127
Operations on bits
Booleans:
0 = false = no 1 = true = yes
Example tables
AND 0 1 OR 0 1 XOR 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0
Operators:
AND OR XOR NOT
RAM/ROM
Memory mapping Address Values 10111001 0000 00001111 0001 11100011 0002 .. .. ..
Size reminder:
Kilobyte Megabyte Gigabyte Terabyte Petabyte Kb Mb Gb Tb Pb 210 ~103 220 ~106 230 ~109 240 ~1012 250 ~1015
.. FFFF
00100100
HD/DVD
track
sector head
QuickTime et un dcompresseur TIFF (non compress) sont requis p our vision ner cette image.
Display
Fonts
Bitmap Vectors
TrueType, OpenType, PostScript
Screen pixel or dots Color coding: 32 bits 1 pixel = 3 bytes of color (RGB)+1 byte alpha channel (transparency) 1600x1200x4bytes=7,5 Mb!
Keyboard/Mouse
Each key (or combination The mouse movements of keys) of the keyboard 1 to 4 bytes (vertical & horizontal) sends a code to the computer. Buttons Clicked, pressed, rolled The code is interpreted and converted to the buttons corresponding ASCII or Unicode number.
od -c od -h
Software layers
Files
Software User Interface Quartz
Operating System
ROM Hardware
MacOSX
Firmware
Linux
File systems
Method the OS uses to store information
Storage unit, directories, subdirectories (Windows, VMS) Single arborescence (Linux, MacOSX, all Unix)
Disk 1
C: DOCS PROGS
Disk 2
D: CONFIG
Disk 2
/
DATA
Directories
EXPT2
/usr
/home
Disk 1
local lib phil john
WORD
EXCEL
EXPT1
Subdirectories
bin
emacs
X11
Windows
Unix
Path
The path is the logical address used by the system or the user to locate a file. Example:
/bd_du_Palais/35/etage/4/appart/12/Dupont_ Jean.txt
path
filename
suffix
File types
Executable
.exe .app Unix requires x
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
DNS
Domain Name Server
URL
Universal Resource Locator
IP addess
192.42.197.51
DNS reminder
3 4
2 5
Root DNS
*.org
Local DNS
dns.anywhere.net
Primary DNS
www.expasy.org
6
www.expasy.org ??
Client query
client.anywhere.net
Target server
129.194.8.64
Packets
The data travels within units called packets
Packet breakout
Introduction to programming
What is a program?
How to cook? The algorithm Are you a programmer?
Pseudocode
This is the pseudocode for a game of Monopoly
Flowcharts
Flowcharts details
Languages
Low level (processor dependent) Machine code, assembler High level: structured, procedural Fortran, C, Pascal High level: object oriented C++, Java, C#, Perl, Objective-C Virtual machines Java, C# Scripting Perl, Python, JavaScript
Compiler+linker
Fast to execute, but slow to debug
Interpreter
Basic, Perl
Interpreter
Slow to execute, but fast to debug (no need to recompile)
Intermediate
Java
Intermediate
Slow
Source code
Instructions
Statement, blocks Affectation Operators Loops Tests Subroutines Comments
Data structures
Variable List Array Hash Pointers Objects
Variable
A region in memory that can be modified Exists in different types
Scalar, char, numeric, boolean List, array Hash Combination->data structure
Affectation
Change to a variable
Operator
affect one or more variable
+ * - / AND OR NOT
Pointers
Reference to region in memory (address)
Tests
Decide what to do
Objects
Combination of data and code
Subroutines
Programs frequently called (functions)
Comments
The most important lines of the source code
Gilbert Adair
Result
a=97 b=15 c=26 d=35 f=23 g=32 h=44 i=90 j=1 k=5 l=33 m=17 n=91 o=104 p=15 q=1 r=43 s=59 t=77 u=52 v=4 w=31 x=2 y=13 z=2
Flowchart
# 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
Think about your problem Create a flowchart Create the pseudocode Verify the memory used by your variables Write the code Test the code
For all the possible functions or cases (if possible) Give it to users as a beta (if not possibe) Sell it (if you work for Microsoft ;-)
Debug
Wednesday
Object Oriented programming BioPerl EMBOSS
Tuesday
Intro Perl Regexp & Perl In-liners
Thursday
Database indexing BLAST HTML & cgi-bin
Friday
Finish exercises Users questions
Unix
Next presentation