1 / 50

Chapter 9: Sample Applications

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

Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 9: Sample Applications • Outline • Spreadsheets • Databases • Numeric and Symbolic Computations • Computer Networks Social Issues Applications Software Virtual Machine Hardware Algorithmic Foundations

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

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

  4. 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 B C D E 1 Item1 Item2 Total  labels 2 3.25 5.75 9.00  numeric values

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

  6. Spreadsheets A B C D E F G 1 ID Name Age Rate Hours Pay 2 101 Janet K 51 16.60 94 3 102 Adam R 18 8.50 185 4 103 Fred L 43 12.35 250 5 104 John A 53 17.80 245 6 105 Butch H 17 6.70 53 7 • 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

  7. Spreadsheets  What you enter: (formulas entered) A B C D E F 1 ID Name Age Rate Hours Pay 2 101 Janet K 51 16.60 94 D2*E2 3 102 Adam R 18 8.50 185 D3*E3 4 103 Fred L 43 12.35 250 D4*E4 5 104 John A 53 17.80 245 D5*E5 6 105 Butch H 17 6.70 53 D6*E6  What you see: (values computed) A B C D E F 1 ID Name Age Rate Hours Pay 2 101 Janet K 51 16.60 94 1560.40 3 102 Adam R 18 8.50 185 1572.50 4 103 Fred L 43 12.35 250 3087.50 5 104 John A 53 17.80 245 4361.00 6 105 Butch H 17 6.70 53 355.10

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

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

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

  11. Spreadsheets A B C D E F G 1 ID Name Age Rate Hours Pay New Pay 2 101 Janet K 51 16.60 94 1560.40 1591.61 3 102 Adam R 18 8.50 185 1572.50 1603.95 4 103 Fred L 43 12.35 250 3087.50 3149.25 5 104 John A 53 17.80 245 4361.00 4448.22 6 105 Butch H 17 6.70 53 355.10 362.20 7 8 Base Increase % 2 9 Totals $10936.50 $11155.23 G: new column for increased pay C8: stores the 2% value F9 and G9: store the total pay

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

  13. Spreadsheets • The owner may also use another more realistic formula for increments: •  Each employee is given a “merit” percentage over a fixed base rate • A B C D E F G H • 1 ID Name Age Rate Hours Pay Merit New Pay • 2 101 Janet K 51 16.60 94 1560.40 3 1638.42 • 3 102 Adam R 18 8.50 185 1572.50 2 1635.40 • 4 103 Fred L 43 12.35 250 3087.50 3 3241.87 • 5 104 John A 53 17.80 245 4361.00 2 4535.44 • 6 105 Butch H 17 6.70 53 355.10 1 365.75 • 7 • 8 Base Increase % 2 • 9 Totals $10936.50 $11416.80

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  29. 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] 3.1415926535…52271201909 • Compute the factorial of 200: • 200! 78865786479050…737472000…00000

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

  31. 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}] { }

  32. 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}]] 1.0 • Summation of (divergent) infinite series: • N[Sum[1/k, {k, 2, Infinity}]] Sum diverges

  33. Numeric and Symbolic Computation • Plotting functions: • Plot[x^2 + x – 2, {x, -3, +2}] • Plot[5 Sin[3x], {x, 0, 2 Pi}]

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

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

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

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

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

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

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

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

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

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

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

  45. 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 (???)

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

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

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

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

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

More Related