(Latest Revision: 01/30/2012)

CS 1500 Week One Lesson
Introduction to Computer Systems


Here we have a graphic depicting a computer system.



The purpose of any language is the expression of ideas.

In the case of a computer programming language, the only ideas that need expression are actions to be performed by a computing system like the one depicted in the diagram.

What actions are such systems capable of?

A lot of what computers can do centers around "storage" - which is also referred to as "memory." In order to get work done, the computing system needs to "move data around". In other words, data needs to be copied from one storage location to another. Thus computer languages need to express commands to The CPU of the computer can perform simple operations on data. Therefore computer languages need to express commands that tell CPU's to Normally, the Operating System provides the "face" of the computer that the user sees. The OS is a virtual computer - it simulates a computer that is more convenient to use than the real hardware.

What is programming? When editing there is an interplay between the primary and secondary memories. Word processors are great for creating many kinds of documents but they are absolutely the WRONG tool for creating a program - because compilers can't understand anything but 'plain text'.

Programming is basically just problem solving. The challenging part is to figure out the steps required to solve the problem - the algorithm.

Once we have an algorithm, it's pretty easy to figure out how to write a program that performs the steps. Of course, there IS a learning curve to getting good at THAT part of the process too.

In an algorithm, ORDER is EXTREMELY important. You have to specify what is done first. second, third and so on. If something is done out of order, it can ruin the entire outcome of the program.

Quoting from our text: "To qualify as an algorithm, a set of instructions must completely and unambiguously specify the steps to be taken and the order in which they are taken."

Steps in program design The process described above is often not as 'linear' as described. Often one has to back up and re-do steps - for example when testing reveals errors.

A mistake or error in a program may be called a bug. The three main types of bugs are: Compilers will catch syntax errors and print error messages (which are typically hard to understand). The programmer (and helpers) are usually stuck with the job of finding logical and runtime errors. However, compilers may print "warnings" that help programmers discover logical or runtime errors.