0% found this document useful (0 votes)
68 views41 pages

Introduction To Computers and Programming

Introduction to computers and programming Content Hardware Information storage RAM, ROM HD, DVD Network Protocols Packets Programming Algorithm Pseudocode Flowchart Display Images Characters (fonts) file system / type Encryption Compression Languages Source code Example the computer Internally the connections information storage 1 bit 8 bits 16 bits 32 bits 32 bits 64 bits bit (1 or 0) byte (octet) (28) word (216) double (232) long double (
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views41 pages

Introduction To Computers and Programming

Introduction to computers and programming Content Hardware Information storage RAM, ROM HD, DVD Network Protocols Packets Programming Algorithm Pseudocode Flowchart Display Images Characters (fonts) file system / type Encryption Compression Languages Source code Example the computer Internally the connections information storage 1 bit 8 bits 16 bits 32 bits 32 bits 64 bits bit (1 or 0) byte (octet) (28) word (216) double (232) long double (
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 41

Introduction to computers and programming

Content
Hardware Information storage
RAM, ROM HD, DVD

Network
Protocols Packets

Programming
Algorithm Pseudocode Flowchart

Display
Images Characters (fonts)

File system/type
Encryption Compression

Languages Source code


Example

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.

ASCII & Unicode


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

od -c od -h

Software layers
Files
Software User Interface Quartz

Data (.doc, .mp3)


Word, scripts, mail, web browser CLI, X-Windows Windows Windows BIOS

Operating System
ROM Hardware

MacOSX
Firmware

Linux

CPU, RAM, HD, DVD

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

File system organisation

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

Special cases in Unix


STDIN STDOUT STDERR

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)


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

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

Usual TCP/IP payload per packet: 512 bytes

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

Source code -> Object code


Compiler+linker
Fortran, C, Pascal, C++

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

Source code (2)


Statement, blocks
One or more instructions for the processor

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

Source code (3)


Loops
Allow the computer to repeat blocks

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

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 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.

Flowchart

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 exit open(FILE, $filename) || die "Cannot open file $filename\n\n"; @text = <FILE>; # add each line of the file to an array close 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 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

Summary of the week


Monday
Intro computers & programming Intro Unix Tutorial Unix

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

Vassilios alias UnixMan!!!

You might also like