Applications of Computers in Engineering
Many important engineering achievments have been made possible
with computers.
- The moon landing. Computers much less sophisticated
than what we have today played an important role in the Apollo
program that resulted in people walking on the surface of the moon.
The Apollo guidance computer was the first digital computer
NASA used to perform real-time guidance and control as well as
handle communications with the astronauts on the lunar surface.
Click here for an interesting website on the Apollo guidance computer.
- GPS satellites. The global positioning system
(GPS) uses satellites in orbit around the Earth to provide very accurate
information about locations on the surface of the Earth. A GPS receiver
contains a microprocessor that is programmed to use signals from several
satellites to pinpoint the user's location.
- Computer aided design and manufacturing. Computer aided
design (CAD) allows users to design all kinds of objects on a computer
system. Things like airplanes, cars, medical equipment, buildings, even
computers can be designed using various CAD programs. Computer aided
manufacturing (CAM) goes considerably further and uses computers to
control the manufacture of things designed with CAD. A CAM program might
control robots to e.g. assemble a car, or drive a rapid-prototyping machine
to build a custom product using lasers to heat and solidify a plastic medium.
- Computerized axial tomography. Known as a CAT scanner machine,
these devices take a sequence of X-rays of a patient. The CAT software
assembles the X-rays into a 3-dimensional representation of the person
that can be used to diagnose various conditions. Computer programs are used
at all steps along the way to collect and process the information.
Here are a couple of more obvious applications of computer programming:
- Video games. These programs, running on various kind of
hardware, are actually one of the most important driving forces behind
innovation in the design of computers. The quest to provide a more realistic
experience for the gamer demands more and more power from computing hardware
and sophistication in computer programming.
- Mobile phones. Everybody has a mobile phone, right? Each one
contains at least one microprocessor that has been programmed to provide
all kinds of functionality including telephony, access to a directory of
phone numbers, a calendar, a clock, games, etc.
- Internet. The Internet connects hundreds of millions of computers.
These computers have special programs such as web browsers, email clients,
music and movie software, etc. that make use of this connectivity.
- Personal and Business computing software. Think of tools like
Microsoft Office e.g. Word, PowerPoint, Excel, etc., Quicken, TurboTax,
Rosetta Stone, etc.
All of these applications, and hundreds of thousands more, require computer
programming in a high-level language like C. Someone has to write the
programs that control all of these applications. When we begin to learn
to program, we write simple programs that don't seem to do much, but the
knowledge gained by doing these exercises is essential before you can
start working on larger programs.
Computer Organization: Hardware
This diagram shows the organization of the hardware in a computer.
_______________
| _________ |
| | CPU | |
| ----|---- |
| | |
| |b |
| |u |
| |s |
| ____|____ |
Secondary Storage ----|--| MM |--|---- Output Devices
Communications ----|--|rom____| |
|------|------|
|
|
Input Devices
- Main Memory (MM in the diagram).
Also known as Primary Storage
and RAM. This is where active data and programs live. Main memory is
divided into bytes, each one with a unique address. On the CS computers,
addresses are represented by 32-bit integers, so there are 2 to the
32nd power addresses, enough for about four billion bytes.
Only some of the addresses are used, about a billion (2 to the 30th).
Main memory is volatile, i.e., it loses its data as soon as you
turn off the power.
Access time to main memory is on the order of nanoseconds, i.e., billionths
of a second. A typical DRAM (dynamic random access memory) chip will
have an access time of about 10 to 100ns to retrieve memory from one
address.
ROM (read-only memory) is a special part of main memory that doesn't lose
its data when the computer is shut off. It contains instructions and data
used when the computer is first turned on. The instructions basically
tell the computer how to load the operating system from the hard disk
or network.
-
Secondary Storage
These are things like
- fixed disk (hard disk)
- removeable media (floppy disk, large removeable hard-disk things,
writeable CD-ROMs and DVD-ROMs), USB keys
- tape (used mainly for backup)
Data are arranged in blocks of many bytes, usually 512 or 1024.
A hard disk is a random access device. Several platters with rotate under
several read/write heads that can move to different parts of the media.
You specify the particular block you want, the head seeks over there and gets
it.
A tape is a sequential access device; to get to block 100 you have to
"fast forward" past blocks 1 through 99. So it is slower than hard disk,
but tapes are cheaper.
The access time for hard disks is on the order of milliseconds, or thousandths
of a second. This is literally a million times slower than main memory!
Secondary storage is non-volatile. This means that the data is still there
when you turn off the power. Your files, computer programs, and other
data are stored on secondary storage.
-
Input devices
These encode human actions or other real world phenomenae, such as
- keystrokes on a keyboard,
- movement and clicks on a mouse,
- paper going through a scanner,
- voice or music over a microphone
into bits that go over the wires connecting them
to the CPU/MM via the computer's bus. Think of some examples of
input devices.
-
Output devices
These take electrical signals fron the computer and translate
them into real world actions, such as
- printing somthing on a page,
- drawing a picture on the screen,
- making sound come out of a speaker.
- Communications (not present on all computers)
This allows the computer to communicate with other computers. For example:
- network interface card + media,
- wireless network card
- modem + phone line,
- The CPU
This is the part that executes programs.
Programs are the instructions that tell the computer what to do.
The CPU interprets the instructions, in a simple binary language called
machine language. The CPU starts executing instructions at a specified address
on startup, then does the instructions in sequence until it finds an instruction
that tells it to execute code at a different address. It might loop, doing
the same thing over and over many times.
The CPU may do numerical or other types of computations, using its
registers and MM as temporary storage for the results.
The CPU may instruct the other devices in the computer to do something,
such as get information from the disk or see if something is being typed at
the keyboard.
The ROM (read-only memory) has the initial program the computer needs to
start up. The ROM usually tells the CPU to immediately load the operating
system from the secondary storage.
A program lives on the disk until the operating system (perhaps at the
request of the user) loads a program into main memory and begins executing
it. When a program begins running, it is known as a process.