Social Issues
Applications
Software
Virtual Machine
Hardware
Algorithmic Foundations
1
Spreadsheets
An electronic spreadsheet combines elements of:
a calculator
a word processor a database manager a graphing tool a modeling tool
…
Spreadsheet programs:
Widely used
Examples:
VisiCalc
MS Excel
2
Spreadsheets
Rows: 1, 2, 3, …
Columns: A, B, C, …
window
Window can be scrolled down/up
Activated using mouse or cursor
Example:
D2 means the cell at 2 nd row and 4 th column
3
Spreadsheets
Information in each cell may be:
Label
Numeric value
Mathematical formula
Labels
Text information that appear on the screen in a cell
Any cell can contain a label (row numbers and columns letters are also labels)
Format can be chosen: Font size, boldface, …
Example
A
1 Item1
2 3.25
B
Item2
5.75
C D
Total
labels
9.00
numeric values
E
4
Spreadsheets
Numeric values:
Like labels can be formatted e.g.
only 2 digits after the decimal point
negative value in parentheses
Mathematical formulas
Do not appear on the screen
Entering a formula usually require some extra keystroke be done first
Example:
C2 = A2 + B2
Total (C2) is computed automatically
Error message if A2 or B2 are not numeric values
Example: Payroll of a company
5
Spreadsheets
A
1
ID
2 101
3 102
4 103
5 104
6
105
7
B C
Name Age
Janet K 51
Adam R 18
Fred L 43
John A 53
Butch H 17
D
Rate
16.60
8.50
12.35
17.80
6.70
E F
Hours Pay
94
185
250
245
53
Pay of Janet D2*E2 formula needed for Pay
Entering the formulas:
Enter D2*E2 in cell F2
Copy (automatically supported) to other cells in column F
G
6
Spreadsheets
What you enter: (formulas entered)
A
1
ID
B
Name
C
Age
D
Rate
2
101
3
102
4
103
5
104
Janet K 51
Adam R 18
Fred L
John A
43
53
16.60
8.50
12.35
17.80
6
105 Butch H 17 6.70
What you see: (values computed)
A B C D
1 ID
2
101
3
102
4
103
5
104
6
105
Name
Janet K 51
Adam R 18
Fred L
John A
Age
43
53
Butch H 17
Rate
16.60
8.50
12.35
17.80
6.70
E
Hours
94
185
250
245
53
E
Hours
94
185
250
245
53
F
Pay
D2*E2
D3*E3
D4*E4
D5*E5
D6*E6
F
Pay
1560.40
1572.50
3087.50
4361.00
355.10
7
Spreadsheets
Other Features
Built-in functions for:
Average
Maximum
Minimum
User selects the desired cells and apply function
Graphics:
Data can be presented in graphical form
Line graph
Bar graph
Pie graph etc.
Multiple sheets can be handled at one time
Formulas can be propagated to all sheets in use (if possible)
Create 3-dimensional sheets
8
Spreadsheets
Other Features (contd)
User can write macros
Macro:
A series of instructions called by name
“ Like ” a function …
The name serves as a shortcut notation
Use of macros saves time
Example of a macro
Select spreadsheet
Select chart type
Print sheet
every time you call the macro the 3 tasks are done automatically
Some database functions are also included in some spreadsheet programs
9
Spreadsheets
Spreadsheet as a modeling tool
Spreadsheet software does more than just:
edit spreadsheets
Perform simple calculations
…
Spreadsheets allow quick data modification and result presentation
Suppose the owner of the payroll spreadsheet wants to give his/her employees a raise (in a good year)
For example the increment should be 2% for each employee
a new cell in the spreadsheet to hold the fixed increment: 2%
a new column headed New Pay is also needed to store the incremented pay for each employee
10
A
1
ID
2 101
3 102
4 103
5 104
6
105
7
8
9
Spreadsheets
B
Name
Janet K
Adam R
Fred L
John A
Butch H
C
Age
51
18
43
53
17
D
Rate
16.60
8.50
12.35
17.80
6.70
E F
Hours Pay
94 1560.40
185
250
245
1572.50
3087.50
4361.00
53 355.10
Base Increase % 2
Totals
G: new column for increased pay
C8: stores the 2% value
F9 and G9: store the total pay
$10936.50
G
New Pay
1591.61
1603.95
3149.25
4448.22
362.20
$11155.23
11
Spreadsheets
Needed formulas:
D2*(1 + $C$8/100)*E2 (entered in cell G2)
G3 … G6: inserted automatically (by copying) after inserting G2
same formula is used
$C$ in order to prevent indexing the C column for G2 … G6 (constant value!)
To compute the total in F9:
SUM(F2:F6) (entered in cell F9)
this means sum up all values in cells between F2 and F6
By copying to cell G9, the corresponding formula SUM(G2:G6) is automatically generated
The nice thing is now that if the owner wants to examine an increased pay using another percent, say 3%, only cell C8 needs to be modified!
the new column G and the total pays are adjusted automatically
12
A
1 ID
2 101
3 102
4 103
5 104
6 105
7
8
9
Spreadsheets
The owner may also use another more realistic formula for increments:
Each employee is given a “ merit ” percentage over a fixed base rate
B
Name
Janet K
Adam R
Fred L
John A
Butch H
Base Increase % 2
C
Age
51
18
43
53
17
D
Rate
16.60
8.50
12.35
17.80
6.70
E F G
Hours Pay
94 1560.40
Merit
3
185
250
245
1572.50
2
3087.50 3
4361.00
2
53 355.10
1
Totals $10936.50
H
New Pay
1638.42
1635.40
3241.87
4535.44
365.75
$11416.80
13
Spreadsheets
Formulas needed to be typed in (for “ merits ” example):
First, a column (we use G) is created to model the merits
Now column H is for new pay
D2*(1 + ($C$8 + G2)/100)*E2 (entered in H2)
Formulas in H3 … H6 are generated automatically after copying
Moreover, some spreadsheet program can perform “ goal seeking ”
Suppose the owner only knows:
What merits each employee is worth
The amount of money reserved for salaries (in the current year)
Owner types in these values AND spreadsheet software seeks the amount of base increase percentage automatically
For example:
Suppose amount for this year is $12000.00
Spreadsheet software will assign to cell C3 the value 7.33 automatically
Owner is now happy to know what is the base increment in this year (that does not exceed his/her expectation)
14
Spreadsheets
Imagine more complicated examples:
Company may vary the price of a product or the cost of supply and see immediately the effect on the profit
A chemist can experiment with the amount of additives necessary to obtain a smooth flow of a liquid in a pipe
An economist can track revenue impacts of a proposed tax increase
…
spreadsheet programs have become modeling and forecasting tools!
However:
Spreadsheets can only perform “ numeric ” modeling
Time dependence of data is not directly supported (but can be achieved)
15
Spreadsheets
Programming levels of spreadsheets:
Macro programming ( highest level):
Here a real programming language including (sequential, conditional, and interactive) instruction is provided in order to develop “ programs ” that simplify the work (of inputting formulas etc.)
Visual programming ( intermediate level):
Spreadsheet program acts like a (visual) language interpreter
it waits for the user to change something, and then delivers new results
“ event-driven programming ”
Can be compared to an (interpreted) functional language, since only formulas
(functions!) are used
Formulas can:
Explicitly use if (-statement): e.g. IF(A3 > B3, A3-B3, B3-A3)
Implicitly use loops: e.g. when determining a base (input) value given a target one
(like when we use target total pay 12000.00 to determine the base percentage)
Formulas (programming) ( lowest level):
Use of the basic arithmetic operations: e.g. A1*B1*C1
Use of built-in functions: e.g. SUM(B2:B10), ABS(A1), etc.
16
Databases
Since Herman Hollerith demonstrated the advantages of mechanizing the processing of large amounts of data (in the US census of 1890), data processing emerged and evolved to a very common task at almost each desktop computer in the world
Large amounts of data are stored in permanent storages (disks, tapes, … )
Related data are organized in files in background storage:
A file has a name and further attributes, and
It includes the (user) data themselves
Common file types:
Text files: produced by e.g. a word processor
Graphic files: produced by e.g. drawing program
Program files: produced by e.g. a compiler (which is also stored in a program file)
…
File manager:
Often part of the operating system
17
Databases
Is a program that offers operations for:
Creating a new file in a directory
Reading information in a directory
Updating information in a directory
Deleting a file from a directory
A directory is a list of records consisting of:
File name
File size
Time of last update
Access rights
…
File manager has elementary capabilities:
A file is for the file manager a black box
File manager cannot even distinguish file types
More than that is needed … ( data organization)
But file manager is indispensable, since access to background storage is always through it(s operations).
18
Databases
Data organization
Let us confine us to (simple) user data files (no program files)
Data are based on bits and bytes
but these are too small quantities in real life
Data can be better organized in:
Fields: a collection of bytes (e.g. employee name)
Records: a collection of fields (e.g. employee information – name, phone#, … )
Data files: a collection of records (e.g. all employees in a company)
Database: a collection of data files (e.g. employees, inventory, … )
Structure of a database (consisting of 1 file)
Field1 (e.g.ID) Field2 (e.g Name) Field3 (e.g. Age) Field4 (e.g. PayRate)
Record1
Record2
Record3
Record4
19
Database
Attention: A record is unlike an array, since it may include fields of different data types and those fields are not accessed via indexes!
Database management system (DBMS)
A program that manages files in a databases
Codd E. F. observed records in a file as one entity: 2-dimensional table
He introduced the relational database model:
Now an employee file is not a collection of individual records but it is a 2 dimensional table
He suggested new terminology (now widely used):
Entity: is what the table represents e.g. employees file
Tuple: represents one instance of this entity (the old record or a row in a table)
Attribute: Heading (or name) of a column in a table (e.g. employee name, age, … )
Primary key: An attribute (or a collection of attributes) that uniquely identifies a tuple (e.g. SSN of an employee)
Relation: Same as entity from the point of view of “ related ” attributes 20
Databases
A DBMS is more than a file manager:
It works on the level of attributes and relations
It knows how data are organized and how to access them the best (using primary keys)
User data is a glass box for a DBMS (not a black box)
A DBMS is really a complex program:
It has its own data definition language (DDL)
It has its own data manipulation language or query language (DML)
After defining the data using DLL, the query language can be used to perform complex operations on the data
SQL: Structured Query Language
Examples of queries in SQL:
Get all information about employee 123, the user poses the following query:
SELECTID, Name, Age, Payrate, Hours, Pay
FROM Employee
WHERE ID = 123;
21
Databases
Get pays of a specific employee:
SELECT Name, Pay
FROM Employee
WHERE Name = ‘ John Kay ’ ;
Get all information about employees ordered by their IDs:
SELECT *
FROM Employee
ORDERED BY ID;
Get all information about employees older then 21 years:
SELECT *
FROM Employee
WHERE Age > 21;
A query using two tables:
SELECT Employee.Name, Insurance.PanType
FROM Employee, Insurance
WHERE Employee.Name = ‘ Fred James ’ AND Employee.ID = Insurance.ID;
22
Databases
All-or-nothing …
Audio
Video
…
Accessing databases using browsers (hypermedia)
Data distributed among nodes
Replication and fault tolerance
Security
23
Numeric and Symbolic
Computation
Historically, the first application of computers is numeric computation:
Baggage Analytic Engine for mathematical equations
Hollerith solved statistical problems (US census
1940 ’ s computers motivated by military-based mathematical problems
Today: numeric computation still a challenging task
Problems with up to 10 15 mathematical operations are not uncommon
Typical areas:
Weather forecasting
Molecular analysis
Real-time imaging
Simulation
Natural language processing
24
Numeric and Symbolic
Computation
Mentioned challenges yielded to the development of supercomputers and highly parallel computers
Machines with 10 10 (and more) floating point operation per second have been constructed
Example: virtual reality ( real-time imaging)
Computer generates images in the same time frame and with the same orientation as when seen in real life
Images are displayed on glasses and headsets are used to feel like in a real scene
For example: as you are moving your arms, legs, and eyes, the computer may be generating and displaying simulated images of what you would see during a stroll through a forest.
High demands on computation ability:
about 24 images / sec
each image = e.g. one million of pixels (picture elements)
for each image: hundreds or thousands of mathematical operations
25
Numeric and Symbolic
Computation
Computer determines repeatedly:
How far you have moved (since last image)
How your eyes/head is positioned
What is visible (what colors etc.) and what not from the current perspective
Thus: 24 images/sec, 1000 pixels each, 1000s of operations a pixel more than 24 billion of mathematical operations per second
100 trillion (10 14 ) of operations are needed for a single result!
A regular computer (25 MIPS) would work 1.5 moths to generate result
A supercomputer: 1 hour
A teraflop machine: less than 2 minutes
26
Numeric and Symbolic
Computation
Even after the emergence of non-numeric applications (like word processing, databases, … ), numeric computation are still very demanding, and in particular the field of symbolic computing
Symbolic Computing
Traditional numeric problems are based on “ numeric values ” :
e.g. 13.57/1.8897 *sin(1.2* p ) – cos(1.34* p )*10 -4
Symbolic computing works on quantities that represent numbers (like unknown variables of high school mathematics)
Examples:
Spreadsheets formula: D2*E2
Simplify: -x 2 + 3x – 4 + 3x 2 – x + 1
Solve: x 3 + 2x 2 + 10x - 13 = 0
Factor: x 3 + x 2 – 3x – 3
Plot: sin(3x) for 0 <= x <= 2 p
27
Numeric and Symbolic
Computation
There is a variety of software tools for symbolic computation
(e.g. Mathematica, Maple)
Of course these tools are able to do numeric computations as well
In general the tools are interactive:
User: enters some request (here boldface)
Program: displays result (here italic)
Example: N[expr, i]
Entered when a numeric computation is wanted
Arithmetic expression expr is evaluated with the precision I
N[((13.1842/1.976) Sin[2.1 Pi])^(1.0/3.0) + 0.0406893, 6]
1.31346
28
Numeric and Symbolic
Computation
“ 10 ” = 1010 (4 bits)
“ 10 ” = ‘ 1 ’’ 0 ’ (2 bytes)
they can achieve high precision (but need more memory)
Examples:
Compute p with 250 precision:
N[Pi, 250]
3.1415926535…52271201909
Compute the factorial of 200:
200!
78865786479050…737472000…00000
29
Numeric and Symbolic
Computation
Simplify expression: Simplify[expr]
Simplify[(x-1)^2 + (x+2) + (2x-3)^2 + x]
12 – 12 x + 5 x 2
Factor polynomial: Factor[polynomial]
Factor[x^10 -1]
(-1 + x) (1 + x) (1 – x + x 2 - x 3 + x 4 ) (1 + x + x 2 + x 3 + x 4 )
Expand expression: Expand[expr]
Expand[(1 + x + 3y)^4]
1 + 4x + 6x 2 + 4x 3 + x 4 + 12y + 36xy + 36x 2 y + 12x 3 y + 54y 2 +
108xy 2 + 54x 2 y 2 + 108y 3 + 108xy 3 + 81y 4
30
Numeric and Symbolic
Computation
Solve equations: Solve[equation, unknown]
Solve[x^2 – 5x + 4 == 0, x] (Note: “==“ means equal)
{{x
4} { x
1}}
Solve transcendental equations like e x – 1.5 == 0
Solve[Exp[x]– 1.5 == 0, x]
{{x
0.405465}
Solve system of linear equations:
Solve[{2x + y == 11, 6x – 2y == 8}, {x, y}]
{{x
3, y
5}}
Solve system of linear equations:
Solve[{2x + y == 11, 2x + y == 8}, {x, y}]
{ }
31
Numeric and Symbolic
Computation
Calculus operations:
Differentiation:
D[x^3+6x-7, x]
6+ 3x 2
Integration:
Integrate[x^4 - 2, x]
1/5 x 5 - 2x
Summation of (convergent) infinite series:
N[Sum[1/2^i, {i, 1, Infinity}]]
1.0
Summation of (divergent) infinite series:
N[Sum[1/k, {k, 2, Infinity}]]
Sum diverges
32
Numeric and Symbolic
Computation
Plot[x^2 + x – 2, {x, -3, +2}]
Plot[5 Sin[3x], {x, 0, 2 Pi}]
33
Numeric and Symbolic
Computation
Various options for plots are available:
Discrete: only some points
3-dimensional: e.g. Plot3D[Sin[x*y]. {x, 0, 3}, {y, 0, 3}]
…
Process of performing user requests:
Get and analyze request
Activate the appropriate program to handle the request
Receive results
Display results
Issues:
Algorithms for symbolic computation
Exploiting parallelism
Distribution in a network
34
Computer Networks
A computer network consists of:
Computers
Peripheral devices (printers, disks, … )
An interconnection network
Types of networks:
local area network: LAN e.g. within buildings
Wide area network: WAN e.g. across countries
Benefits of networks:
Share physical resources: e.g. one printer in a department
Share logical resources: e.g. access to files, databases, …
Fault tolerance: e.g. if one printer fails, another can be used
Parallelism: e.g. print two documents on two different printers
Communication: e.g. email
35
Computer Networks
Use of supercomputers in a WAN
Groupware: Joint editing of documents
Electronic data interchange: Data transfer from a program to a program; e.g. orders as output from a program at company X are transmitted to another program (that handles bills and shipping) at company Y ( no human intervention)
Use of network-centric applications:
WWW
E-commerce
Search engines
…
36
Computer Networks
Internet
One of the largest computer networks
Outgrowth of ARPANET (US DoD)
ARPANET was developed in 1970s
Internet is a network of networks
Advantages (of Internet)
Voice mail
Cellular phones
Teleconferencing
…
Issues:
Reliability of networks
Efficiency
Privacy and confidentiality
37
Computer Networks
Vision: “ information superhighway ”
global information access from everywhere by everyone at every time
Information should be a basic infrastructure good
Information should flow like current/voltage flows from plugs
Information is accessible through services
Internet is a big WAN (actually a WAN of WANs/LANs)
Internet is big collection of nodes connected by wire, each node is either a individual computer (e.g. mainframe) or a switching station
38
Computer Networks
User connects to the internet using:
Workstation
PC
Laptop
…
Connection:
Direct: user connects by telephone line to a “ host ” (already connected to Internet)
Over LAN: user machine is in a LAN that is connected to an internet host
Email:
In order to communicate with someone via email you must know his/her email address
39
Computer Networks
Addressing scheme is hierarchical: jones@ournode.ccc.uleth.ca
“ jones ” identifies an individual account on a host computer
“ ournode ” identifies the host computer
“ ccc ” identifies where the host is located (perhaps central computer center)
“ uleth ” identifies the organization where this machine is located
(U of L)
“ ca ” specifies the country or organization sector (here Canada)
Problems with Email:
Is not protected (default)
Informality of an email may be misinterpreted (by reader)
Viruses in emails!
40
Computer Networks
Remote log-in
The service is called “ telnet ”
Used to log on to any computer in the Internet
Login types:
Anonymous
Individual
After logging in your are like a direct user of the machines
Why?
In order to access a database
In order to use a special compiler
In order to run a program on a supercomputer
…
Clearly, the user notices a delay when accessing remote machines
41
Computer Networks
File transfer:
Service: FTP (file transfer protocol)
This service allows a user to transfer files between two machines
Files can be of arbitrary length and of any type
Commands:
Put: from your machine to remote computer
Get: from remote computer to your machine
…
Anonymous ftp: open services for everyone
Difference between telnet, ftp, and email:
Telnet: you are a user of the remote machine
FTP: you are not a user, you are only allowed to use commands of FTP
Emails: only text files, you communicate with a user (not a machine)
42
Computer Networks
Browsing:
Gopher:
Allows to “ jump ” from one machine to another collecting information
Menu-driven
Menu contents e.g.
Library entries
General information
Next gopher site(s)
WAIS:
Use keywords to retrieve information from directories in the
Internet
WWW:
Hypertext-based navigation
Any kind of information (text, audio, video, … )
Browser software needed (e.g. Netscape, Internet Explorer, … )
43
Computer Networks
Different services:
Search engines
Applications/Applets
…
Bulletin board:
E.g. newsgroups: discussion groups on a specific topic
Hierarchal naming e.g. cs.comp.parallel
In general moderated
Chatting
…
44
Computer Networks
20,000 networks in the Internet
A new network every 10 minutes
4 million hosts
More than 50 million people have access to the Internet
Over 5,000 news groups
Over 4,000 Gopher servers
Annual traffic growth of WWW is 341,634 percent!!!
Internet services in use for more than 2 decades (by insiders)
Based on current growth, by 2003 every person on the globe will have Internet access (???)
45
Computer Networks
Transmission is analog, but data are digital
conversion is needed
conversion: use of Fourier series to approximate digital signal by superposition of multiple analog ones
Bandwidth: maximum transmission rate (medium-specific)
Media:
Twisted pair copper wire:
Used in telephone networks
Inexpensive
Limited bandwidth
Signal deteriorates at distances longer than 10 km (amplifiers needed, repeaters)
46
Computer Networks
Coaxial cable:
Used for cable TV
More bandwidth but more expensive
Signal deterioration also at about 10 km but is less subject to
“ noise ”
Fiber optic:
Bundles of thin glass wire
Signal are pulses of light
High bandwidth
Up to 100 km without deterioration
More expensive
Message transmission in a WAN
In general a WAN is a switched network
messages travel from one switch to another on the way to their destinations
47
Computer Networks
A message includes its destination address in order to help intermediate nodes to “ switch in the right direction ”
Multiple paths from source to destination are possible (and usual)
Why?
Reliability: redundant connections
Efficiency: more connections among nodes with higher traffic or parallel connections
What path is the best?
Shortest ones?
Less intermediate nodes or less distance?
Path with highest bandwidth?
Priorities for messages?
High priority messages use high bandwidth paths
Low priority messages use low bandwidth paths
48
Computer Networks
Thus, answer is not trivial …
After all, determining the “ best ” path is a prohibitively long task
compare: bin-packing problem O(2 n )
A number of routing algorithms are in use
Message transmission in a LAN
Bus-based LANs (e.g. Ethernet)
Broadcasting:
Any message is sent to ALL nodes in the network
Each node checks whether or not it is the message destination
If yes, message is completely received and processed
If not, message is ignored
Collision is possible:
“ A ” sends “ m1 ” and before “ m1 ” is received “ A2 ” sends “ m2 ”
Since medium is shared, “ m2 ” collides with “ m1 ”
Both are then useless for potential receivers
49
Computer Networks
Thus, collision must be detected and sending machines retry to send the message again
In order not to collide another time the machines wait different
“ random ” periods before sending
50