2. Software Applications

Download Report

Transcript 2. Software Applications

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
Hardware
 Tangible – anything you can touch
 Devices and components used in computing
 Examples





Computer
Disk
Mouse
Printer
Cables
Software
 Intangible – “can’t touch this”
 Examples
 Programs


Operating System
Applications
 Data
 Ideas ?
 Emotions ?
Other “Wares”
 Firmware


In between hardware and software
Typically describes macrocode, hardware burned
with instructions used
When computer starts up
 Repeatedly used programs for operating system

 Shareware

applications available on the honor system
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
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
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
Application Development
 a.k.a,. software engineering
 Typically a coordinated team effort





Specification
Design
Implementation
Testing
Maintenance
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
Data
 Often considered the inert part of software
 Used to hold information for computing




Numeric
Alphabetic
Graphic
Audio
Data and Hardware
 Stored on …






Floppy disk
RAM (Random Access Memory)
CD-ROM
DVD
Tape
Paper ?
 “… like music is to an instrument, …”
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)
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., p, e, sqrt(2))
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
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
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
Algorithm Example
 Preparing Pasta and Sauce
 Ingredients (like data)
 Recipe (like algorithm)
 Tools (like objects – defer to Ch. 5)
Declaration of Ingredients








fresh pasta
fresh sauce
oil
water
salt
bread
butter
garlic
Declaration of Tools
 saucepan small
 saucepan large
 colander
 stove
 sink
 set of spoons { s0 s1 ...}
 tongs
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 heat
10. place sauce on pasta
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
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
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
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