Download lection-2-computer software

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
Transcript
Software
What is a computer program?
Software
What is a computer program?
Set of detailed step-by-step instructions
that tells a computer how to carry out a
task or solve a problem
10 print “hello world”
20 goto 10
Software
What is a computer program?
Instructions are written in a computer
programming language
Examples?
Software
What is a computer program?
Instructions are written in a computer
programming language
Examples?
Machine language, microcode, assembly language
BASIC, COBOL, FORTRAN, Pascal, C, C++, Java, Ada
Javascript, Visual Basic Script, Perl
Software
What is(are) computer data?
Software
What is(are) computer data?
Information stored in the computer
Collections of symbols (letters, numbers,
etc) stored as a series of bits
What are some data examples?
Software
What is(are) computer data?
Information stored in the computer
Collections of symbols (letters, numbers,
etc) stored as a series of bits
What are some data examples?
Documents, spreadsheets, sounds, images, video
Software
What is software?
Software
What is software?
Programs and their associated data
Software Types
System software
Helps computer to carry out basic
operating tasks
Tasks strictly involves the computer
Application software
Helps user carry out a task
Task could be done without the computer
Examples types in each?
Software Types
System software
Operating system, device drivers, utilities,
programming compilers and interpreters
Application software
Word processing, spreadsheets, business,
education, presentation, entertainment
Software Copyright
What is a copyright?
Software Copyright
What is a copyright?
Legal protection granting certain exclusive
rights to the owner of the copyright
Protects from copy, distribution, modification
Owning software does not mean that you
own its copyright!
What is pirated software?
Software Copyright
What is a copyright?
Legal protection granting certain exclusive
rights to the owner of the copyright
Protects from copy, distribution, modification
Owning software does not mean that you
own its copyright!
What is pirated software?
Software that has been copied, distributed or
modified illegally (against copyright laws)
Software Copyright
What are the conditions of the
software copyright?
Software Copyright
What are the conditions of the
software copyright?
Only the copyright owner can reproduce,
sell, or distribute the software
Software can be copied to the computer
hard disk for the purpose of installation
If software is passed to another owner, a
copy cannot be kept by the original owner
Cannot distribute modified copies
Software Copyright
What are the conditions of the
software copyright?
However…
Software Copyright
What are the conditions of the
software copyright?
However…
it IS legal to make a backup copy for
archival purposes!
Often creates a very thin line…
http://www.gamecopyworld.com
Software Licenses
What is a software license?
Software Licenses
What is a software license?
Legal contract that defines how a
computer program may be used
Special restrictions or extension of
copyright by software author
Software License Types
Single-user, multiple-user
Concurrent user
Max number of copies used simultaneously
Site license
Copy for all users at a particular site
Shareware: “Try before you buy”
Freeware, Public Domain
Warez: illegally copied software
System Software
Software essential to the fundamental
operations of the computer
Controls execution of application software
Interpreting user commands
Operation of peripherals
Memory and disk access
File management
Screen display
And many more…
System Software
Operating Systems
OS utilities
OS device drivers
Programming tools
Operating System
Controls use of hardware resources
Controls interaction between
application software and hardware
Handles interaction between user and
application
Executes applications
Handles multi-user and multi-tasking
Operating System
Controls basic input and output
Data flow between I/O devices
Allocates system resources
Memory, disk, I/O devices, program exec
File management
Detects equipment failures
Security
Operating System
External Services
Help users…
start programs, manage stored data,
maintain security (logins, file protection)
Provides an interface to these services:
Command-line, menus, graphics user
interface (GUI)
Operating System
Internal Services
Not directly user-controlled. Manages:
I/O
System resources
Storage space for programs and data
Handles multi-user and multi-tasking
Detects equipment failure
Operating System
Example OS’s?
Operating System
Example OS’s?
Microsoft Windows
3.1, for workgroups, NT, 95, 98, ME, 2000, XP
Mac OS: OS X
DOS
OS/2
UNIX, Linux
BeOS
Operating System:
Utilities
Disk formatting
Compression
File encryption
Anti-virus
Networking
Operating System:
Device Drivers
Tells computer how to use a device
Graphics card, sound card, printer,
scanner,…
Interface between OS and hardware
devices
Operating System
OS can do so much, but what should not
be included as a part of the OS? Why?
Operating System
OS can do so much, but what should not
be included as a part of the OS? Why?
High-level applications; limits flexibility
But, what about a web browser?
Operating System
Internet Explorer and Windows 98!
Big source of debate
Long running court case
Windows 98 “monopoly”
Microsoft claims that browser is an
essential part of their OS
Microsoft was declared a monopoly,
what next?
Programming Tools:
compilers and interpreters
Programs are written in a programming
language that is translated or interpreted
into a machine language
Compilers translate a program written in one
language to a lower-level language.
Translation done before execution
Usually lower-level language is machine or
microcode
Interpreters convert each instruction of a
program during execution into a lower-level
instruction
Programming Tools:
compilers and interpreters
Low-level:
machine language, microcode, assembly language
High-level:
BASIC, COBOL, FORTRAN, Pascal, C, C++, Java,
Ada, Lisp, ML
“Higher-level” scripting languages:
Javascript, VBS (Melissa and ILoveYou), Perl
What about HTML, Flash and Shockwave, Excel?
Programming Tools:
compilers and interpreters
HTML, Flash and Shockwave, Excel all give the
“programmer” the flexibility to create small
applications with a simple user interface, but…
much more constrained by the application that runs them
they are interpreted by a “viewer” program: browser, Excel
their instructions are not actually transformed directly into
a lower level language before execution.
these “languages” fall into the category of scripting
languages
Instructions tell an application what to tell a machine to do
Often the distinction between scripting and programming can
be blurred
Programming Tools:
development environments
The software that a programmer uses to
develop programs is a development
environment.
Typical steps in programming:
Write program as a text file in high-level language
Compile text file into lower-level language
Repeat compilation until program is compiled into a
machine language
Instruct the OS to execute the machine language
Quick demonstration in C on a UNIX machine…
Programming Tools:
development environments
The development process for interpreted
languages is slightly different:
Write program in high-level interpreted language
as a text file
Run the interpreter application that will “execute”
your program directly from the text file
Each instruction is then converted on-the-fly into
a lower-level instruction
Most often, the lower-level instruction goes
straight to machine execution (perhaps through
more interpretation)
Programming Tools:
development environments
These steps can usually be performed in a
single programming environment called an
IDE: Integrated Development Environment
Examples: MS Visual Studio, MS Visual Basic,
MS Java IDE, …
Programming Tools
We will be learning how to create web pages
directly from HTML (hypertext markup lang)
Write web pages as a text file and load into
browser
We will also learn how to augment HTML with
the interpreted JavaScript language
DHTML: Dynamic HTML
I will be gathering documents for reading
very soon.
Application Software
Name some types?
Application Software
Name some types?
Document production:
Word-processing, desktop publishing, web page authoring
Graphics
Photo editing, Painting & drawing, CAD, animation, video
Presentation
Numerical Analysis:
Spreadsheets, graphing, statistical
Databases
Application Software
Name some types?
Reference:
Dictionary, encyclopedia, maps
Connectivity or communications:
Web browser, email, remote control, home networking
Education and training
Business: accounting and finance
Games!
Office suites:
Word-processing, spreadsheet, presentation, and
database software all carefully integrated
Application Software
Give some particular examples:
Application Software
Give some particular examples?
Document production:
MS Word, WordPerfect, Claris Works, FrontPage, …
Graphics
PhotoShop, CorelDraw, AutoCAD, RayDream, Adobe
Premiere
Presentation
MS PowerPoint
Numerical Analysis:
MS Excel, Lotus 1-2-3, SPSS, …
Databases
MS Access, Lotus Approach, Oracle
Application Software
Give some particular examples?
Reference:
MS Encarta, MS Streets, StreetFinder, Webster Online,…
Connectivity or communications:
MS Internet Explorer, Netscape Communicator, Opera,
AOL, …
Education and training
Business: accounting and finance
Games!
Office suites:
MS Office, MS Works, Claris Works, StarOffice, …
Multimedia
What is multimedia?
Multimedia
What is multimedia?
Integrated use of multiple media types
What are some common media types?
Multimedia
What is hypertext and hypermedia?
Multimedia
What is hypertext and hypermedia?
Hypertext: text that links to another document or
other media
Hypermedia: Idea that other documents and
multimedia could be linked from text inside a
document
Overall, idea that documents could be linked to
each other (not just in order)
Ted Nelson, 1965