CSC 012N

INTRODUCTION TO COMPUTER SCIENCE

 

During the first two class days, we discussed the origins of the modern computer age by tracing the history of ideas related to its development.   The abacus seems to be the about the oldest known computing device, and, remarkably, is still in use in parts of the world.

Beyond the abacus, we focussed on the 17th Century when people like Pascal and Leibniz designed a calculating device which aided in addition and subtraction.  The discovery of logarithms led to the invention of the slide rule, which capitalized on the rule of logarithms

log(A X B) = log(A) + log(B)

to allow replacing multiplications (hard) by additions (easy).  This device was common until roughly the 1970's, when electronic calculators became popular.

But the concept of the modern computer appeared early in the 19th Century when a man named Charles Babbage conceived of a "Analytical Engine" which would perform computations conveyed by a "program" encoded in punched cards, inspired by Jacquard's automatic weaving machines which also used punched cards.  Much of what we know of Babbage's prophetic work comes from the writings of Ada, the Countess of Lovelace, who was the only legitimate daughter of the English poet, Lord Byron.   Indeed, Ada actually wrote a program for Babbage's machine, which makes her the world's first programmer.  Babbage and Ada were to maintain a close relationship until she died in 1852.  The lack of modern technology doomed Babbage to failure in his endeavor, but his ideas were to appear again in the 20th Century.

Towards the end of the 19th Century, Herman Hollerith supervised the 1890 Census for the U.S. Census Bureau, and for the first time introduced the use of punched cards and readers for the processing of the data.  Hollerith later formed a company which was to become International Business Machines (IBM).

In the 1920's the MARK I computer was designed and built at Harvard.   It was mechanical and used telephone relay switches to represent the binary states 0 and 1.  Later, in the 1940's at the University of Pennsylvania, ENIAC was built.   This represented an advance since the underlying  technology was electronic vacuum tubes rather than mechanical switches.

With the invention of the transistor at Bell Labs in 1950, and the coming of the space age in 1957 (the Russian satellite Sputnik), the race to miniaturize was on in earnest.  By the mid-1970's the huge mainframe computers were complemented by the introduction of microcomputers.  Steve Jobs started the Apple Computer Corporation and soon IBM had to enter the competition for smaller, more powerful computers.

It was the search for an operating system for IBM's PC that led to one of the most important developments for our age.  A relatively small software company, called Microsoft, was given the job, and they created MS-DOS.  After the development of the Macintosh by Apple, with its graphical interface, Microsoft began the development of the Windows operating system, which is dominant today.

While the cost of developing hardware has been coming down, the cost of creating software has increased, which helps to explain the growing dominance of software companies like Microsoft and the decline of hardware manufacturers like IBM.   However, the growth of the World Wide Web promises to redirect the computer revolution once more.  Indeed, the web provided the rationale for the programming language we will be studying this semester:  Java.  Developed at Sun Microsystems Corporation, Java promises to be independent of the specific system architecture, unlike its predecessors like FORTRAN, COBOL, ALGOL, BASIC, C, C++, and Pascal.  Like all high level programming languages, a program written in Java must be "translated" into the 0's and 1's of machine language.  This is accomplished in two steps.  First, the program is submitted to a Java compiler, which translates the program into something called Java Bytecode.  This is essentially a machine language program for a "virtual" machine;  that is, this program will not run or execute on any physical machine!  The second step requires that the computer running the program have another program, called the Java Virtual Machine (JVM), which translates the Java Bytecode into that computer's specific machine language.   This two-stage process thus allows the original Java program to run on ANY machine that has the JVM interpreter.  Thus the Sun mantra, describing the advantages of Java programs:  "Write once, run everywhere".

Back to CSC 012 Home Page