next up previous
Next: About this document Up: My Home Page

Midterm 2

Monday, November 11 we will have the second midterm. It will mostly cover material since the first midterm, primarily on operating systems, spreadsheets, the internet, and programming.

The test will be similar in format to the first midterm, with true/false, multiple choice, and some short answer.

There will be a small number of true/false and multiple choice questions taken from the first midterm, so it will pay to review the midterm and see that you understand the previous material.

For next class, I will prepare a study guide to help with your preparation, but you should read the chapters and the lecture notes as well.

Pizza with the Prof, Wednesday, November 13, 6PM. Email reservations will be accepted!

Programming Languages

Programming languages are the way algorithms get expressed so that computers can understand them.

Algorithms are procedures for solving problems, like sorting files, or computing taxes to withhold. People think of these at a high-level, essentially in English.

Computer programs are sequences of instructions which are understood by the CPU. These machine instructions are patterns of 0's and 1's, corresponding to the particular instruction set of the CPU.

Programming languages make it practical for people to write software, by making it easier to express something that the machine can understand.

Machine and Assembly Language

The first attempt to make it easier to write machine instructions was assembly language, where each instruction in the instruction set was given an English name.

Since assembly language is just relabeling the machine instructions, it is easy for a program to do the translation.

However, assembly language programming is still too hard. Thus more friendly programming languages were developed which make it easier.

The program which translates programming languages into machine language is called a compiler.

Differences between Natural and Programming Languages

Why can't programmers just program in English?

English is too complex to write a translator for. Think how hard it is to translate from one natural language to another!

English is too ambiguous a language in order to express algorithms without being imprecise. The reason lawyer's language is so complicated is that they are trying to make things truly precise.

Programming languages are simple enough creations that everything in the language is unambiguously executable.

Applications generators are essentially very restricted versions of English, which can be translated directly into programs. They are limited beyond fairly specific applications, however.

Popular Programming Languages

BASIC is a popular beginner's programming language, designed to be easy to learn. Visual Basic is an extension for writing graphics applications.

COBOL is the traditional business-oriented language, used for writing payroll programs

FORTRAN is the traditional language for scientific computing and mathematics.

C and C++ are the standard languages for building operating systems and much applications software.

Pascal is a language traditionally used to teach programming, because it is simple and clean.

Java is a new language, designed to be used in Internet/WWW related applications.

Spreadsheets like Excel and database systems like Access are essentially easy to use programming languages, and have eliminated much of the need for special-purpose software.

The Millenium Bug

Because developing computer software is expensive, once organizations have software that does the job, they are very reluctant to replace it. Thus software systems used today for things like payroll and accounting are often decades old.

Because computer software is very complex, it is difficult for a programmer to understand and modify software they didn't write themselves. Thus it is hard to make changes to very old software, since the programmers have likely moved on.

To save memory, many programs written in the 1960's and 1970's stored only the last two digits of the year, and assumed the first two were "19". But now we are nearing the millenium!

The basic algorithm to compute someones age is to subtract the birth year from the current year. For me, 1996-1961 = 35.

Ten years from now, 2006-1991 = 45. But what about in an old program using two digits; 06-91 = -85!!!

This is the millenium bug, a problem that an enormous amount of important software will start to work incorrectly on January 1, 2000. Estimates are that many billions of dollars will be needed to fix these problems.

Topics to Review

Read all the notes and assigned book sections, but the following is what I consider most important.

What does a spreadsheet do?

What does an operating system do?

What is the Internet and how does it work?

What is an algorithm?

What is programming?

I have not yet covered the "Buying a Microcomputer" notes, so don't worry about it.




next up previous
Next: About this document Up: My Home Page

Steve Skiena
Thu Nov 7 14:47:17 EST 1996