PROGRAMMING FOR HIGH SCHOOLERS

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

 

Contents

 

Chapter 1: Introduction

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

Chapter 1: Introduction

What is a computer?

 

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.

A short history of computer hardware

 

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.

 

The history of the PC Clone

 

(8086)

(80286)

(80386)

(80486)

(Pentium)

(Apple Mac switches to Pentium!)

Today’s multi-media computers

 

(Need to say something about multi-media computers of today)

A short history of computer software

 

(to be expanded on later)

Why study programming in High School?

 

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.

 

The ubiquitous computer

 

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.

 

So why should I learn how to program?

 

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

 

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.

 

Human-machine interface: Humans tend to be very subjective when interacting with other humans, while computers are extremely literal. Because of this, controls used by humans to operate computers and programs need to be carefully designed to insure greatest efficiency and accuracy. As development of computers progressed, the means used to program them and feed data into them shifted more and more of the difficulty from human operator to the machine. When an operator keypunching data onto cards made a typing error, the procedure to correct the mistake required scrapping the card and starting over. Today, with modern word processors, correcting whole paragraphs, moving them around, fixing misspelled words, can be accomplished with a few keystrokes, or mouse operations, with little wholesale retyping. The invention of the Graphical User Interface (GUI) was considered a great improvement over the Command Line Interface, because it allowed pointing, clicking, dragging, and dropping icons rather than typing long, complex commands. Modern programs allow the user to choose data items, like a customer number, from a list of already entered data. Or, allow the user to find the correct customer number from an alphabetized list of names. Such issues all fall within the domain of the Human-machine interface.

 

Computer Circuitry

 

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)

 

Computer Logic

 

(Describe how vacuum tubes and transistors are used to implement Boolean logic and computer circuitry)

Reference List

 

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