25
2. Software Applications CS100: The World of Computing John Dougherty Haverford College

2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Embed Size (px)

Citation preview

Page 1: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

2. Software Applications

CS100: The World of Computing

John Dougherty

Haverford College

Page 2: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Outline of Presentation

Hardware vs. Software Expectations of Software Algorithm Example Limits Future Expectations Implications

Page 3: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Hardware

Tangible – anything you can touch Devices and components used in computing Examples

Computer Disk Mouse Printer Cables

Page 4: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Software

Intangible – “can’t touch this” Examples Programs

Operating System Applications

Data Ideas ? Emotions ?

Page 5: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Other “Wares”

Firmware In between hardware and software Typically describes macrocode, hardware burned

with instructions usedWhen computer starts upRepeatedly used programs for operating system

Shareware applications available on the honor system

Page 6: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Operating System

Software with a Dual Role User Interface (see AE text Ch. 4)

..request accept execute feedback request.. Text vs. GUI vs. others (voice ?)

Resource Manager Provides higher-level access to lower-level functions Operates behind the scenes Access to devices, memory, etc

Page 7: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Operating Systems Examples

Windows (Microsoft) Most popular

Macintosh (Apple) First using GUI for PCs

Linux (Linus Torvalds – one guy) Most recent realization of Unix Open Source

Page 8: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Applications

Programs that accept input data and returns output data Input Program Output

Transform the general-purpose computer into a special-purpose tool

Most commercial applications are constructed using large teams

Examples: AE Ch.2 WP, SS, DB, Presentation, Graphics, Math/Numerical,

Browser, Server, Email Client, Games

Page 9: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Application Development

a.k.a,. software engineering Typically a coordinated team effort

Specification Design Implementation Testing Maintenance

Page 10: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Software Errors

Why does software fail if it is intangible? incorrect or incomplete specification poor design bad implementation Examples

Flight orientation for aircraft Mars lander

Page 11: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Data

Often considered the inert part of software Used to hold information for computing

Numeric Alphabetic Graphic Audio

Page 12: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Data and Hardware

Stored on … Floppy disk RAM (Random Access Memory) CD-ROM DVD Tape Paper ?

“… like music is to an instrument, …”

Page 13: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Data Entry

How is data made available to a computer? By a person

Keyboard and Mouse Handwriting and Voice

By another computer or other device Network (wired, wireless) Sampled (e.g., sound, voltage for pH)

Page 14: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Digital vs. Analog

Data must be in digital form Naturally

Integer numbers Text characters Musical notes (A, Bb, B, C, C#, D, Eb, E, F, F#, G, G#)

Converted or Approximated Analog signals (e.g., voice, weight) Real numbers (e.g., , e, sqrt(2))

Page 15: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Expectations of Software

Positive … Icons represent Applications and Data Files Menus represent Command Choices Means to save/recall data, print, send/receive Initial cost to learn ways to use application, but.. Long-term benefits offset initial costs Faster to complete information-based task Professional presentation

Page 16: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Expectations of Software

Negative … Potential for lost data and/or programs Potential for virus attacks Rapid replacement of IT Periodic failure J.D.’s Law: [F <==> I * (1/R)]

the chance of computing failure (F) is proportional to the degree of importance (I) of the data times the inverse of the time remaining (R) that the data is required

Page 17: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Algorithm and Program

Algorithm set of deterministic instructions

Program implementation of an algorithm for a specific

platform (i.e., operating system)

Abstraction vs. Representation Data is a necessary component of each

Page 18: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Algorithm Example

Preparing Pasta and Sauce Ingredients (like data) Recipe (like algorithm) Tools (like objects – defer to Ch. 5)

Page 19: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Declaration of Ingredients

fresh pasta fresh sauce oil water salt bread butter garlic

Page 20: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Declaration of Tools

saucepan small saucepan large colander stove sink set of spoons { s0 s1 ...} tongs

Page 21: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Main Definition of Recipe

1. water into saucepan large 2. saucepan large onto stove 3. set stove heat to high 4. wait until water boils, then put pasta into water 5. wait 9 minutes, then take pasta from pot 6. put pasta into colander 7. sauce into saucepan small, then onto stove 8. set stove to medium 9. wait until sauce is hot, then remove from heat10. place sauce on pasta

Page 22: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Recipe Issues

stove never stopped colander drains into nowhere sauce thru colander no plates, table, sink sauce pot initially high concurrency possible if stove has 2 burners “wait” not really defined

Page 23: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Future Expectations

Faster computing Larger and faster access for data storage Alternative input

Voice Predictive

More useful output, ready to be input to another computing device

More ubiquitious

Page 24: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

Implications (AE 2.4)

Diminishing Skills Productivity

Does a PC really save time? Does computing really save paper?

Information Technology vs. Libraries Access capabilities What is recorded

Page 25: 2. Software Applications CS100: The World of Computing John Dougherty Haverford College

For next time …

Complete reading Chapter 2 of AE Complete reading Chapter 10 of LoC Begin reading Chapter 3 of AE Attend your discussion group Get started with Lab 0 due Feb. 7