intro computer fundamentals

41
Introduction to computers and programming

Upload: prabhu-govind

Post on 13-Dec-2014

384 views

Category:

Education


2 download

DESCRIPTION

Computer Intro

TRANSCRIPT

Page 1: Intro computer fundamentals

Introduction to computers and programming

Page 2: Intro computer fundamentals

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

Page 3: Intro computer fundamentals

The computer

Page 4: Intro computer fundamentals

Internally

Page 5: Intro computer fundamentals

The connections

Page 6: Intro computer fundamentals

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

Page 7: Intro computer fundamentals

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 8: Intro computer fundamentals

Operations on bits

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

• Operators: AND OR XOR NOT

• Example tablesAND

0 1

0 0 0

1 0 1

OR 0 1

0 0 1

1 1 1

XOR 0 1

0 0 1

1 1 0

Page 9: Intro computer fundamentals

RAM/ROM

Memory mappingAddress Values0000 00010002......

..

FFFF

• Size reminder:• Kilobyte Kb 210

~103

• Megabyte Mb 220

~106

• Gigabyte Gb 230

~109

• Terabyte Tb 240

~1012

• Petabyte Pb 250

~1015

• …

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 10: Intro computer fundamentals

HD/DVD

track

sector

head

Page 11: Intro computer fundamentals

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

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Page 12: Intro computer fundamentals

Keyboard/Mouse

• Each key (or combination of keys) of the keyboard sends a code to the computer.

• The code is interpreted and converted to the corresponding ASCII or Unicode number.

• The mouse movements 1 to 4 bytes (vertical &

horizontal)

• Buttons Clicked, pressed, rolled

buttons

Page 13: Intro computer fundamentals

ASCII & Unicode

• ASCII 7/8 bits• Unicode

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

• od -c od -h

Page 14: Intro computer fundamentals

Software layers

ROM

Hardware

Operating System

User Interface

Software

Files

CPU, RAM, HD, DVD

Word, scripts, mail, web browser…

Data (.doc, .mp3)

BIOS

Linux

CLI, X-Windows

Windows

Windows

MacOSX

Firmware

Quartz

Page 15: Intro computer fundamentals

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 16: Intro computer fundamentals

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

Page 17: Intro computer fundamentals

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

filenamesuffix

path

Page 18: Intro computer fundamentals

File types

• Executable .exe .app Unix requires « x »

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

• Special cases in Unix STDIN STDOUT STDERR

Page 19: Intro computer fundamentals

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 20: Intro computer fundamentals

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

Page 21: Intro computer fundamentals

Network (ethernet or wireless)

• Computer talk to each other via network protocols ip, tcp, http, ftp, …

• TCP/IP transmission control

protocol/internet protocol

• Handshaking• Transmission• Ackowledgement

• DNS Domain Name Server

• URL Universal Resource

Locator

• IP addess 192.42.197.51

Page 22: Intro computer fundamentals

DNS reminder

Primary DNS

Root DNS

Local DNS

Client query Target server

1

2 3

45

6

www.expasy.org

129.194.8.64

*.org

dns.anywhere.net

client.anywhere.net

www.expasy.org ??

Page 23: Intro computer fundamentals

Packets

The data travels within units called packets

Page 24: Intro computer fundamentals

Packet breakout

Usual TCP/IP payload per packet: 512 bytes

Page 25: Intro computer fundamentals

Introduction to programming

Page 26: Intro computer fundamentals

What is a program?

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

Page 27: Intro computer fundamentals

Pseudocode

• This is the pseudocode for a game of Monopoly

Page 28: Intro computer fundamentals

Flowcharts

Page 29: Intro computer fundamentals

Flowcharts details

Page 30: Intro computer fundamentals

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…

Page 31: Intro computer fundamentals

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, but

fast to debug (no need to recompile)

• Intermediate Slow…

Page 32: Intro computer fundamentals

Source code

• Instructions Statement, blocks Affectation Operators Loops Tests Subroutines Comments

• Data structures Variable List Array Hash Pointers Objects

Page 33: Intro computer fundamentals

Source code (2)

• Statement, blocks One or more

instructions for the processor

• 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 34: Intro computer fundamentals

Source code (3)

• Loops Allow the computer

to repeat blocks

• Tests Decide what to do

• Subroutines Programs

frequently called (functions)

• Comments The most important

lines of the source code…

• Pointers Reference to region

in memory (address)

• Objects Combination of data

and code

Page 35: Intro computer fundamentals

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

Page 36: Intro computer fundamentals

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

Do you see any problem??

Try with this:

« The quick brown fox, jumps over the lazy dog. »

Page 37: Intro computer fundamentals

Flowchart

Page 38: Intro computer fundamentals

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

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

Page 39: Intro computer fundamentals

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

Page 40: Intro computer fundamentals

Summary of the week

• Monday Intro computers &

programming Intro Unix Tutorial Unix

• Tuesday Intro Perl Regexp & Perl In-liners

• Wednesday Object Oriented

programming BioPerl EMBOSS

• Thursday Database indexing BLAST HTML & cgi-bin

• Friday Finish exercises Users questions

Page 41: Intro computer fundamentals

Unix

• Next presentation…

Vassilios Vassilios aliasalias

UnixMan!!UnixMan!!!!