A
guide to HTML and JavaScript by example
Copyright
© James Larson
April
2007
http://www.dst-corp.com/james
In
God We Trust…
First
posting: 18 Apr 2007
Update:
25 Apr 2007
What is a computer?
A short history of computer hardware
The history of the PC Clone
Today’s multi-media computers
A short history of computer software
Why study programming in High School?
The ubiquitous computer
So why should I learn how to program?
Computer Science
Computer Circuitry
Computer Logic
Reference List
Strictly
speaking, a computer is anything or person, which accepts input,
processes it, and produces a predictable output. Adam was probably the
first computer, as he attempted to quantify livestock and agricultural produce
to determine his tithe. To get started, here are a few fundamental definitions.
Data:
Numbers,
characters or some physical quantity, that represents meaningful information.
Graphics and sound files are data. Your bank account balance, name, credit card
number, home address, driver’s license number, age, sex, religious affiliation,
etc. are all examples of personal data. The chemicals, temperature, pressure,
and duration that a manufacturing process requires to produce a desired
compound is scientific data. The date, time, door location, and person ID code
is security data. If something can be recorded, classified, grouped, named,
timed, dated, located, counted or measured, it is data.
Input: Data that is to be processed.
An input device is a keyboard, mouse, digital camera, scanner,
microphone, or joystick.
Output:
New data –
or a new arrangement of old data – that is produced as the result of some set
of processing steps. An output device is a screen, printer, or
speaker.
Program:
A logical,
sequential set of movement, mathematical or transformational steps that are
performed on data to achieve a desired result. Storing, retrieving, playing,
displaying, etc. are examples of movement steps. Addition and subtraction
are examples of mathematical steps. Converting, sorting, grouping, truncating,
trimming, etc are examples of transformational steps.
Processing: Running a program on a set of data to
produce an output.
Computer:
As stated
in the opening paragraph, a person or machine that accepts input, processes it,
and produces predictable, deterministic output.
Memory:
In order
for a machine to process data, it needs to be stored, or represented in
some way within the computer. Over time, many different electromechanical or
magnetic methods were invented to accomplish this necessary function, but
today, it is mostly done electronically. Modern computers use many
different kinds of memory including RAM (Random Access Memory), ROM (Read Only
Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), Flash
Memory, etc.
Mass
storage: Intended
for long-term storage and retrieval of data, it is usually slower than the
memory mentioned above. Examples include hard drives, CD’s, and DVD’s.
Today, CD’s are commonly used to distribute commercial software and DVD’s
used to distribute large amounts of reference information, such as needed by
automotive service technicians. A hard drive is used to store for rapid access
and update all the programs, documents, spreadsheets, presentations, databases,
etc. for an individual or business. Before actually being processed, data is
first moved from mass storage into RAM.
Networks:
Early
computers were usually isolated from one another, and could only share data
with great effort. Today, computers are routinely networked so that data can be
readily shared among users. Computers in the same building networked together
with dedicated cabling that doesn’t leave the building are on a Local Area
Network (LAN). Computers that are networked using cabling owned and maintained
by an outside organization like the telephone company are on a Wide Area
Network (WAN). The Internet is an example of a WAN, which allows computer users
all over the world to share data with one another.
What
we now take for granted in computer technology took hundreds of years to
develop. It is a story of innovation and brilliance combined with hard work –
it didn’t happen by chance.
This
list is not exhaustive. It represents highlights of significant events that I
believe serious students should be aware of.
As
math became more important in commerce, science and engineering, computing aids
called abacuses were invented, the earliest being around 1,000 to 500
BC. Another aid, Napier’s Bones, could be used for multiplication and
division, while the Roman and Chinese abacuses could be used for counting,
addition, and subtraction.
Sometime
between 1620 and 1630 Edmund Gunter of Oxford invents a new rule following the
publication of John Napier’s concept of logarithms. This rule was marked with a
logarithmic scale and – with other measuring tools – could perform
multiplication and division. In 1632 William Oughtred of Cambridge put together
two Gunter rules to form what would be recognized today as a slide rule.
Modern slide rules have additional rules and a glass cursor that can perform
trigonometric functions, logarithms, exponentials, and
square roots. Some models had linear scales to do direct addition and subtraction.
Precision was limited to three digits, but for most science and engineering
problems, this was sufficient. Slide rules were widely used up until around
1975 when inexpensive electronic pocket calculators became superior functional
substitutes.
After
the beginning of the industrial age, mechanical devices called calculators were
invented. In 1623 Wilhelm Schickard built the Calculating Clock. Later, in
1643, Blaise Pascal produced a device later known as the Pascaline. These were
all instruments requiring human power to function. Also, each mathematical
operation had to be set up by the user and carefully monitored until
completion. Only one number could be stored in their memory at a time.
Even so, they were very useful in their day.
Fast
forward to the 19th century. If anything, the story of calculators
to modern computers is one of increased automation, requiring less and
less attention by human operators. In 1801, Joseph-Marie Jacquard invented the punched
card loom, which made possible the semi-automatic production of complex
colored patterns in woven fabric. In 1822 Charles Babbage saw that logarithmic
and trigonometric tables used in engineering and sea navigation were fraught
with errors because they were manually generated. He sought to automate the
production of these tables with machinery and thus improve their accuracy. His
first design, the Difference Engine, required 25,000 moving parts,
weighed in at 16 tons, and stood 8 feet high – a project he never completed
despite much funding. Later, in 1837, he designed his Analytical Engine,
which again he could not implement. Had it been built, it would have been over
98 feet long, 33 feet wide, and required a steam engine power source.
Babbage’s
Analytical Engine design incorporated punch cards to hold commands to
the machine, so that it could perform a whole series of mathematical operations
without operator intervention. It also had a store of 1000 fifty-digit
numbers for intermediate results, and a mill, which could perform
addition, subtraction, division, multiplication, comparison, and, optionally,
square roots on numbers from the store. The mill also had rotating drums with
pegs called barrels that held instruction sub-sequences to guide complex
operations. These four concepts roughly correspond to the modern notions of program,
memory, CPU (Central Processing Unit), and micro-code.
The
story of early computing would not be complete without the mention of a
brilliant mathematician named Ada Lovelace. She corresponded with Babbage about
his Analytical Engine, and is credited with having written a program to
generate a numerical sequence known as the Bernoulli numbers. Although
it could be argued that the first program ever written ran on Jacquard’s loom,
Lovelace is regarded by many as the first programmer, and is honored
with a modern programming language named Ada.
The
1880 United States Census took 7 years to complete using manual tabulating
techniques. The U.S. Constitution requires a nationwide census to be taken
every 10 years. At the rate the nation was growing, it was feared the 1890
census would not be completed before the 1900 census was required to commence.
Enter Herman Hollerith who, in 1889, patented the idea of encoding personal
data on punch cards. Hollerith used punched cards and electrically operated
counters to tabulate the 1890 census in 2.5 years.
As
commerce in the United States and other industrialized nations grew, so did the
need for faster ways to handle the accounts of ever-increasing number of
customers. This was particularly true in banking, mail-order retailers,
insurance underwriters, utilities, etc. In 1896 Hollerith founded the Tabulating
Machine Company, which later became part of IBM. He applied his idea
of encoding data on cards to routine accounting transactions, and the unit
record system came into being. A number of specialized machines were
developed to: keypunch source data onto cards; sort cards;
tabulate cards; punch tabulated data onto new cards; and collate
two stacks of cards into one based on some pre-determined criteria.
These
machines were “programmed” with wires plugged into pegboards, which were then
inserted into them. This permitted unit record equipment to be field customized
to many different kinds of tasks. They also permitted faster data processing
than was possible with armies of clerks pushing pencils and adding machine
buttons.
In
1924, the Computing-Tabulating-Recording (C-T-R) Company renamed itself
International Business Machines (IBM). This company was to play an important
role in the history of computers throughout the 20th century.
In
1936 Alan Turing wrote an important paper dealing with computational theory. It
put forward a thought experiment describing a machine composed of a single
read/write head that moves over an infinite tape. The tape is composed of cells
capable of storing one of a finite set of symbols. The head can read the
current symbol under it, write a replacement symbol, or move left or right over
the tape, under the control of an action table. Known as a Turing
machine, it is the theoretical foundation of algorithms, but is not a practical
computer. Turing completeness means that a programming language or
computer is capable of emulating a universal Turing machine. JavaScript
and the computers that run it are considered Turing complete.
In
1941, the Zuse Z3 was constructed using relays. A relay is an electrical
switch operated by an electromagnet, and is very slow, being able to operate
reliably at between 5 and 10 times a second.
There
is nothing like a bloody war to spur technological advances. This is
particularly true of WWII. The Allies wanted desperately to be able to read
secret communications exchanged by units of the Axis powers, and to automate
the production of firing tables for newly developed artillery pieces needed by
the Army. In Great Britain, the bombe was built to help decode messages
produced by the German Enigma machine, a field portable message encryption
device. In the United States, ENIAC (Electronic Numerical
Integrator and Computer) was completed in 1945 to solve ballistic trajectories,
while consuming some 160 killowatts of electricity in the process.
In
1947, Bell Labs invented a new kind of electronic switch known as the transistor.
The transistor uses solid-state physics within semi-conducting materials
such as germanium or silicon to control current flow, and
eliminated the need for a filament. Transistors were smaller, more efficient,
more reliable, and operated at lower voltages than vacuum tubes.
In
1951 the first business computer, LEO (Lyons Electronic Office) ran its first
application. Developed by J. Lyons and Co. of the United Kingdom, a leading
food manufacturing and catering concern, it was a remarkable DIY (Do It
Yourself) project. The Lyons management had the prescience to see that
computers could significantly improve clerical efficiency, but rather than wait
for computer companies like IBM to produce a suitable machine, they chose to
develop their own. Ironically, they were so successful they started a data
processing service and computer manufacturer. In 1954 LEO Computers, Ltd was
formed which continued advancing the state-of-the-art with the LEO II
and LEO III models.
In
1956 the first transistorized computer, the TX-O (Transistorized Experimental
Computer) was completed by MIT (Massachusetts Institute of Technology) . Many
individuals who later played an important role in the home computer revolution
cut their programmer’s teeth on this machine.
In
1958, Texas Instruments demonstrates the first Integrated Circuit (IC).
The significance of this development is enormous. Up to this point, whether a
computer was fabricated using relays, tubes, or transistors, the
interconnections between each discrete component was individually made. As the
complexity and power of computers increased, the number of interconnections
also increased, and computer engineers faced a problem known as the tyranny
of numbers. IC’s made it possible to create hundreds of interconnections in
one step using photolithographic masking techniques on specially prepared
semi-conducting crystal wafers.
The
other significant advantage that IC’s offered to computer makers was their
smaller size and greater gate density. The story of IC’s is one of
increased gate density, increased switching speed, and standardized
digital logic functions. Continued advancements in IC fabrication
techniques resulted in ever more active components in smaller and
smaller space. It was a necessary precursor for the development of microprocessors
and personal computers.
In
1965, Gordon E. Moore made the observation that the
number of transistors on an integrated circuit for minimum component cost
doubles every 24 months. This was later dubbed Moore’s Law. Often quoted
as a doubling every 18 months, it explains the exponential growth of computing
power witnessed today. Some would argue that Moore’s Law is actually a
self-fulfilling prophesy driven by global competition, but whatever causes it,
it doesn’t appear to have reached a practical limit yet. Many times since 1965,
Moore’s law appeared to reach some insurmontable obsticle shortly before
overcoming it. As individual transistor size approaches that of mere atoms, it
is anyone’s guess how much longer this law will hold. As long as it does,
computers will continue to get smaller, faster, cheaper and even more
ubiquitous.
In
1969, the United States – at the instigation of President John F. Kennedy in
1961 – achieved the goal of landing a man on the moon. Called Project
Apollo, the spacecraft flown included two of the first all IC computers.
Named Apollo Guidance Computer (AGC), there was one on the Command
Module, and another on the Lunar Module. Although Neal Armstrong – commander of
Apollo 11 and the first man to walk on the moon – experienced a computer glitch
on his historic descent to the lunar surface, his mission was completed
successfully. It is significant that no critical failure was attributed to
these exceptional computers, and it could be argued that without onboard flight
computers, the first mission to the moon – and the succeeding ones –would not
have been possible.
Also
in 1969, Intel Corporation developed the first microprocessor called the
Intel 4004. It combined registers, an Arithmetic Logic Unit (ALU), and
processor control circuitry on one IC. Originally designed for
the business calculator manufacturer Busicom, beginning in 1971 it was marketed
as a general-purpose micro-controller element. This made it possible to
deploy inexpensive computers in applications that in the past required
expensive discrete logic elements. It revolutionized the electronics
industry, spawning the technology that later lead to the ubiquitous use of
computers seen today.
In
1977, the Apple II Computer was introduced. Called by many the first
mass-produced Personal Computer (PC) targeted for the home market, it
was based on the MOS Technology 6502 microprocessor. Combining a keyboard and
video circuitry to produce digital images on an ordinary television receiver,
it was so inexpensive just about anyone could afford it.
In
1981, IBM introduced its IBM PC to compete in the home computer market.
Although moderately successful in that segment, it found its real place with
businesses. This had to do with IBM’s prestige as a computer maker. A commonly
known adage went, “no one was ever fired for buying IBM,” meaning that the
company’s reputation for extremely conservative business practices and
consummate customer relations made it a solid choice when acquiring computing
equipment. Several factors contributed to its commercial success: the IBM PC’s open
architecture design, which allowed non-IBM companies – known as “third
parities” in IBM parlance – to produce peripherals and other
accessories; and an attractive, high-reliability keyboard unit. Although the
least expensive model used only cassette tape for mass storage, premium
models included one or two floppy disk units, making it well suited to
accounting and other data intensive applications.
In
1982, Columbia Data Products introduced the first IBM PC Clone. While
the decision makers at IBM anticipated a certain level of competition from
third parties in the IBM PC peripheral market, they expected that the main box
would be genuine IBM. However, once the IBM PC became popular with businesses,
third parties took notice, and began reverse-engineering the IBM PC to
produce non-infringing functional equivalents, like the one by Columbia.
The
PC Clone had enormous impact on the fledgling desktop computer industry
because it introduced a level of standardization in small computers previously
unheard of. Independent software developers now had an inexpensive, relatively
standard platform on which to build and market their products. Non-business
software like games exploded onto the scene, changing the societal landscape
forever.
In
1984, Apple Computer – the same company that produced the Apple II – introduced
another revolutionary personal computer called the Macintosh. Its significance
is that it was the first commercially successful computer to incorporate a Graphical
User Interface (GUI). The distinguishing feature of GUI – which superceded Command
Line Interfaces (CLI) – was the use of high-resolution graphics, icons, and
pointing devices like a mouse. It was intended to be intuitive and easy
to learn. The vast majority of computer users today prefer it to CLI.
(8086)
(80286)
(80386)
(80486)
(Pentium)
(Apple Mac switches to Pentium!)
(Need
to say something about multi-media computers of today)
(to be expanded on later)
I
would hope students would study programming because they want to – that’s why I
did. However, if you are reading this text because someone in authority told
you to, please bear with me. I’m going to answer a few more questions and then
give you a list of good reasons to study this material.
Everywhere
you look today computers are in use: your cell phone, your car, your micro-wave
oven, your TV, and your game console, etc. In the case of a cell phone, they
negotiate the link between your unit and the tower, route your call onto and
over a complex communications network to the intended recipient, and many other
tasks. In a car, they manage ignition timing, oxygen/fuel ratio, and other
parameters so as to maximize fuel economy and cleanup exhaust emissions. In a
micro-wave oven, they control the amount of time electromagnetic energy is
applied to your food so that it heats evenly and consistently. In your TV, they
allow you to control dozens of features such as color saturation, picture
sharpness, audio volume, channel, etc, from across the room with a remote
control. In your game console, they create the play scene, manage the action of
the characters, and enforce the rules. These are but a few examples of a class
of computers known as embedded systems. They are programmed by the
manufacturer to perform a specific, well-defined set of tasks that, with the
exception of a limited number of parameters, cannot be modified by the end
user.
However,
the system you use to browse the Internet, handle your email, create homework
papers, manage your savings account, download MP3 files, view pictures from
your digital camera, scan images, receive faxes, etc, is an example of a general-purpose
computer. While embedded systems only perform a limited set of functions as
determined by the manufacturer, uses of a general-purpose computer are only
limited by your imagination and ingenuity.
As
a result, computers can be thought of as intellectual power tools. As
with any tool, they can be used for good or evil. This course is intended to
teach you how to write programs so that you can use computers for good.
Assuming
you are less than eager to study computer programming, here are a few
additional reasons to provide motivation:
To
help you get into the college of your choice. Most public and private high
schools offer at least one programming course. Having a programming credential
on your high school transcript will be a plus. Truly, you wouldn’t want its
absence to be conspicuous.
To
help you prepare high school and college projects. Knowing how to write a
program to perform some menial task can save valuable time and effort. Suppose
you needed to scan hundreds of web pages for a specific phrase and count each
occurrence, producing an index as you go along. Such a task could take days if
done manually, but once a program is written, it would take just minutes. And,
if the search criteria changes unexpectedly half way through the project,
modifying a program and rerunning it is surely preferable to scrapping hours of
arduous labor. Or, maybe you need to create a special electronic survey. Or,
solve a difficult logic problem. Even the inverse is true – knowing what kind
of problem can’t be solved with a computer can save valuable effort.
To
help you be more productive in your career. Labor costs are constantly rising. Knowing
how to program will help you to be more productive and stay competitive in a
global job market. If an employer is comparing two candidates for one position,
a programming credential on your transcript could be the tiebreaker.
To
help you understand what computers can and cannot do. Computers are extremely
complex artifacts, which can perform incredibly sophisticated tasks. However,
they do have limitations. Learning how to program them is the first step toward
understanding what those limitations are.
To help you develop problem solving skills. Programming teaches you how to analyze a problem to break it down into manageable component parts. These smaller parts can be broken down even further until a single, achievable step is identified. This approach is called divide and conquer. This logical progression from complex task to simple step is applicable to both programming and non-programming problems alike.
You
never know what your talents are until you try. You may well be blessed
with interests and talents that don’t include computers or programming. Yet,
part of the joy of life is discovering your God given talents. This course will
help you determine whether programming is one of your talents.
To
relieve fear: My
heart goes out to the poor soul who fears computers because they don’t
understand them. If this is your predicament, I can assure you that once you’ve
written and debugged a few programs of your own, your trepidation will be
replaced with a sense of accomplishment. Making these complex, mighty machines
do your bidding is a fantastic thrill. Computers are a product of the intellect
God gave us, and as such, are our servants. Become their master, and forbid
them to control your emotional state.
To
grow closer to God, the Master Engineer: DNA and a living cell are to me the ultimate software
and hardware. Writing a computer program and making it work gives me
a deeper appreciation for what God has done with His creative powers, bringing
me closer to His mind. I can imagine God enjoying His labor during creation
week, as He filled the earth with astounding plants, animals, and people. He
made me in His image – reasoning, rational, logical, and creative – and it is
said imitation is the sincerest form of flattery.
Because
someone you love and trust told you to. If you find that none of other reasons are
sufficient, then do it to honor your parents and the Lord. St. Paul wrote in
Philippians 4:12, “…I have learned the secret of being content in any and every
situation, whether well fed or hungry, whether living in plenty or in want…”
(NIV) meaning attitude is all-important. I promise you before God and man to do
my best to make this material as engaging and as delightful as possible. If you
adapt the right attitude, learning to program can be fun, enjoyable and
enriching.
Computer
Science is a broad discipline that encompasses the theory of information and
computation. Subjects include computer architecture, algorithms, data
structures, programming languages, artificial intelligence, computer graphics,
and human-machine interfaces.
Computer
architecture: Most modern computers are electronic
binary digital. Binary means two. The word digital means that values inside
the computer are manipulated as discrete, indivisible quantities. The
word electronic implies electrical circuits. Thus, computer architecture is a
study of the design and interconnection of various electrical devices and
circuits to implement a working computer system.
Algorithms: A detailed set of
instructions that, when executed, produce a desired result.
Examples
of common algorithms from math include: addition, subtraction, and
multiplication of multi-digit numbers; long division; extracting roots; finding
a common denominator of two fractions; etc. Everything a computer is capable of
can be broken down and analyzed as an algorithm.
Data
structures:
Computers manipulate data, or information. Part of designing an algorithm
includes deciding how to arrange the data inside the computer so that it can be
correctly processed. If a computer were to alphabetize or sort a list of
names, list would be the kind of structure needed. Just as the word
implies, the names would be arranged one after the other within the computer.
Executing the sort algorithm would cause that arrangement to change such that a
new list of the names is in alphabetical order.
Programming
languages: The
electronic circuits that computers are built of understand a very primitive yet
detailed machine language. The first electronic digital computers like
Zuse Z3 and EDSAC required programs that were essentially long lists of numbers
generated by hand that would implement some desired algorithm. These programs
were exceedingly tedious to produce, and also error prone. As the hardware
that made up computers advanced in speed and power, it became apparent that the
machines themselves could bear much of the brunt and tedium of producing
machine language. Computer programming languages allow humans to write programs
at a higher level of abstraction, making such programs more readily
understandable, extendable, and maintainable. The programs thus written are in
turn translated or compiled with other special programs, which
are sufficiently complex themselves to be worthy of separate study.
Artificial
intelligence:
Programs that mimic human thinking fall under this category. There are many
applications of computers where a simple, straightforward algorithm isn’t
sufficient. Programming a computer to drive a car is difficult because steering
is very dependent on visual cues. Analyzing the scene in front of a car
requires recognition of many different kinds of objects coupled with the
exercise of judgment. Natural language processing is another area where
artificial intelligence techniques are used.
Computer
graphics:
Generating scenes for computer-animated movies, or play fields of the latest
video game, fall into this broad subject. Lighting, shading, colors, shapes,
sizes, perspective, and motion all play a part in convincing the human mind
that artificial images are real. Many specialized algorithms and hardware
accelerators have been invented to compute and display the next sequential
frame needed to sustain this illusion, commonly referred to as virtual
reality.
As
stated in the sections on computer history, many different devices have been
employed to implement computer circuits. We will narrow the following
discussion to electronic digital computers.
Relays:
One very
useful principle from physics is electromagnetism. When current flows
through a wire, it produces a magnetic field. When a long length of wire
is wound around a ferrous form, a small amount of current will produce a
sufficiently strong force on an armature so as to operate a switch. The
simplest switches can make or break a single electric circuit, but relays with
very complex multi-pole or even rotary contact arrangements have been
manufactured. Relays were the first active devices used in computers.
Vacuum
tubes: The
reason ENIAC consumed so much power was because it used over 17,000 vacuum
tubes. Resembling light bulbs, a vacuum tube was constructed with two or more electrodes
enclosed in an evacuated glass or metal envelope: a cathode; zero or
more grids; and a plate.
Cathode: A filament called a heater surrounded by a
metal sleeve treated with barium and strontium oxides.
During operation, an electric current flowing through the filament causes it to
glow red-hot, which
excites electrons on the surface of the metal sleeve, producing a cloud of
free electrons. This is known as thermionic emission.
Plate: A metal plate charged positively with respect to
the cathode, which then attracts the free electrons from the cathode. The plate
was usually connected through some resistive or inductive load to a
high-voltage supply. A tube with just a cathode and plate was known as a diode,
and could be used as a rectifier. A rectifier allowed electrons to flow
in only one direction – from cathode to plate.
Control grid: Tubes with a cathode, plate and control grid are
known as Triodes. This grid is closest to the cathode and used to
control the plate current flow. A small negative voltage applied to the control
grid would inhibit the current flowing from cathode to plate, in proportion to
the negative voltage applied to the control grid.
Screen grid: Tubes with a
cathode, plate, control grid and screen grid are known as Tetrodes. The
screen grid is mounted between the control grid and plate and has a positive
voltage slightly lower than the plate potential applied to it. It increased the
current flow through the tube, and thus the gain. It also had better
high-frequency response in radio applications.
Suppressor grid: Tubes with a cathode, plate, control grid,
screen grid, and suppressor grid are called Pentodes. Pentodes are used
mainly for high power applications, like the final output stage of an audio
amplifier, or to drive signal cables in the ENIAC. The suppressor grid sits
between the screen grid and the plate. It is there because as the electron flow
between cathode and plate increases, electrons tend to bounce off the plate and
thus reduce electron flow. The suppressor grid was connected to the cathode,
making it negative relative to the plate and screen grid. This had the effect
of pushing electrons back into the plate, through the load, and thus increasing
electron flow.
The
fast switching capability made vacuum tubes desirable for use in early
computers, but not without drawbacks – low efficiency, low reliability, and
very high operating voltages to name just three. However, the ENIAC was 1,000
times faster than any computer built from relays.
Transistors:
Matter can
be classified as conductors, semi-conductors, or non-conductors
of electric current. Conductors allow
electrons to pass through them with low resistance when a voltage
differential is applied to them. Non-conductors, on the other hand, greatly
resist such electron flow. Semi-conductors fall in between these two extremes.
One such semi-conducting material is pure silicon. By adding impurities – a process known as doping – the conduction properties can be manipulated. Atoms of phosphorus add free electrons to the silicon creating n-type, while atoms of boron introduce electron holes yielding p-type. Certain arrangements of these two types of material yield interesting and very useful electrical properties.
Diode: Constructed from p-type and n-type material joined together, this device conducts electrons only when the n-type material is more negative with respect to the p-type. This is called forward biasing the n-p junction. If the voltage is applied such that the p-type is more negative than the n-type, no current will flow, and is called reverse biasing the n-p junction. The n-type terminal is commonly known as the cathode, while the p-type terminal is referred to as the anode.
Bipolar Junction Transistor: There are two types of these – NPN and PNP – and are mirrors of one another. In both cases, the terminals are called emitter, base and collector. The first has p-type material sandwiched between n-type, creating two n-p junctions, base-emitter, and base-collector. The second has n-type material sandwiched between p-type, creating two p-n junctions, again base-emitter, and base-collector. For a NPN device, when a positive voltage is applied to the collector with respect to the emitter, no current will flow because the base-collector junction is effectively a reverse-biased diode. However, if a small positive potential is applied to the base with respect to the emitter, a much larger current – proportional to the emitter-base one -- will flow from emitter to collector. For a PNP device, when a negative voltage is applied to the collector with respect to the emitter, no current will flow again because the base-collector junction is reverse-biased. However, if a small negative potential is applied to the base with respect to the emitter, a much larger current – proportional to the base-emitter one -- will flow from collector to emitter.
(JFET)
(MOSFET)
(CMOS)
(Describe how vacuum tubes and transistors are used to implement Boolean logic and computer circuitry)
The following articles from www.wikipedia.org were consulted in preparing this introduction. Because URL’s are subject to change without notice, only the article title is listed here. To find the page, use Wikipedia’s search facility on the title.
Abacus
Active component
Algorithm
Analytical engine
Apollo 11
Apollo Guidance Computer
Apple II series
Calculator
Category:Early computers
Charles Babbage
CMOS
Computer numbering formats
Computer science
Computer storage
Computing Tabulating Recording Corporation
Core rope memory
Difference engine
Diode
Diode logic
ENIAC
Field effect transistor
Gates' Law
Harvard architecture
Herman Hollerith
History of computing
History of computing hardware
History of computing hardware (1960s-present)
IBM
IBM 5100
IBM Personal Computer
Integrated circuit
JFET
LEO computer
Location arithmetic
Macintosh
Moore's Law
MOSFET
Napier's bones
Pascal's calculator
Project Apollo
Relay
Rock's law
Semiconductor device
Slide rule
Switch
Transistor
Turing completeness
Turing machine
Turing machine examples
Turing machine gallery
Unit record equipment
Universal Turing machine
Vacuum tube
Von Neumann architecture
Wirth's law
Z3
http://www.ibm.com/ibm/history/
IBM Highlights, 1885-1969
http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal2.html
How to Make Zuse's Z3 a Universal Computer
http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/z-contr.html
Konrad Zuses Contributions to the Modern Computer