introduction to computers and programming - … · introduction to computers and programming...

21
1 Introduction to computers and programming Laurent Falquet, Basel, October 2006 Swiss Institute of Bioinformatics Swiss EMBnet node LF Basel October 2006 Summary of the week Monday Intro computers & programming Intro Unix Tutorial Unix Tuesday Intro Perl I Variables, loops, conditions… Intro Regexp Wednesday Intro Perl II Reference, subroutines, packages, modules… Wednesday Object Oriented programming BioPerl Thursday EMBOSS Database indexing BLAST Friday Test HTML & cgi-bin Finish exercises Users questions

Upload: phamnhu

Post on 30-Jul-2018

238 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

1

Introduction to computers andprogramming

Laurent Falquet, Basel, October 2006Swiss Institute of BioinformaticsSwiss EMBnet node

LF Basel October 2006

Summary of the week

• Monday Intro computers &

programming Intro Unix Tutorial Unix

• Tuesday Intro Perl I

Variables, loops,conditions…

Intro Regexp• Wednesday

Intro Perl II Reference, subroutines,

packages, modules…

• Wednesday Object Oriented

programming BioPerl

• Thursday EMBOSS Database indexing BLAST

• Friday Test HTML & cgi-bin Finish exercises Users questions

Page 2: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

2

LF Basel October 2006

Content

• Hardware• Information storage

RAM, ROM HD, DVD

• Display Images Characters (fonts)

• File system/type Encryption Compression

• Network Protocols Packets

• Programming Algorithm Pseudocode Flowchart

• Languages• Source code

Example

LF Basel October 2006

The computer

Page 3: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

3

LF Basel October 2006

Internally

LF Basel October 2006

The connections

Page 4: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

4

LF Basel October 2006

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 abase b gives bn non-redundant possibilities

LF Basel October 2006

Information coding

• Binary 0 or 1

• Octal 0-7

• Hexadecimal 0-9+A-F

• Decimal 0-9

• How to count

• 128+32+16+4+1= 181 (decimal) 265 (octal) B5 (hexadecimal)

• Signed vs unsigned 0 to 255 -127 to +127

128 64 32 16 8 4 2 1

1 0 1 1 0 1 0 1

Page 5: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

5

LF Basel October 2006

Operations on bits

• Booleans: 0 = false = no 1 = true = yes

• Operators: AND OR XOR NOT

• Example tables

10100010AND

11110010OR

01110010XOR

LF Basel October 2006

RAM/ROM

Memory mappingAddress Values000000010002......

..FFFF

• Size reminder:• Kilobyte Kb 210 ~103

• Megabyte Mb 220 ~106

• Gigabyte Gb 230 ~109

• Terabyte Tb 240 ~1012

• Petabyte Pb 250 ~1015

• Exabyte Eb 260 ~1018

• …

1 0 1 1 1 0 0 1

0 0 0 0 1 1 1 1

1 1 1 0 0 0 1 1

0 0 1 0 0 1 0 0

Page 6: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

6

LF Basel October 2006

HD/DVD

track

sector

head

LF Basel October 2006

Display

• Screen pixel or dots• Color coding: 32 bits• 1 pixel = 3 bytes of color

(RGB)+1 byte alpha channel(transparency)

• 1600x1200x4bytes=7,5 Mb!

• Fonts Bitmap Vectors

TrueType, OpenType,PostScript

Page 7: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

7

LF Basel October 2006

Keyboard/Mouse

• Each key (or combinationof keys) of the keyboardsends a code to thecomputer.

• The code is interpretedand converted to thecorresponding ASCII orUnicode number.

• The mouse movements 1 to 4 bytes (vertical &

horizontal)• Buttons

Clicked, pressed, rolled

buttons

LF Basel October 2006

ASCII & Unicode

• ASCII 7/8 bits• Unicode

UTF-8/16/32 bits ISO-8859 (Latin)

• od -c od -h

Page 8: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

8

LF Basel October 2006

Software layers

ROM

Hardware

Operating System

User Interface

Software

Files

CPU, RAM, HD, DVD

Word, scripts, mail, web browser…

Data (.doc, .mp3)

BIOS/EFI

Linux

CLI, X-Windows

Windows

Windows

MacOSX

Firmware/EFI

Quartz

LF Basel October 2006

File systems

• Method the OS uses to store information Storage unit, directories, subdirectories

(Windows, VMS) Single arborescence (Linux, MacOSX, all Unix)

• What exactly is a file? a piece of information (text, graphic, data, music

program, script) it is identified by a name and an logical address

(or path) other informations: date, size, type, creator,

ownership, physical address…

Page 9: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

9

LF Basel October 2006

File system organisation

Disk 1 Disk 2

Directories

Subdirectories

Windows

DOCS PROGS

WORD EXCEL

CONFIG DATA

EXPT1 EXPT2

/

/usr /home

phil johnlocal

bin lib

emacs X11

Unix

D:C:

Disk 1

Disk 2

LF Basel October 2006

Path

• The path is the logical address usedby the system or the user to locate afile.

• Example:/bd_du_Palais/35/etage/4/appart/12/Dupont_ Jean.txt

filenamesuffix

path

Page 10: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

10

LF Basel October 2006

File types

• Executable .exe .app Unix requires « x »

• Data Text (.txt) Music (.mp3) Image (.jpg, .gif) Movie (.mpg, .mov) Binary (.bin) Compressed (.zip, .gz)

• Special cases in Unix STDIN STDOUT STDERR

LF Basel October 2006

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

Page 11: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

11

LF Basel October 2006

Networks

• Direct USB 11Mb-480Mb Firewire 400-800Mb Ethernet 10Mb-1Gb

• Wired Modem 56Kb ADSL 600Kb-8Mb LAN 10Mb-10Gb

• Wireless Bluetooth 1Mb-20Mb WIFI (AirPort) 11Mb-54Mb

LF Basel October 2006

Network (ethernet or wireless)

• Computer talk to eachother via networkprotocols ip, tcp, http, ftp, …

• TCP/IP transmission control

protocol/internetprotocol

• Handshaking• Transmission• Ackowledgement

• DNS Domain Name Server

• URL Universal Resource

Locator• IP addess

192.42.197.51

Page 12: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

12

LF Basel October 2006

DNS reminder

Primary DNS

Root DNS

Local DNS

Client query Target server

1

2 3

45

6

www.expasy.org

192.33.215.46

*.org

dns.anywhere.net

client.anywhere.net

www.expasy.org ??

LF Basel October 2006

Packets

The data travels withinunits called packets

Page 13: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

13

LF Basel October 2006

Packet breakout

Usual TCP/IP payload per packet: 512 bytes

Introduction to programming

Page 14: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

14

LF Basel October 2006

What is a program?

• How to cook?• The algorithm• Are you a programmer?

LF Basel October 2006

Pseudocode

• This is the pseudocode for a game of Monopoly

Page 15: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

15

LF Basel October 2006

Flowcharts

LF Basel October 2006

Flowcharts details

Page 16: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

16

LF Basel October 2006

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…

LF Basel October 2006

Source code -> Object code

• Compiler+linker Fortran, C, Pascal, C++…

• Interpreter Basic, Perl…

• Intermediate Java

• Compiler+linker Fast to execute, but

slow to debug• Interpreter

Slow to execute, butfast to debug (no needto recompile)

• Intermediate Slow…

Page 17: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

17

LF Basel October 2006

Source code

• Instructions Statement, blocks Affectation Operators Loops Tests Subroutines Comments

• Data structures Variable List Array Hash Pointers Objects

LF Basel October 2006

Source code (2)

• Statement, blocks One or more

instructions for theprocessor

• Affectation Change to a variable

• Operator affect one or more

variable + * - / AND OR

NOT…

• Variable A region in memory

that can be modified Exists in different

types Scalar, char, numeric,

boolean List, array Hash Combination->data

structure

Page 18: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

18

LF Basel October 2006

Source code (3)

• Loops Allow the computer

to repeat blocks• Tests

Decide what to do• Subroutines

Programs frequentlycalled (functions)

• Comments The most important

lines of the sourcecode…

• Pointers Reference to region

in memory (address)• Objects

Combination of dataand code

LF Basel October 2006

Example: a text to treat

« Noon rings out. A wasp, making an ominous sound, a sound akin to a klaxonor a tocsin, flits about. Augustus, who has had a bad night, sits up blinking andpurblind. Oh what was that word (is his thought) that ran through my brain allnight, that idiotic word that, hard as I'd try to pun it down, was always just aninch or two out of my grasp - fowl or foul or Vow or Voyal? - a word in a quizzwhich, by association, brought into play an incongruous mass and magma ofnouns, idioms, slogans and sayings, a confusing, amorphous outpouring which Isought in vain to control or turn off but which wound around my mind awhirlwind of a cord, a whiplash of a cord, a cord that would split again andagain, would knit again and again, of words without communication or anypossibility of combination, words without pronunciation, signification ortranscription but out of which, notwithstanding, was brought forth a flux, acontinuous, compact and lucid flow: an intuition, a vacillating frisson ofillumination as if caught in a flash of lightning or in a mist abruptly rising tounshroud an obvious sign - but a sign, alas, that would last an instant only tovanish for good. »

Gilbert Adair

Page 19: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

19

LF Basel October 2006

Result…

a=97b=15c=26d=35f=23g=32h=44i=90j=1k=5l=33m=17

n=91o=104p=15q=1r=43s=59t=77u=52v=4w=31x=2y=13z=2

Do you see any problem??

Try with this:« The quick brown fox, jumpsover the lazy dog. »

LF Basel October 2006

Flowchart

Page 20: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

20

LF Basel October 2006

Source code example

#!/usr/bin/perl -w # essential line of all perl scripts

$filename = "avoid.txt"; # affect « avoid.txt » to the variable $filename

# open the file, or exitopen(FILE, $filename) || die "Cannot open file ‘$filename’\n\n";@text = <FILE>; # add each line of the file to an arrayclose FILE;

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 arraywhile ($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 zif ($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 lineforeach $c (keys %count) {

print "$c=$count{$c}\n";}exit; # quit the program

LF Basel October 2006

Tips

• Think about yourproblem

• Create a flowchart• Create the

pseudocode• Verify the memory

used by yourvariables

• Write the code

• Test the code For all the possible

functions or cases (ifpossible)

Give it to users as abeta (if not possibe)

Sell it (if you workfor Microsoft©… ;-)

• Debug

Page 21: Introduction to computers and programming - … · Introduction to computers and programming Laurent Falquet, Basel, ... Source code •Instructions Statement, ... whirlwind of a

21

LF Basel October 2006

Unix

• Next presentation…

VassiliosVassiliosaliasalias

UnixManUnixMan!!!!!!