Sunday, June 15, 2008

evolution of programming languages

First Generation Programming Language

A first-generation programming language is a machine-level programming language.

Originally, no translator was used to compile or assemble the first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system.

The main benefit of programming in a first-generation programming language is that the code a user writes can run very fast and efficiently, since it is directly executed by the CPU. However, machine language is somewhat more difficult to learn than higher generational programming languages, and it is far more difficult to edit if errors occur. In addition, if instructions need to be added into memory at some location, then all the instructions after the insertion point need to be moved down to make room in memory to accommodate the new instructions. Doing so on a front panel with switches can be very difficult. Furthermore, portability is significantly reduced - in order to transfer code to a different computer it needs to be completely rewritten since the machine language for one computer could be significantly different from another computer. Architectural considerations make portability difficult too. For example, the number of registers on one CPU architecture could differ from those of another.

Second Generation Programming Language

Second-generation programming language is a generational way to categorize assembly languages. The term was coined to provide a distinction from higher level third-generation programming languages (3GL) such as COBOL and earlier machine code languages. The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called assembly.[1] This conversion process is a simple one-to-one mapping of the assembly language mnemonics into binary machine code consisting of opcodes and operands. The language is specific to a particular processor family and environment. Since it is a one-to-one mapping to the native language of the target processor it has significant speed advantages but requires more programming effort than 3GLs.[2]

Second-generation languages are sometimes used in kernels and device drivers (though C is generally employed for this in modern kernels), but more often find use in extremely intensive processing such as games, video editing, graphic manipulation/rendering, emulation/virtualization, simulation, encryption and compression.

Often, the "skeleton" of such programs is constructed in a higher-level language and individual functions are implemented in lower-level language. These functions typically exist at the core of the tightest loops, being executed many times per second. This assures the greatest gain from the painstaking hand optimization process, as every bit of time shaved off is multiplied.[citation needed]

One method for creating such code is by allowing a compiler to generate a machine-optimized assembly language version of a particular function. This code is then hand-tuned, gaining both the brute-force insight of the machine optimizing algorithm and the intuitive abilities of the human optimizer.

Third Generation Programming Language

A third-generation language (3GL) is a programming language designed to be easier for a human to understand, including things like named variables, abstract data types, and algebraic expression syntax. Another crucial difference compared to second-generation programming languages was abstraction away from the underlying processor. A fragment might be:

let b = c + 2 * d

First introduced in the late 1950s, Fortran, ALGOL and COBOL are early examples of this sort of language. Most "modern" languages (BASIC, C, C++, Delphi, and Java) are also third-generation languages. Most 3GLs support structured programming.

Fourth Generation Programming Language

A fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software. In the evolution of computing, the 4GL followed the 3GL in an upward trend toward higher abstraction and statement power. The 4GL was followed by efforts to define and use a 5GL.

The natural-language, block-structured mode of the third-generation programming languages improved the process of software development. However, 3GL development methods can be slow and error-prone. It became clear that some applications could be developed more rapidly by adding a higher-level programming language and methodology which would generate the equivalent of very complicated 3GL instructions with fewer errors. In some senses, software engineering arose to handle 3GL development. 4GL and 5GL projects are more oriented toward problem solving and systems engineering.

All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. They are not always successful in this task, sometimes resulting in inelegant and unmaintainable code. However, given the right problem, the use of an appropriate 4GL can be spectacularly successful as was seen with MARK-IV and MAPPER (see History Section, Santa Fe real-time tracking of their freight cars - the productivity gains were estimated to be 8 times over COBOL). The usability improvements obtained by some 4GLs (and their environment) allowed better exploration for heuristic solutions than did the 3GL.

A quantitative definition of 4GL has been set by Capers Jones, as part of his work on function point analysis. Jones defines the various generations of programming languages in terms of developer productivity, measured in function points per staff-month. A 4GL is defined as a language that supports 12 - 20 FP/SM. This correlates with about 16 - 27 lines of code per function point implemented in a 4GL.

Fourth-generation languages have often been compared to domain-specific programming languages (DSLs). Some researchers state that 4GLs are a sub-set of DSLs. [1] Given the persistence of assembly language even now in advanced development environments (MS Studio), one expects that a system ought to be a mixture of all the generations, with only very limited use of the first.

Fifth Generation Programming Language

A fifth-generation programming language (abbreviated 5GL) is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer. Most constraint-based and logic programming languages and some declarative languages are fifth-generation languages.

While fourth-generation programming languages are designed to build specific programs, fifth-generation languages are designed to make the computer solve the problem for you. This way, the programmer only needs to worry about what problems need to be solved and what conditions need to be met, without worrying about how to implement a routine or algorithm to solve them. Fifth-generation languages are used mainly in artificial intelligence research. Prolog, OPS5, and Mercury are the best known fifth-generation languages.

These types of languages were also built upon Lisp, many originating on the Lisp machine. ICAD is a good example. Then, there are many frame languages, such as KL-ONE.

In the 1990s, fifth-generation languages were considered to be the wave of the future, and some predicted that they would replace all other languages for system development, with the exception of low-level languages. Most notably, from 1982 to 1993 Japan [1] [2] put much research and money into their fifth generation computer systems project, hoping to design a massive computer network of machines using these tools.

However, as larger programs were built, the flaws of the approach became more apparent. It turns out that, starting from a set of constraints defining a particular problem, deriving an efficient algorithm to solve it is a very difficult problem in itself. This crucial step cannot yet be automated and still requires the insight of a human programmer.

Today, fifth-generation languages have lost part of their initial appeal and are mostly used in academic circles.


Thursday, June 12, 2008

evolution of computer (a brief)

1. First Generation (1939-1954) - vacuum tube

  • 1937 - John V. Atanasoff designed the first digital electronic computer
  • 1939 - Atanasoff and Clifford Berry demonstrate in Nov. the ABC prototype
  • 1945 - John W. Mauchly and J. Presper Eckert built ENIAC at U of PA for the U.S. Army
  • 1946 - Mauchly and Eckert start Electronic Control Co., received grant from National Bureau of Standards to build a ENIAC-type computer with magnetic tape input/output, renamed UNIVAC in 1947 but run out of money, formed in Dec. 1947 the new company Eckert-Mauchly Computer Corporation (EMCC).
  • 1951 - Remington Rand successfully tested UNIVAC March 30, 1951, and announced to the public its sale to the Census Bureau June 14, 1951, the first commercial computer to feature a magnetic tape storage system, the eight UNISERVO tape drives that stood separate from the CPU and control console on the other side of a garage-size room. Each tape drive was six feet high and three feet wide, used 1/2-inch metal tape of nickel-plated bronze 1200 feet long, recorded data on eight channels at 100 inches per second with a transfer rate of 7,200 characters per second. The complete UNIVAC system weighed 29,000 pounds, included 5200 vacuum tubes, and an offline typewriter-printer UNIPRINTER with an attached metal tape drive. Later, a punched card-to-tape machine was added to read IBM 80-column and Remington Rand 90-column cards.
Atanasoff-Berry Computer 1939, from IEEE
magnetic drum memory of the Atanasoff-Berry Computer 1939, from Smithsonian NMAH
Whirlwind core memory 1951, from IEEE




UNIVAC 1951, from Smithsonian NMAH
UNIVAC I ca. 1955, from Smithsonian
UNIVAC ad 1955/01/17 from Time


UNIVAC I of 1951 was the first business computer made in the U.S. "Many people saw a computer for the first time on television when UNIVAC I predicted the outcome of the 1952 presidential elections."


Bendix G-15 of 1956, inexpensive at $60,000, for science and industry but could also be used by a single user; several hundred were built - used magnetic tape drive and key punch terminal



IBM 650 that "became the most popular medium-sized computer in America in the 1950's" - rental cost was $5000 per month - 1500 were installed - able to read punched cards or magnetic tape - used rotating magnetic drum main memory unit that could store 4000 words, from Smithsonian NMAH



2.Second Generation Computers (1954 -1959) - transistor

  • 1953 - Tom Watson, Jr., led IBM to introduce the model 604 computer, its first with transistors, that became the basis of the model 608 of 1957, the first solid-state computer for the commercial market. Transistors were expensive at first, cost $8 vs. $.75 for a vacuum tube. But Watson was impressed with the new transistor radios and gave them to his engineers to study. IBM also developed the 650 Magnetic Drum Calculator, the first by IBM to use magnetic drum memory rather punched cards, and began shipment of the 701 scientific "Defense Calculator" that was the first of the Model 700 line that dominated main frame computers for the next decade
  • 1955 - IBM introduced the 702 business computer; Watson on the cover of Time magazine March 28
  • 1956 - Bendix G-15A small business computer sold for only $45,000, designed by Harry Huskey of NBS
  • 1959 - General Electric Corporation delivered its Electronic Recording Machine Accounting (ERMA) computing system to the Bank of America in California; based on a design by SRI, the ERMA system employed Magnetic Ink Character Recognition (MICR) as the means to capture data from the checks and introduced automation in banking that continued with ATM machines in 1974
transistor, from Smithsonian NMAH
"First transistor (model), December 1947. Constructed by John Bardeen, Walter Brattain and William Shockley at Bell Laboratories," from Smithsonian NMAH
Regency transistor radio 1954 (TL), Zenith transistor hearing aid 1952, from Smithsonian NMAH


Philco and Emerson transistor radios, from Smithsonian NMAH
transistor radios, from Smithsonian NMAH
transistor radios, from Smithsonian NMAH
Maico hearing aid before and after transistors, from Fortune 1953/03
Morton, Shockley, White who developed transistor, from Fortune 1953/03
RCA transistor ad, from Fortune 1953/03

3. Third Generation Computers (1959 -1971) - IC

  • 1959 - Jack Kilby of Texas Instruments patented the first integrated circuit in Feb. 1959; Kilby had made his first germanium IC in Oct. 1958; Robert Noyce at Fairchild used planar process to make connections of components within a silicon IC in early 1959; the first commercial product using IC was the hearing aid in Dec. 1963; General Instrument made LSI chip (100+ components) for Hammond organs 1968
  • 1964 - IBM produced SABRE, the first airline reservation tracking system for American Airlines; IBM announced the System/360 all-purpose computer, using 8-bit character word length (a "byte") that was pioneered in the 7030 of April 1961 that grew out of the AF contract of Oct. 1958 following Sputnik to develop transistor computers for BMEWS
  • 1971 - Intel produced large scale integrated (LSI) circuits that were used in the digital delay line, the first digital audio device
IC, from Smithsonian NMAH
Polaroid IC 1961, from Smithsonian NMAH
DEC PDP-1 of 1960, from CHM
DEC PDP8/E minicomputer 1973 from SDCM - cu
Anderson Jacobson ADC 260 acoustic coupler 1963, from SDCM
early transistor calculators - Casio "Mini" used chips from TI (left); TI SR-10 calculator showing circuit in transparent case, used a single chip 1972, from Smithsonian NMAH
early transistor calculators - Casio "Mini" used chips from TI (left); TI SR-10 calculator showing circuit in transparent case, used a single chip 1972, from Smithsonian NMAH
IC, from Smithsonian NMAH



4. Fourth Generation (1971-1991) - microprocessor

  • 1971 - Gilbert Hyatt at Micro Computer Co. patented the microprocessor; Ted Hoff at Intel in February introduced the 4-bit 4004, a VSLI of 2300 components, for the Japanese company Busicom to create a single chip for a calculator; IBM introduced the first 8-inch "memory disk", as it was called then, or the "floppy disk" later; Hoffmann-La Roche patented the passive LCD display for calculators and watches; in November Intel announced the first microcomputer, the MCS-4; Nolan Bushnell designed the first commercial arcade video game "Computer Space"
  • 1972 - Intel made the 8-bit 8008 and 8080 microprocessors; Gary Kildall wrote his Control Program/Microprocessor (CP/M) disk operating system to provide instructions for floppy disk drives to work with the 8080 processor. He offered it to Intel, but was turned down, so he sold it on his own, and soon CP/M was the standard operating system for 8-bit microcomputers; Bushnell created Atari and introduced the successful "Pong" game
  • 1973 - IBM developed the first true sealed hard disk drive, called the "Winchester" after the rifle company, using two 30 Mb platters; Robert Metcalfe at Xerox PARC created Ethernet as the basis for a local area network, and later founded 3COM
  • 1974 - Xerox developed the Alto workstation at PARC, with a monitor, a graphical user interface, a mouse, and an ethernet card for networking
  • 1976 - Jobs and Wozniak developed the Apple personal computer; Alan Shugart introduced the 5.25-inch floppy disk
  • 1977 - Nintendo in Japan began to make computer games that stored the data on chips inside a game cartridge that sold for around $40 but only cost a few dollars to manufacture. It introduced its most popular game "Donkey Kong" in 1981, Super Mario Bros in 1985
  • 1978 - Visicalc spreadsheet software was written by Daniel Bricklin and Bob Frankston
  • 1979 - Micropro released Wordstar that set the standard for word processing software
  • 1980 - IBM signed a contract with the Microsoft Co. of Bill Gates and Paul Allen and Steve Ballmer to supply an operating system for IBM's new PC model. Microsoft paid $25,000 to Seattle Computer for the rights to QDOS that became Microsoft DOS, and Microsoft began its climb to become the dominant computer company in the world.
  • 1984 - Apple Computer introduced the Macintosh personal computer January 24.

Intel 4004 microprocessor in 1971, from Intel Museum
Apple I of 1976 , from Smithsonian NMAH
Wozniak and Jobs introduced Apple II in 1977, from History of Apple
MITS Altair 8800A 1975 from SDCM - cu
Apple II personal computer 1978 with 5.25-inch Disk drives, from SDCM - cu
IBM 5151 personal computer 1981, from SDCM - cu
Seagate ST-251 5-inch 40 MB hard drive 1978, from SDCM - cu



5. Fifth Generation (1991 and Beyond)

  • 1991 - World-Wide Web (WWW) was developed by Tim Berners-Lee and released by CERN.
  • 1993 - The first Web browser called Mosaic was created by student Marc Andreesen and programmer Eric Bina at NCSA in the first 3 months of 1993. The beta version 0.5 of X Mosaic for UNIX was released Jan. 23 1993 and was instant success. The PC and Mac versions of Mosaic followed quickly in 1993. Mosaic was the first software to interpret a new IMG tag, and to display graphics along with text. Berners-Lee objected to the IMG tag, considered it frivolous, but image display became one of the most used features of the Web. The Web grew fast because the infrastructure was already in place: the Internet, desktop PC, home modems connected to online services such as AOL and Compuserve
  • 1994 - Netscape Navigator 1.0 was released Dec. 1994, and was given away free, soon gaining 75% of world browser market.
  • 1996 - Microsoft failed to recognized the importance of the Web, but finally released the much imporoved browser Explorer 3.0 in the summer.
Nokia 9210 Communicator is part of the latest wave of web cell phones
The raveMP player sells for $269 and can store more than an hour of MP3 music
world's first production microchips made of silicon-on-insulator (SOI) transistors and copper wiring by IBM (AP 5/22/00)


Microsoft Reader
Michael Crichton displays a handheld computer with his latest bestselling novel "Timeline" in Microsoft Reader form on the screen (AP 5/23/00)
digital insertion ad


Jeff Bezos of amazon.com
wearable computers
Apple G4

Tuesday, June 10, 2008

course outline

ATENEO DE ILOILO
Santa Maria Catholic School
High School Department
139 Gen. Blanco St., Iloilo City


Course Outline in Computer IV
SY 2008-2009


I. COURSE TITLE: COMPUTER IV (JAVA PROGRAMMING AND INFORMATION TECHNOLOGY PROJECT WITH MEDIA TOOLS)

II. COURSE DESCRIPTION:


Computer IV deals not only in developing the learners’ knowledge in programming skills in terms of doing programming exercises through object-oriented programming, but also allowing them to enhance their logical and analytical skills by immersing into the different facets of computing. Part of the course will introduce some media tools.

The subject course has three essential and complementary parts: Programming Fundamentals, Java Programming, and I.T. Project. The first part of the course will cover some programming fundamentals that will aide in learning to program using Java language. Using Java language will integrate programming concepts such as data types, operators, and loop structures. The last part of the course will be a sort of culminating their computer subjects from first year to fourth year through an I.T. project. The I.T. Project is a project oriented course that will hopefully instill team support and effort as the students will undergo the same procedures of an I.T. Team. The team will have an option to use web development or video production.

III. GENERAL OBJECTIVES:

At the end of the school year, students are expected to:
1. gain appreciation of how programming languages have developed and evolved over time,
2. understand the different models or paradigms of computing,
3. define common terms and basic concepts in object-oriented programming,
4. enhance programming skills by constructing java programs in solving simple or common programming problems,
5. learn the basic principles of I.T. project management,
6. simulate phases of I.T. project management through a small scale I.T. project, and
7. present IT project as a Team output.


IV. COURSE TOPICS AND PROJECT REQUIREMENTS:
A. FIRST QUARTER

Some Programming Fundamentals

Lesson 1: Evolution of Programming Languages
First Generation: Machine Languages
Second Generation: Assembly Languages
Third Generation: High-Level Languages
Fourth Generation: Declarative Languages
Fifth Generation Languages

Lesson 2: Overview of Programming Paradigms
Imperative Programming
Functional Programming
Logic Programming
Object-Oriented Programming
Concurrent and Distributed Programming

Lesson 3: The Software Life Cycle
Requirements Analysis
System Design
Construction
Testing and Validation
Maintenance

Java Programming

Lesson 1: Introduction to Object-Oriented Programming
Basic Concepts in Object-Oriented Programming
Introduction to Java
Getting Started
Compiling a Java Program using an IDE
Executing a Java Program using an IDE
Common Programming Errors

Lesson 2: Your First Java Program
Explaining Welcome.java
Explaining Main.java

Lesson 3: Data Types, Literals, Keywords and Identifiers
Keywords
Identifiers
Data Types
Literals

Lesson 4: Java Operators
Arithmetic Operators
Relational Operators
Logical Operators
Bitwise Operators
Operator Precedence

Lesson 5: Decisions
if statement
if-else statement
Nested if statement
switch statement
break statement

B. SECOND QUARTER

Lesson 6: Loops
for structure
while structure
do while structure

Lesson 7: Exceptions
Nested Loops
continue
break

Lesson 8: Classes
Classes
Constructors
Inheritance
Interface
Overloading Methods
Overriding Methods

Lesson 9: Arrays
Single Dimensional Arrays
Multi-Dimensional Arrays

Lesson 10: GUI
Abstract Window Toolkit (AWT)
Containers
Layout Managers


C. THIRD QUARTER

I.T. Project

Lesson 1: Planning an Information Technology Project
Introduction to It Projects
Types of IT Projects
IT Project Life Cycle
IT Project Team Structures

Lesson 2: Defining the It Project
IT Project Scope
IT Project Storyboard
Work Breakdown Structure

Lesson 3: Planning your It Project Resource
IT Project Resources
Resource Availability and Sourcing Options
IT Project Budget Plan

Lesson 4: Developing an IT Project Schedule
Project Scheduling
The Gantt Chart
The Project’s Critical Path


D. FOURTH QUARTER

Lesson 5: Developing a User Interface
User Interfaces
Basic Principles of Interface Design
Documenting User Interface Needs
Acceptance Criteria in User Interface Development
Developing the User Interface

Lesson 6: More Specifications
User Specifications
Technical Specifications Development
Acceptance Criteria in Technical Specifications Development
Technical Specifications Documentation

Lesson 7: Monitoring the I.T. Project Status
Introduction to IT Project Status Monitoring
Steps in Team Member and Project Manager Reporting
Identifying Delay Causes and Resolving Problems
Monitoring Completion of Corrective Action

Lesson 8: Testing and Project Quality
Quality
Project Quality Management Processes
Introduction to Testing
Types of Testing
Peer Review

Lesson 9: IT Project Documentation
Introduction to IT Project Documentation
Types of IT Project Documentation
Additional Documentation Requirements

Lesson 10: IT Project Retrospective
IT Project Evaluation
Feedback, Maintenance
Enhancements

V. GRADE COMPONENTS:
Project* 40%
Exam 30%
Quiz 20%
Recitation 10%
Total 100%

* Project: Compilation of Programming Exercises, Individual Work & Group
Components:
Format/Syntax 30%
Content 15%
Creativity 25%
Knowledge/Skill 30%
Total 100%

* Project: Compilation and Presentation of the I.T. Project
Components:
Documents 20%
Clarity of Content 20%
Technical Elements 20%
Design 20%
Credibility 10%
Presentation 10%
Total 100%

Note: Schedule of the Topics, Lessons, and Projects on Media Tools will be explained during the first days of the school year.


V. GENERAL REQUIREMENTS:
1. Official Computer II Textbooks (LEE, Gabriela, LEE, Stevenson, et al. Desktop Publishing, TechFactors Inc., Quezon City, 2007.; KAZANIDIS, Emmanuel, M.SC., ORTIZ, Florida Valencia, Web Design, TechFactors Inc., Quezon City, 2006.)
2. Computer Notebook
3. Intermediate Paper


VI. REFERENCES

For Programming Fundamentals and Java Programming
1. JACINTO, Arturo L. JR. and CARO, Jaime D.L. P.D., Programming Fundamentals, 2nd Edition, Quezon City, TechFactors Inc. 2006.
2. Whizkids, Computer Literacy Program, Understanding Programming Concept, Rex Bookstore, Manila, 2002
3. PEƑAFLORIDA, Arlene, et al., Understanding Structure Programming, Vibal Publishing House Inc., Quezon City, 2004.
4. ABE, Lesley M.S. and CARO, Jaime D.L. Ph.D. Java Programming by Example, 2nd Edition, TechFactors Inc., Quezon City, 2006.
5. BURD, Barry, Beginning with Programming Java for Dummies, 2nd Edition, Wiley Publishing, Quezon City, 2005.
6. Java Programming Fundamentals, Wave Technologies International, Inc., Missouri., 2000.

For IT Project
1. CARO, Jaime D.L. Ph.D., IT Project, 2nd Edition, TechFactors Inc., Quezon City, 2006.
2. CARO, Jaine D.L. Ph.D., Video Production and Digital Photography for Beginners, TechFactors Inc., Quezon City, 2006.
3. MADRID-HIRATA, Evangeline, Ed. D. and MEDINA-MANALAD, Josephine. Designing a Web Page using HTML (with Java Flavors). Mandaluyong City. Hyperbit International Inc. 2004

TEACHER’S BLOGSITE: aisv4.blogger.com (ADI IT Sources Version 4.0)


CONSULTATION:
Academic consultations are highly encouraged by the subject teacher by appointment during school hours depending on his availability. Students and/or parents may still be accommodated after class (5 p.m. – 5:30 p.m. only) if deemed necessary and upon appointment set two days (or earlier) before the said consultation.


Man is still the most extraordinary computer of all.
John F. Kennedy


Arthur W. Nebrao, Jr., S.J., Subject Teacher
anebrao@gmail.com

Download file: http://www.mediafire.com/?12qn0oteamv

Copyright © 2008 er2ol. All rights reserved. Patent Pending.