Chapter 9 sample applications
This presentation is the property of its rightful owner.
Sponsored Links
1 / 50

Chapter 9: Sample Applications PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Chapter 9: Sample Applications. Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks. Social Issues. Applications. Software. Virtual Machine. Hardware. Algorithmic Foundations. Spreadsheets. An electronic spreadsheet combines elements of: a calculator

Download Presentation

Chapter 9: Sample Applications

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Chapter 9: Sample Applications

  • Outline

    • Spreadsheets

    • Databases

    • Numeric and Symbolic Computations

    • Computer Networks

Social Issues



Virtual Machine


Algorithmic Foundations


  • 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


  • A spreadsheet is a 2-dimensional grid of cells:

    • Rows: 1, 2, 3, …

    • Columns: A, B, C, …

  • Only a portion of the spreadsheet in visible on the screen

    •  window

    • Window can be scrolled down/up

  • Cell: specifies a row and a column:

    • Activated using mouse or cursor

    • Example:

      • D2 means the cell at 2nd row and 4th column


  • 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


      1 Item1Item2Total  labels

      2 3.255.759.00  numeric values


  • 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




2101Janet K5116.6094

3 102Adam R188.50185

4 103Fred L4312.35250

5 104John A5317.80245

6 105Butch H176.7053


  • 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


 What you enter: (formulas entered)



2 101Janet K5116.6094D2*E2

3 102Adam R188.50185 D3*E3

4 103Fred L4312.35250D4*E4

5 104John A5317.80245D5*E5

6 105Butch H176.7053D6*E6

 What you see: (values computed)



2 101Janet K5116.60941560.40

3 102Adam R188.501851572.50

4 103Fred L4312.352503087.50

5 104John A5317.802454361.00

6 105Butch H176.7053355.10


  • 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


  • 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


  • 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



1IDNameAgeRateHoursPayNew Pay

2 101Janet K5116.60941560.401591.61

3 102Adam R188.501851572.501603.95

4 103Fred L4312.352503087.503149.25

5 104John A5317.802454361.004448.22

6 105Butch H176.7053355.10362.20


8Base Increase %2


G: new column for increased pay

C8: stores the 2% value

F9 and G9: store the total pay


  • 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


  • The owner may also use another more realistic formula for increments:

    •  Each employee is given a “merit” percentage over a fixed base rate


  • 1IDNameAgeRateHoursPayMeritNew Pay

  • 2 101Janet K5116.60941560.40 31638.42

  • 3 102Adam R188.501851572.50 21635.40

  • 4 103Fred L4312.352503087.50 33241.87

  • 5 104John A5317.802454361.00 24535.44

  • 6 105Butch H176.7053355.10 1365.75

  • 7

  • 8Base Increase %2

  • 9Totals$10936.50$11416.80


  • 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)


  • 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)


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


  • 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


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

  • 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)






    • 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


    • 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;


    • 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


    • 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;


    • Issues in databases:

      • Transactions:

        • All-or-nothing…

      • Multimedia data:

        • Audio

        • Video

      • WWW

        • Accessing databases using browsers (hypermedia)

      • Distributed Databases

        • Data distributed among nodes

        • Replication and fault tolerance

        • Security

    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 1015 mathematical operations are not uncommon

      • Typical areas:

        • Weather forecasting

        • Molecular analysis

        • Real-time imaging

        • Simulation

        • Natural language processing

    Numeric and Symbolic Computation

    • Mentioned challenges yielded to the development of supercomputers and highly parallel computers

    • Machines with 1010 (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

    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

  • In another rather esoteric area: quantum chromodynamics

    • 100 trillion (1014) 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

  • 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: -x2 + 3x – 4 + 3x2– x + 1

        • Solve: x3 + 2x2 + 10x - 13 = 0

        • Factor: x3 + x2– 3x – 3

        • Plot: sin(3x) for 0 <= x <= 2p

    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]


    Numeric and Symbolic Computation

    • Most symbolic systems work with ASCII representation of numbers and not with their binary representation:

      • “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]


        • Compute the factorial of 200:

          • 200!


    Numeric and Symbolic Computation

    • However the strength of these systems is in symbolic computing

    • Examples

      • Simplify expression: Simplify[expr]

        • Simplify[(x-1)^2 + (x+2) + (2x-3)^2 + x]

          12 – 12 x + 5 x2

      • Factor polynomial: Factor[polynomial]

        • Factor[x^10 -1]

          (-1 + x) (1 + x) (1 – x + x2 - x3 + x4) (1 + x + x2 + x3 + x4)

      • Expand expression: Expand[expr]

        • Expand[(1 + x + 3y)^4]

          1 + 4x + 6x2 + 4x3 + x4 + 12y + 36xy + 36x2y + 12x3y + 54y2 + 108xy2 + 54x2y2 + 108y3 + 108xy3 + 81y4

    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 ex – 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}]

        { }

    Numeric and Symbolic Computation

    • Calculus operations:

      • Differentiation:

        • D[x^3+6x-7, x]

          6+ 3x2

      • Integration:

        • Integrate[x^4 - 2, x]

          1/5 x5 - 2x

      • Summation of (convergent) infinite series:

        • N[Sum[1/2^i, {i, 1, Infinity}]]


      • Summation of (divergent) infinite series:

        • N[Sum[1/k, {k, 2, Infinity}]]

          Sum diverges

    Numeric and Symbolic Computation

    • Plotting functions:

      • Plot[x^2 + x – 2, {x, -3, +2}]

    • Plot[5 Sin[3x], {x, 0, 2 Pi}]

    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

    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

    Computer Networks

    • Further benefits:

      • 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

    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)

      • Email

      • Voice mail

      • Cellular phones

      • Teleconferencing

    • Issues:

      • Reliability of networks

      • Efficiency

      • Privacy and confidentiality

    Computer Networks

    • More about the Internet

      • 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

    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

  • Internet services

    • Email:

      • In order to communicate with someone via email you must know his/her email address

  • Computer Networks

    • Addressing scheme is hierarchical:

      [email protected]

      • “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!

    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

    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)

    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, …)

    Computer Networks

    • Different services:

      • Search engines

      • Email

      • Applications/Applets

  • Bulletin board:

    • E.g. newsgroups: discussion groups on a specific topic

    • Hierarchal naming e.g. cs.comp.parallel

    • In general moderated

  • Chatting

  • Computer Networks

    • Some Internet statistics (rather old)

      • 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 (???)

    Computer Networks

    • Issues in networking

      • 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)

    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

  • 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

    Computer Networks

    • Thus, answer is not trivial…

    • After all, determining the “best” path is a prohibitively long task

    •  compare: bin-packing problem O(2n)

    •  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

  • 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

  • Login