2. Aims
• Describing main sw categories and their
relationship
• Explaining relationship between algorithms
and programs
• Discussing factors that make apps useful
• Describing the role of operative systems
• Outlining the evolution of interfaces
4626. Introd to Computer Science
3. How the sw works?
thinks
algorithm
Problem:
natural language is ambiguous
4626. Introd to Computer Science
4. How the sw works?
algorithm
program
… but
computers
can’t
understand
thinks that
writes
4626. Introd to Computer Science
5. How the sw works?
program
(source code)
executable
algorithm writes
(binary code)
thinks generates
4626. Introd to Computer Science
6. Example
Algorithm
1. Ask the user for a number
2. Multiply it by 2
3. Show the result on the screen
4626. Introd to Computer Science
7. Example
Source code
#include <stdio.h>
void main()
{
int num, double;
printf( “Enter a number: “ );
scanf( “%d”, &num );
double = num * 2;
printf(“Twice %d is %dn”, num, double );
}
4626. Introd to Computer Science
8. Example
Binary code
010110011101110000001000001111010001
111011111000101111100010001001001111
001001101011100001111001001101011000
110111001001100111100010110011100010
001011011011011010111010010100011111
000011001000111000100011101111000101
010010100100110011111110011100111000
111110111110110100011100001110000100
101111010011110110010011100001101110
4626. Introd to Computer Science
9. Development software
Software
Application
software classification System
software
4626. Introd to Computer Science
10. Development software
• Assisting programmers to write software
• Typical tools
Compiler
IDE
Text editor
Debugger
4626. Introd to Computer Science
11. Application software
• Why do we use application sw?
• visual metaphors of the real world
• extend human capabilities
4626. Introd to Computer Science (pictures from tecnomarketer)
12. Application software
Vertical market
• Examples: accounting, library cataloguing or
restaurant management
• limited market (high cost)
• sometimes developed for just one
customer
Specific software for a sector
4626. Introd to Computer Science
13. Application software
Suites
• Common applications
• Used in many fields
(home, office, education,
administration….)
• Sold separately or in a
package (suite)
Apps that “work well together”
4626. Introd to Computer Science
14. Application software
Integrated packages
• Set of applications sold in a block
• Easy earning
• Limited functionality (but enough)
• Cheaper
Share the same environment
4626. Introd to Computer Science
15. System software
• Manages communications
between hw & sw
• Abstraction from hw details
(virtual machine)
(source: FFP Basic http://iaf-bs.de)
4626. Introd to Computer Science
16. Device drivers
• Communicates computer and I/O devices
• Extends computer (open architecture)
• Brokers to access the device
• You can get them
• included in the OS
• provided with the device (install CD)
• owned by a third company (buy it)
4626. Introd to Computer Science
17. Operative systems
• brokers between users/programs & Hw
• isolations layer
• programs compatibility
• main tasks
• ease the use of the computer
• use the software efficiently
4626. Introd to Computer Science
18. OS functions
• communications with peripherals (I/O)
• process management (multitasking)
• memory management (protection & virtual mem)
• resource monitoring for accounting and safety
• file system management
• network communication coordination
4626. Introd to Computer Science
19. Utility programs
• System maintenance tools
• Executed apart from OS
• We can find them…
• incorporated into the OS (disk defrag)
• provided by others (antivirus)
4626. Introd to Computer Science
20. Additional considerations
Documentation
• instructions about how to install them
• tutorials
• reference manuals
• help files
• on line help systems
• support services, FAQ
4626. Introd to Computer Science
22. Additional considerations
Upgrading
• periodically, companies sell new versions
• reasons: improvements, bugs, adaptation to
other SW (OS)
• versions identified by numbers
(decimals for minor changes)
• right to free updates during a period
4626. Introd to Computer Science
23. Additional considerations
Compatibility
• constraints about • operative systems
computer and resources (Windows, MacOS,
Linux)
• examples: CPU,
memory, free HD space • sometimes, version:
Windows 95, 98, NT,
Me, 2000, XP,Vista..
Hardware Software
4626. Introd to Computer Science
24. Additional considerations
Licensing
• you don’t buy sw, you buy a license
• individual and corporative licenses
• main limitation: number of computers and
right to copy (backup)
• EULA (End User License Agreement)
• license terms
• disclaimer terms (limited liability)
4626. Introd to Computer Science
25. Additional considerations
Distribution
• proprieraty • freeware
• shareware • open source /
free software
• demo
• semi free
• adware
• public domain
4626. Introd to Computer Science
26. User interface
• character console: • metaphors. desktop,
command line (MSDOS) folders, documents…
• graphical user interface • active elements:
(GUI)
• icons
• visual concepts
• buttons
• controls individual
points on the screen • windows
• Apple MacOS (1984) • scrolling bars
4626. Introd to Computer Science
33. Mac OS X (Leopard)
4626. Introd to Computer Science
34. File system management
• specific folders for user’s
documents
• search tools by name or
content
(Google Desktop)
• Specific tools for special
files (iTunes)
4626. Introd to Computer Science
35. Multi-user OS
UNIX
• preferred OS for mainframes &
workstations
• versions: Solaris (Sun), HP-UX (HP),
Aix (IBM) IRIX (Silicon Graphics)
Linux
• Unix versions for PCs
• Distributions: Ubuntu, Suse, RedHat…
4626. Introd to Computer Science