Friday, September 16, 2011

PRE-FINALS LECTURE - BATCH 1 and 2

Ways to Install Software
1.      Installing from a Distribution disk to CD
2.      Installing from Downloaded software

Copyright - a form of legal protection that grants the author of an original ”work” an exclusive right to copy, distribute, sell and edit that work, except under special circumstances described by copyright laws.

Exceptions
·         can make a backup or extra copy of the software in case the original copy becomes erased or damaged
·         is allowed to copy and distribute parts of a software program for use in critical reviews and teaching has the right to copy software from a distribution disk or Web site to a computer’s hard disk in order to install it

License Agreement
·         a legal contract that defines the ways in which a computer program may be used
·         can be found on the outside of the package, on a separate card inside the package, on the CD packaging, or in one of the program files

SOFTWARE LICENSES
Public Domain Software
·         may be freely copied, distributed and even resold
·         not protected by copyright because the copyright has expired, or the author has placed the program in the public domain, making it available without restriction

Commercial Software
·         usually sold in computer stores or at Web sites
·         adheres closely to the limitations provided by copyright law
·         it might give you permission to install the software on a computer at work and at home, but you have to use only one of them at a time

Freeware
·         a copyrighted software that is available for free
·         does not allow you to modify it or sell it, but it allows you to use the software, copy it and give it away
·         utility programs, some games and device drivers

Shareware
·         a copyrighted software marketed under a “try before you buy” policy, allowing you to use the software for a trial period
·         usually permits you to copy and distribute it to others
·         provide a low-cost marketing and distribution channel

Open Source Software
·         may be sold or distributed free of charge
·         uncompiled program instructions are available to programmers who want to alter and improve the software
·         Linux, FreeBSD




PROGRAMMING PARADIGM
Paradigm
·         an “example, model or pattern”
·         an idealized pattern of usage under which some agent can operate

Programming Paradigm
·         a way of thinking about problems and their solutions, or an approach on how to use  a computer to implement those solutions

4 Major Programming Paradigms
1.       IMPERATIVE - characterized by programming with states and commands that modify the states
2.       LOGICAL - takes a declarative approach to problem solving
3.       FUNCTIONAL - based on functional expressions and the evaluation of these expression
4.       OBJECT-ORIENTED - a paradigm in which real world objects are viewed as separate entities having their own state and exhibit their own behavior


PROGRAMMING LANGUAGE

Language - is defined as a system for communicating.
·         Written language use symbols (characters) to build words.
·         The entire set of words is the language vocabulary.
·         The language syntax and grammar define the way in which the words are meaningfully combined.
·         The actual meaning of words and combinations of words is defined by the language semantics.

1. Machine Language
Ø  only language understood by computers and consists of pure numbers; takes the form of “1” or “0”.

Each machine instruction has two (2) parts:
·         op code (operation code) - which tells the computer what function to perform
·         operand - which tells the computer what data to use when performing the function

2. Low Level Language
Ø  also called assembly language and is similar to machine language but assembly language is much easier to understand than machine language.

3. High Level Language
Ø  easier to understand and allows the programmer to focus on solving the problem rather than knowing how to program the computer.
Ø  enables a programmer to write programs that are more less independent of a particular type of computer
Ø  considered high-level because it’s closer to human language than the machine language that the computer understands


EXAMPLES OF PROGRAMMING LANGUAGE
BASIC
·         Beginner’s All-purpose Symbolic Instruction Code
·         developed by John Kemeny and Thomas Kurtz in the early 1960’s
·         intended as an easy-to-learn interactive language for the students

FORTRAN
·         Formula Translator
·          the oldest high-level programming language
·          developed in the mid -1950’s by John Backus
·          primarily intended as a high-level language used for programming scientific, mathematical and engineering applications

COBOL
·         Common Business-Oriented Language
·          the most frequently used business programming language
·          Dr. Gray Murray Hopper was a major contributor to the structure and development of the COBOL language

PASCAL
·         the language named after the seventeenth century French mathematician Blaise Pascal who constructed one of the first adding machines
·         a high-level language developed by Niklaus Wirth of Zurich, Switzerland in the late 1960’s
·         one of the first languages developed using a structured programming approach

C
·         a high-level programming language developed by Dennis Ritchie at the Bell Laboratories in 1972
·         named C, because it was influenced by another language called B developed by Ken Thompson
·         originally designed as a systems programming language, which means that it was used to write operating systems programs

C++
·         developed by Bjarne Stroustrup while working at the Bell Laboratories
·         considered as a superset of C, and it has the same capabilities as C with added object-oriented features

JAVA
·         popular programming language for creating applications on the web
·         “Oak”, was developed in December 1990 by Sun Microsystems


COMPILER          
Ø  a program that translates a program written in a high-level language (source code) and translates it into machine language (object code)

INTERPRETER    
Ø  translates and executes the program line by line
Ø  translates high-level instructions into an intermediate form, which it then executes