0% found this document useful (0 votes)
18 views3 pages

Basics of Computers and Programming

Uploaded by

ervincsejtei1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views3 pages

Basics of Computers and Programming

Uploaded by

ervincsejtei1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

Part 1: Introduction to Computers and Programming

Chapter 1: Machines, Input/Output, Storage, and Logic


Introduction
This chapter is about computers and how they work. It is an overview
of a great many concepts like input/output, logic, storage, instructions,
machine language, etc. All of these concepts are written for novice
computer users. There will be no questions, exams, or assignments at
the end of this chapter. You are directed simply to read and get into
da groove! Throughout programming you will come back to these
things over and over again so there will be plenty of time for quizzing
you about your knowledge of them. At this point I just want to break
the ice.

Simple Example: Digital Clock


You know how to control a computer at a high level, user input. You
click this, type that, or push this there and the computer responds to
your action. But what is really happening when you do these things? A
computer program is receiving your input as it requested and dealing
with it as it sees fit. There are four things computers and any useful
machines have: input, output, storage, and logic. These are the
things that help them do the tasks they are meant for. To simplify
things I'm going to simplify the machine we're speaking of. Rather than
a computer, I'm going to use a digital clock:

I/O

Immediately you can recognize that the clock has input through it's
hour and minute buttons. No input would be complete without some
way of acknowledging it, output. In the case of our clock, we have a
LED screen capable of displaying a 24-hour clock. Input/output seem to
go hand in hand wherever you look. When something goes in,
something comes out. In lew of this, the two things are usually globbed
together under one term: "i/o", an abbreviation for input/output.

Storage: Temporary and Permanent


We know that the clock has a i/o, but where does it keep the current
time? The time seen is simply a display of the data where the clock
keeps the current time. Internally this machine has some place to
store this data. This is, obviously, known as storage.

When the power to the clock is shut off, the time resets. This means
the data for the time is in temporary storage. In computery terms,
our version of temporary storage might be defined as data storage
which is reset, blanked, or invalid when necessary power is lost or shut
off. Sounds complex, but just think: we take out the battery and the
clock goes dead and when we put it back in the clock is at 00:00. It has
been reset due to lack of power. The time data is not kept in
permanent storage.

Philosophically, nothing is permanent. In our terms, permanent


storage would simply mean the opposite of temporary storage. I
would define it as data storage which can only be destroyed or change
by explicit tampering or unforseen accidents. Our clock has no
permanent storage, but I think you get the idea. I'll explain a
computer's version of this later on.

Any given storage, regardless of permanence, will have one of two


different access privileges: read-only or read/write (I've never heard
of write-only, but it may exist in some 3rd world country). Storage
that is read-only can never be changed while read/write storage
can. It's that simple.

And lastly the concept of storage could be described simply in terms


of i/o from a storage machine/device. Say our clock's storage is a
little teenie circuit inside. Reading data from that storage would be
output from that circuit received as input; and vice versa when writing.
I chose to keep storage a seperate concept for simplicities sake
because it's going to be a major aspect for you in programming. You'll
always need to store data, and it's best to think of it as a container of
stuff rather than a bunch of hoses :).

Logic

Our machine can access input, display output, and keep a current
time in its storage; but how does it bring all these things together and
control them? Logic of course. You can think of logic as instructions
that encompass reading input, writing output, and making decisions.

Notice that I didn't mention storage. Again, that aspect is enveloped


in i/o. Because input from storage and output to storage is simply
implicit. Say, for example we have a jar of pennies for storage. I would
rather say add a penny to the jar than output a penny and feed it as
input to the jar. That two-way, give/take transaction is implied.

Logical instructions for machines of any kind are very explicit and
finite. There is no creative meanduring. Let me give an analogy. Say
you write some directions to get to your home from some known
freeway. Now, if you gave these to a computer it would act them out
one by one in perfect sequence and to the letter. A human, especially
a man, might try to take short-cuts. That’s what instructions are on a
machine. A list of actions to be carried out … it’s that simple! What
you do when you program is write or alter those instructions for your
specific purpose.

Now that I've rambled a bit, let's look at the logic for our clock.
 If the hour button is pressed, increase the current time by one
hour.
 If the minute button is pressed, increase the current time by one
minute.
 If a second has passed, update the current number of seconds.
 If the number of seconds is greater than or equal to 60, increase
the current time by one minute and reset the number of
seconds.
 Update the display with the current time.

Even though I can sum up the clock’s logic in five points, implementing
it can be fairly complex. First of all, how does the clock know when a
second has passed? A lot of these lower-level details may seem
superfluous, but sometimes you’ll need to know them. In the context
of simply warming you to programming, I’ll gloss over super-specifics
like these.

You might also like