(c) Andy Gravell, University of Southampton. Jan 1995
Modified by Hugh Davis. Feb 1996
Lecture 1: Introduction to Computing
Lecture 2: Graphical User Interfaces
Lecture 7: Graphics and Multimedia
Lecture 8: More about Software
Lecture 10: Artificial Intelligence
Lecture 11: History of Computing
Lecture 12: Professional Issues
Eric Cooke, email: ecc@ecs.soton.ac.uk, 3033 Zepler, ext. 3271
Hugh Davis, email hcd@ecs.soton.ac.uk, ext 3669.
Programming in Visual Basic, ~60% of the time, 50% of the marks
Computer Applications, ~40% of the time, 50% of the marks - Computer Currents by George Beekman.
Lectures, 3 a week
Laboratories, 1 a week, 10% of the credit
Assignments, 2 in all, 40% of the credit
Multi-choice examination, 50% of the credit
In addition to us the lecturers, there are the post-graduates who support the labs, advisory services (run by the Computing Service), in the library, Murray building, and so on. But if you are stuck, why not try asking your neighbour. If they know the answer they will be pleased to help you; you can pass the information on to someone else someday. It's a great way to meet people; see, computing is fun!
Computers are everywhere, and have profound impacts on society, sometimes for good, other times for the worse. It is up to us to understand computers and ensure that they used in a positive way. Application software is effective in boosting your productivity, getting in touch with people and computer based resources round the world. Programming helps you understand computers more deeply and teaches you to think logically. What's more, using computers is good fun!
Will fit in your pocket. You can talk to it. It will talk back to you. "Computer, when is my next appointment?" "Your lecture at 11am." "Computer, phone Bill Jones!" "Ringing for you now". You will be able to sketch or write on its small but sharp display. It will store all your notes, letters, essays, reports; as well as your favourite music and photographs. It will also be able to look up information from the digital library (the cost of a local phone call) and tell you what it finds.
No speech, no pen. Just mouse and keyboard for input. Screen (cathode ray tube, or CRT) for display. Black and white printing only, dot matrix (cheap) or laser printer (higher quality) Screen resolution (~72 dots per inch, or dpi) inferior to printer (300 or 600 dpi). This means that WYSIWYG (What You See Is What You Get) is a con. What you get (when you print on on paper) is better than what you see (on the screen).
Important keys are:
· space bar, backspace or delete, return or enter,
· page up/down, shift, alt and control keys.
Banks of keys are:
· letter keys, number keys, function keys,
· arrow keys, numeric keypad.
If you use a keyboard regularly, you should sit properly to avoid repetitive strain injury; most importantly your forearms should be level and your wrists supported. You should also consider learning how to touch type; there are computer based training (CBT) packages for this.
At the username: prompt type newuser and press enter. You will be asked for your student number, and whether you want to use DOS and Email (yes, both). You are then allocated your own username, based on your initials and year of entry. You must choose a sensible password, one you can remember without writing down, but not one which will be obvious, such as the name of your favourite pop star.
Once you have registered (after a short administrative delay) you will be able to log in to the computer systems by typing your username and password. You are then presented with a menu of available software which you can navigate with the arrow keys and enter, or else with the mouse.
If you think anyone has discovered your password you should change it immediately. This is an option on the main login menu. Remember to log out when you have finished. It is necessary to take these precautions to prevent anyone abusing your access to the computer, for example by sending email in your name.
You should familiarise yourself with the following terms (see the file GLOSSARY.TXT for definitions, or the glossary at the back of the course text).
CPU, processor, microprocessor
Input device, keyboard, mouse, trackball, joystick. Output device, screen, monitor, CRT, printer, dot matrix printer, inkjet printer, laser printer Memory, RAM, ROM. Random access, sequential access. Storage, magnetic disk, hard disk, floppy disk, diskette, CD-ROM, optical disk, magnetic tape drive.
All information inside the computer (be it text, sound, graphics, or software) is stored digitally, as binary numbers. Binary numbers are to base 2. A bit is a single binary digit (either 0 or 1). A byte is 8 bits. In the ASCII code each character is encoded as a byte. For example the letter a has the code 01100001. A typed page of A4 has about 4,000 characters, so it takes about 4 KBytes to store each such page. A floppy disk with a capacity of 1.44 MBytes can hold up to 400 pages! (Note in computing K = 1024, roughly a thousand, and M = 1024*1024, roughly a million).
The fixed, internal disk on a PC is called a hard disk. These usually cost about 200 pounds. (Because ASCII is an American standard it does not include a symbol for a pound sign, though most PCs use an extended version of the ASCII code which does.)
The capacity of hard disks is increasing exponentially, roughly doubling each year.
Typical capacity of a 200 pound hard disk
1989 20 MBytes
90 30
91 40
92 100
93 240
94 540
95 820
You can use the hard disks on the SUCS PCs for temporary storage, but the files are deleted when you log out. So, to keep your work from one session to the next, you must save it onto diskette.
You get these from dispensing machines run by Southampton University Computing Services (SUCS). First you need by buy a copy card from the library. You should then charge this up with extra units. (One pound buys 20 extra units.) The dispensing machines sell diskettes individually or in fives. You should buy HD disks, which cost 17 units each. The formatted capacity of these disks is 1.44 Mbytes. There are also DD disks, which are slightly cheaper, which have half the capacity (720K).
Make sure you write your name and department on your disks (in case you lose them). Protect them from dirt, extreme heat or magnetism. If your work is important, keep a copy on a second disk (called a backup) in a safe place.
You should familiarise yourself with the following terms: GUI, WIMP, window, icon, menu, pointer, click, double click, drag, title bar, menu bar, tool bar, scroll bar, button, keyboard shortcut, dialog box.
In 1968 Doug Engelbart demonstrated a futuristic system called AUGMENT which included use of the mouse, graphics and networking. In the 1970s Alan Kay and a team at Xeroc PARC (Palo Alto Research Center) developed the WIMP. Two early WIMP computers were the XEROX Star and the APPLE Lisa. Both were expensive and sold poorly. In 1984 APPLE introduced the Macintosh, "the computer for the rest of us". This was, and still is, hugely popular because of its ease of use. In 1985/6 Microsoft produced Windows 1, but not until 1990 and Windows 3 did WIMP computing become popular on IBM PCs and compatible computers.
Log in, and select Microsoft Windows 3.1 from the menu. Select an appropriate resolution. Higher resolutions give you more information, but smaller writing. If you find high resolution difficult to read, use low resolution instead.
When Windows is loaded you should see a single window, titled Program Manager. In the window are a number of program groups, which give you access to various programs.
To exit from Windows you have to close down the program manager window, by double clicking the close button at the top left hand corner. Don't forget to log out!
A program you will find useful is the File Manager. To run this you open the program manager group called Main (by double clicking its icon). A new window will appear inside the original Program Manager window. It is called a child window. Inside this window are various icons representing programs. The first of these is the File Manager icon, a filing cabinet. Double clicking this launches the File Manager Program, which appears in a new window of its own.
Only one window is active at a time. The active window (just now that is the File Manager window) is displayed on top of the other windows, and its title bar is highlighted. To make another window active, simply click the mouse anywhere within it.
When you have several windows on screen it is easy to get confused. You can move the windows around the screen to see more clearly the information that you are interested in. To move a window you drag on its title bar. You can change its size by dragging on the window border. Also there are buttons at the top right of the window which let you increase its size (upward pointing arrow) or decrease it (downward pointing arrow). Clicking the down arrow (the minimize button) reduces the window to an icon. You can tidy up a cluttered screen by minimizing any windows that you are not currently using. Alternatively you can double click the close icon (control-menu box) at the top left of a window to exit the program and remove the window entirely.
To be comfortable using Windows you must familiarise yourself with all these common window operations.
Returning to the File Manager you should see if has a menu bar with menus titled File, Disk, Tree, View, Options, Window and Help. Under this is a tool bar with a button for each disk drive on your computer. The first drive will be a, which is the floppy drive on your PC. Drive c is your PC's hard disk. The other drives such as g are drives elsewhere on the network. You can access files on the networked drives, but you cannot create your own, nor change any existing files; that is because the drives are shared with the other PCs and they are write protected.
In the left half of the window you will see the directory tree and in the right half selected files in the current directory.
To view directories and files on another drive you click (once) on the appropriate drive icon in the tool bar. To view the contents of a directory you double click it. The directory for this course is called
g:\course\eric\cs175
That means that the subdirectory is located on drive g (g:), in directory course (\course), which has a subdirectory eric (\eric), and within this is the subdirectory cs175. You can access this using the mouse to select drive, directory, subdirectory, and so on. Alternatively the File menu has a command called Select Files... which allows you to type in the full name of the directory as above.
To be able to save your work on a diskette, you must first format the disk. This is a process which lays down sectors and tracks on the disk which allow the disk drive to locate areas of the disk quickly. (Disks are random access devices, unlike tapes which are accessed sequentially.) Most disks are sold unformatted so, before you can save, you must first format them. This is a process which wipes out any existing files on a diskette, so you only do it once to a disk.
From the Disk menu in the file manager select the command called Format Disk... This brings up a dialog box where you can select the drive that the disk is in (almost always A:) and the capacity. WARNING if you have bought DD disks you MUST choose a capacity of 720K. When the correct drive and capacity have selected, click on the OK button to start formatting.
When your disk is formatted you can click on drive a in the File Manager. This will allow you to view your disk. At present there will be "no files found". Later, when you have saved your work to the disk, File Manager will show you a list of your files; this is handy if you have forgotten what you called them.
You should familiarise yourself with the following terms:
LAN, WAN, modem, optical fibre, archive, public domain, shareware, server, email, BBS, Internet, FTP, TCP/IP, WWW.
When you use a Computing Services PC, your machine is connected to a LAN, with its own file server. The file server is connected to the Campus network, which uses optical fibres to provide fast data transmission between buildings in the University. The University network is connected, via the UK academic network, to an international network called the Internet.
· 1979 American Defense Agency funds ARPANET
· 1982 TCP/IP protocol is defined Other networks develop (eg BITNET) and begin to interwork
· 1990 ARPANET replaced by the Internet
· 1992 Over 1,000,000 nodes connected Exponential growth continues with network doubling each year
Historically the main users of the Internet have been Universities, and public bodies. These continue to support most of the traffic on the network. However commercial companies are becoming interested in using the net and also in providing services through the net. A problem with this is the lack of charging mechanism; at present the Internet culture is that everything is provided free.
To use electronis mail you log in to the Campus mail machine, whose full Internet address is mail.soton.ac.uk, which happens to run the UNIX operating system. Email access is provided by a program called elm. You can send email to other users of the mail machine using just their username. To get mail from outside you must quote your full email address which is uuu@soton.ac.uk (uuu is your username) Electronic mail is free (to you anyway), informal (peer to peer) and asynchronous. There is no need to find someone in to be able to send them email. Incoming mail sits in a file called your mailbox until you want to read it. The disadvantages of email are that it is easily forged, not legally binding, and rather impersonal. To overcome this problem certain conventions have developed
:-) signifies a smile
;-) a wink
:-( a frown
*bold* /italic/ forms of emphasis
UPPER CASE a loud or angry message
At present not available on the Computing Services PC, this bulletin board system is divided into over 2,500 news groups on a wide range of topics, as this sample shows:
With about 70,000 messages per day there is no way you can follow every group!
A network based resource, this collects software that is public domain or shareware for use by students and staff at Universities. Two of the machines are archie.hensa.ac.uk runs the archie program searches for files micros.hensa.ac.uk archive of software for the PC and other micros There are roughly 3,000 DOS packages and 1,000 Windows packages available for you to download from this machine!
You should familiarise yourself with the following terms:
Wordprocessing is the most popular computer application.
Certainly your use of computers while studying at the University and thereafter will involve in the writing of many reports. It is therefore well worth while to become proficient in the use of a modern, Windows-based, wordprocessor.
The key to successful use of a wordprocessor is to make full use of the automation it provides. It will lay out your text in neatly justified paragraphs; split your work into pages and number them; align the columns in a table. The supplied styles give a professional appearance to your document, and also allow the wordprocessor to generate a table of contents by selecting all text that you have declared to be a heading. You will find that these features significantly reduce the time needed to change a document around, perhaps by deleting or adding new text, or perhaps to use a different printer or a different font. These tasks require the adjustment of paragraphs, page numbering, table of contents, and so on.
Let the computer do the work for you!
In addition many features from desktop publishing are now available in WordPerfect and Microsoft Word. For example you can incorporate pictures, create drawings and lay out mathematical equations. These facilities help to break up the monotonous appearance of printed text, giving your work a more exciting visual appearance. Be parsimonious however in your use of fonts. Note that the conventional wisdom is to use a sans serif font for headings and a serif font for other text. Of course, if you use the supplied styles, then you will automatically be given a range of fonts that are visually harmonious.
Further tips are given in the appendix at the end of this file.
You should familiarise yourself with the following terms:
Any file or collection of files containing information can be described as a database, for example the glossary of terms provided with these lecture notes. However there are certain disadvantages of free text format with respect to information retrieval.
For example, suppose you have a file of names and addresses, and you want to look up a certain person whose last name is Lane. Using text searching you will also find every address such as Lover's Lane, and other surnames such as DeLaney. To avoid such problems it is usual to keep serious amounts of data in a structured format, in which the file is split into clearly separate records, and moreover to split the information in each record into clearly separate fields. Then one address can be kept per record, and the address can be split into separate fields such as first name, last name, house name or number, street name, town, and postcode. Another advantage of this structure is that the information can easily be sorted by, say, postcode, and then re-sorted by last name. Thus the structure facilitates accurate information retrieval and efficient information processing.
The most common structure is as described above. Each file holds a two dimensional table, the rows being the records, and the columns being the fields. This is called a relational database. Other arrangements are heirarchical, as in the directories and subdirectory structure of files on a computer disk; or network as in the network of links in a hypertext system.
A further problem in efficient storage of data on the computer is to avoid duplication. Consider a library database. There must be a record of each time a user of the library borrows a book. The record will have fields for borrower number, book number, and the due date of return. It would also be possible to keep in this record full details of the borrower such as name and address and full details of the book such as author and title. However with that arrangement the borrower details would be repeated every time the borrower took out another book, and the book details would also be duplicated each time the book was borrowed. Duplication of information takes extra space on disk. What's worse, the borrower details will change from time to time, for example a change of address. If the details are stored in more than one place such a change is more complicated to administer. A sensible design for a database system stores each fact in just one place, avoiding duplication. This requires that the database is split into separate tables, for borrower details, for book details, and for borrowings. Each table is kept in its own file.
Computers started to be used in business at the start of the 1950s. In the beginning space for storage of data and programs was limited. As time went by however more and more of the business information was kept on the computer. The problems of managing this data soon became apparent. The solution was recognised to be a database management system (DBMS). Many standard functions were provided by these packages, simplifying the task of programming the specific applications for a particular business. Nowadays any sensibly run business keeps its information in structured database files rather than free format text.
A significant problem of the 1990s is the need to run databases and database applications across a whole network of computers. Consider, for example, a credit card company that wants to be able to authorise payments by its customers anywhere in the world. This is called distributed transaction processing. It is only now becoming possible to run such systems on a global basis. The requirements are for terabytes (millions of millions of bytes) of data, available 24 hours a day, with access and update times of the order of a second. Old style databases held on to updates and ran them in a batch overnight (batch processing). Nowadays customers expect both access and update to be instant (the database must be on-line).
There is a whole spectrum of database packages. From simple packages suitable for single file databases to complex systems capable of keeping the entire records of a bank or credit card company. Also available on the PC are specialist databases such as Personal Information Managers (diary and address book in one) or, for sales personnel, Contact Managers. Route Planners and Project Management combine a database with specialist programs to process the data in the required way.
You should familiarise yourself with the following terms: cell, cell range, formula, replication, automatic recalculation, "what if?" calculation, GIGO, chart, pie chart, scatter chart, mathematical software, statistical software, scientific simulation. Unlike the database, the spreadsheet is essentially a personal computer application.
The first spreadsheet, Visicalc, was designed in 1978 and ran on the Apple II microcomputer. This one application converted the Apple II from being a hobbyist's machine into a tool for business. The spreadsheet program Lotus 1-2-3 played a similar part in the success of the IBM Personal Computer five years later. Lotus added business graphics to provide a what was than a unique solution to business analysis problems.
The appeal of the spreadsheet in 1978 must be understood relative to the mainframe software of the day. This was relatively cumbersome and slow to change. Data was extracted from databases and printed overnight as weighty reports, usually on old-fashioned listing paper all in upper case. The spreadsheet changed all that. Suddenly it was possible to get results interactively, on the screen, or your own printer. It was possible to enter a formula yourself to calculate simple statistics; it was no longer necessary to make a formal request for a programmer to write you a program. With Lotus 1-2-3's business graphics, it was possible to see by eye meaningful trends which before had been only abstract statistics.
The key concepts in the spreadsheet are the cell, the cell address, and the formula.
A spreadsheet stores data, usually numbers, in a table split into columns (A, B, C, ...) and rows (1, 2, 3, ...). A row and a column intersect in a cell, which has an address such as B3. This is simpler in a database where field names (column headings) must be defined before any data can be entered. A cell can hold any data item, be it a number, text or formula. Again, this differs from a database where the type of data stored in a field is pre-determined when the database is set up.
(Though headings are optional in spreadsheets their use is good practice, as an array of numbers without comments or labels is often meaningless.)
When a formula is entered in a cell, the formula itself is remembered, but what is displayed, the cell's contents, is the value of the formula. An example of a formula is = 1 + 3 + 6
The equals sign distinguishes formulas from ordinary text. The value of this formula is 10 and that is what will be displayed.
More interesting, and useful, is to make a formula depend on the contents of another cell. This is done using the cell address, such as B3, as a variable. The formula = B2 + B3 + B4 will calculate and display the sum of cells B2, B3 and B4. This can also and more conveniently be calculated using functions that are builtin to the spreadsheet program = SUM(B2:B4)
Here the function is SUM, and it is acting on the range of cells B2 to B4, that is to say B2, B3 and B4. Ranges allow functions such as SUM to act on any rectangle; for example AVERAGE(B2:D5) calculates the mean of the 12 cells in columns B, C, D and rows 2, 3, 4 or 5. For better readibility of formulas, it is possible to give a mnemonic name to a range, and enter a formula such as = SUM(marks)
There are many other built-in functions for calculating statistical and financial values. They are listed in the on-line help. It is also possible to define your own functions in the built-in macro programming language. In the case of Microsoft Excel this is a variant of Basic.
The spreadsheet is more powerful than an ordinary calculator in two ways. Firsly it allows you to replicate formulas, so you do not have to type them repeatedly. Secondly it automatically recalculates formulas when any cells that they depend on are changed. This automatic recalculation is powerful yet simple. Blink and you can easily miss its huge significance. With automatic recalculation it is trivial to redo complex predictions for a range of assumptions. Charting, or business graphics, adds much to the power of a spreadsheet. This is now a standard part of any spreadsheet program. One or more columns or rows of data can be displayed in line graphs, histograms (bar charts), pie charts or scatter graphs. It is important to use the appropriate type of graph according to the message you hope to convey.
A typical use of spreadsheets is in analysis of financial data. There are dangers in making such calculations using so flexible a package: the spreadsheet performs little or no checking. Surveys have suggested that more than half the spreadsheets used by businesses had errors in them. The wrong figures had been entered, or the formulas had been typed wrongly, or were calculating over the wrong range of addresses. For serious business use, it is probably better to use a specialist accounts package which incorporates better checking, and comes already programmed with many calculations, avoiding the risk of entering a formula wrongly.
Recently the wordprocessor, spreadsheet and database package have started to converge. Modern spreadsheet packages can be used to store simple (single file) databases, and provide sorting and simple querying. They also support text formatting features, such as choice of font, more often associated with wordprocessors. Similarly calculation functions can now be found in both database and wordprocessor packages. For the novice user this may not be a good thing as it may lead to them being offered more choices than they can easily deal with.
You should familiarise yourself with the following terms: business graphics, scientific graphics, bitmap, pixel, resolution, paint program, draw program, clip art, computer aided design (CAD), multimedia, hypermedia, virtual reality, data compression, image processing, scanner, digitiser, digital camera.
Typical screen resolutions these days are
640 * 480
800 * 600
1024 * 768
1280 * 1024
1600 * 1200
Higher resolutions require large (17" diagonal) and expensive (1000 pounds or more) monitors.
Liquid Crystal Displays (LCDs) are approaching Cathode Ray Tube (CRT) screens in quality but are limited to 10.5" diagonal. They are used in portable computers because they can be run from a battery.
True colour requires 24 bits per pixel. Note that 1600 * 1200 * 3 bytes = 6 MBytes roughly!
Paint Programs: work with bitmapped images which can have jagged lines and are hard to scale, but good for subtle colouring.
Draw Programs: work with vectors and curves described mathematically which scale well and can be drawn smoothly.
Business Graphics: The facilities provided by eg spreadsheet programs to produce charts from numbers.
Scientific Graphics: Like business graphics but supporting the kind of graphs scientists like to use.
Presentation Graphics: Programs to produce computerised slide shows or OHPs.
With the increase in popularity and decrease in cost of CD-ROM drives, more home computers are able to support multimedia up to and including moving pictures and sound. Soon it will be possible to put full length movies on a single CD. Many publishers believe that there is money to be made from this new publishing medium. As with all electronics costs will continue to fall.
Games can be made more attractive. Books even encyclopaedias, on CD-ROM can include more visual material and sound that was not possible before. Reference material, say in law or medicine, can be made more widely available. A year's worth of a newspaper can be bought on CD for reference at the end of each year.
Multimedia is not limited to CD-ROM, but the hugh capacity (650 MB) of this medium is key to the cheap publication of memory hungry pictures and sound.
Hypertext is about linked text items. An example of a hypertext system is the Help system in Microsoft Windows. Hypermedia combines hypertext and multimedia so it is about linked text, pictures and sound. Linking is one important way of helping the user to navigate the increasing volume of on-line information. Pointers to other information are more effective if they are turned into links. Clicking on a button (the visual representation of a link) is much easier than following pointers around paper-based documents.
Hypermedia is expected to have applications in teaching, research and sales among others. The hypermedia shopping catalog is already under trial.
Recent years (1994/5) saw a massive increase in popularity of the World Wide Web (WWW) which runs on the Internet. It is a distributed hypermedia system. Instead of getting the information off CD-ROM, Web pages can be stored anywhere round the world. A new form of file name, the Uniform Resource Locator, or URL, makes it easy for users of the WWW to view documents anywhere around the world; though access to the States can be a little slow during their working day (our afternoon and evening). The Web is the first Internet service to be delivered primarity through a GUI. It is therefore easier for a novice to use than previous information services. Organisations have latched on to this cheap system of self publication from the government (US and UK) down to pop and movie companies.
This year (1996) is seeing growth in commercial services over the Internet, and most of these use the WWW as their front end. Questions remain about the security of sending, say, credit card information over the Internet. For full security it is necessary to encode such messages before transmission using a secure encryption algorithm.
You should familiarise yourself with the following terms:
operating system, system software, compiler, interpreter, utility, application software, package, all in one package, integrated package, object embedding, file, directory, subdirectory, file name, path name, multitasking, parallel processing, real-time processing.
Software is classified under 4 headings
UNIX, DOS, Windows (kernel)
Programming language compiler
Virus checker, communications software, program manager, file manager
Wordprocessor, spreadsheet, graphics, database, email, and programming language, interpreters
For technical reasons a compiler, which translates high level language to machine code programs, is dependent on the actual instructions used by the computer's central processing unit. It is therefore machine dependent and is classified as systems software.
The role of the operating system is to allow applications and other programs to run without intimate knowledge of the hardware present on your computer. For example the application program simply asks the operating system to open a file.
It is the operating system that knows how to control the disk drive (be it hard disk or floppy), read it sector by sector, and piece together the data into the logical file format. Similarly the application program simply asks the operating system to display text. It is up to the operating system to convert the text and send it in appropriate format to the screen.
Older operating systems such as UNIX and DOS tend mainly to work line by line, via a command line interface (CLI). Newer operating systems such as the MAC OS and Windows provide GUIs.
As well as facilitating access to the hardware, operating systems provide other facilities such as a hierarchical file system, and multitasking.
A hierarchical file system consists of directories which may contain files or other directories. In DOS and Windows each file and directory has a name in the 8.3 format such as MYFILE.BAS or LECTURES.TXT; directories usually drop the .3 and have names such as TEMP or USERS. A full file name, or path, lists all directories traversed from the root directory down to the file, separated by the \ character. E.g. G:\COURSE\CS175\LECTURES.TXT
Here G:\ is the root directory on drive G. The file LECTURES.TXT is contained in subdirectory CS175 of subdirectory COURSE.
Multitasking allows you to run more than one program at once. This of course is necessary for a GUI where each program runs in its own window.
Usually the multitasking is faked by switching quickly from one program to the next. On machines with more than one processor (multiprocessors) it is possible to run programs truly in parallel (parallel processing).
Parallel processing is used in scientific computing where high performance is required, for example in weather forecasting. It wouldn't be very impressive for the computer to take 48 hours to calculate one day's weather!
Nowadays applications programs are often called packages because they are sold in boxes containing software on floppy disks (or CD ROM) installation instructions reference and user manuals registration card disclaimer (anti-guarantee)
A typical disclaimer might say
THIS SOFTWARE SUITE IS SUPPLIED AS IS.
THE PUBLISHER DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF MERCHANTABILITY AND OF FITNESS FOR ANY PURPOSE. THE PUBLISHER ASSUMES NO LIABILITY FOR DAMAGES, DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT FROM THE USE OF THIS SOFTWARE, EVEN IF THE PUBLISHER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Friendly or what?
Programmers spending only ~1/5th of their time writing code Other activities are
This sequence is called the software life cycle. It's a cycle because often maintenance for the current version leads on to analysis for the next version. All successful packages issue new versions every couple of years.
Some interesting books are
Problem: a program to input ten numbers and output their average
Answer: use a spreadsheet
Why: solves this problems and all the extra requirements that will arise when the first problem is solved
Problem: a program to log data from road traffic sensors for use in monitoring and controlling the traffic
Answer: that's interesting. Tell me more! Rate of arrival of data, its format, Reliability of sensors, action on error, Confidentiality of data, fault tolerance, Monitoring or control - which do you want me to do first?
Monitoring -> send data to a spreadsheet for analysis (see above)
Control -> I must research algorithms for this and related problems
In 1981 Lockheed engineers had to transmit daily about a dozen drawings from a CAD system in Sunnyvale, California to a test station in Santa Cruz, just 25 miles away.
Traffic jams however meant that a courier service took over an hour and cost $100 per day. Propose alternative methods of transmitting this data. (The chosen solution is at the end.)
Problem: a program to check for spelling mistakes in word-processed text.
Answer: many existing programs for this problem. However, there may be still be a gap in the market. Existing products: mainly interactive programs. A possible opening is to highlight errors using colour c.f.Visual Basic editor - this may help poor spellers and sloppy typists.
Design for Problem IV
200 words on screen, 0.1 secs per screen, 0.5 millisecs per word = 10,000 instructions on a 20 MHz processor, ok.
At the SYSTEM level Data Flow Diagrams
At the PROGRAM level Structure Charts
At the PROCEDURE level Pseudocode (Basic + English)
At the LOGIC level Decision Tables
Generally accepted best practice is top down design
Programming is often done bottom up (small components first)
Imagine component X uses component Y. With bottom up coding, component Y is already written and tested before component X is coded.
Each component has a specification - its output for each possible input. Can then build a test harness that tests the component thoroughly.
You should always test each component before running the complete program. For each component of your design write down a set of test data and the outputs you expect choose data that is
As programs age, the number of errors introduced (regressions) per error corrected, tends on average to 1. Established programs therefore have automated regression testing.
Sizable programs have dozens, even hundreds, of error messages. If the code is clean these will be located in one place (a routine, or table). If the code is messy, the messages will be scattered everywhere. Consider the problem of, say producing a list of messages for the reference manual, or changing the software to log all errors to a file translating the messages to French or German (or both). This is just one example of where clean coding now saves time later.
or
For n = 1 To 5
MsgBox "hello world"
Next y
To solve a run-time or logical error, you must first find it:
Telephone Equipment Database
Bell System Technical Journal Nov 82, 61(9), 2529-2554
Special purpose database equipment inventory fault recording scheduling and logging repair and maintenance. Old system crashed several times per week. Some bugs take months to find and correct. System is redesigned
Development Maintenance
Original 250 person yrs 50 people
50 * 5
New 90 person yrs 5 people
30 * 2
Lockheed apparently sent the drawings on microfilm using carrier pigeons! See the book Programming Pearls.
You should familiarise yourself with the following terms: optical character recognition, pattern recognition, neural network, syntax, semantics, speech synthesis, expert system, knowledge base, robotics, Turing test.
What is Intelligence?
A problem for anthropologists is to define what distinguishes mankind from other animals. Each time someone proposes a definition, someone finds a counter-example in the animal kingdom. For example, use of tools (chimpanzees, otters), language (bees, whales, dolphins), construction (beavers).
For now we define artificial intelligence as the attempt to write programs that perform as well, or better than, humans at certain tasks.
Turing and the Turing Test
In 1950, Alan Turing, already a famous computer scientist (designed a mathematical computer before the war, designed and programmed the Colussus for code-breaking during the war), wrote a paper on Computing Machinery and Intelligence. In this paper he proposed a concrete test for artificial intelligence, called the Turing Test, and predicted that in 50 years time machines would be able to pass the test.
In the Turing Test, the judge sits down and types at a computer terminal.
The terminal sends their words to another person, or perhaps a computer, that replies. The reply is displayed on the judge's terminal. In this way the judge has a conversation with what might be another person, or a computer program. At the end of a specified time period, say 15 minutes, the judge has to guess whether they were talking to a computer program or another person.
A program that can successfully imitate a human being in this test is deemed to have passed the Turing Test and to be an artificial intelligence.
Recently computer scientists have started running competitions based on the Turing Test. So far, one program has fooled the judges in a limited form of the test where the conversation was restricted to the works of Shakespeare.
As an example of a restricted Turing Test, guess which of these 3 jokes was written by a computer
1) What do you give a hurt lemon?
Lemonade.
2) What kind of tree can you wear?
A fir coat.
3) What do you call an animal that runs around the forest making people yawn?
(Lemonade; a fir coat; a wild boar.)
Machine Translation
An early (1950s) attempt at an AI problem was automatic translation from Russian to English and vice versa. The program was abandoned after 15 years, still only 80% accurate in its translations. Some apocryphal stories involve its attempts at translating common English sayings into Russian and back into English. For example "the spirit is willing but the flesh is weak" came back as "the vodka is agreeable but the meat is rotten", and "out of sight, out of mind" was turned into "invisible idiot". (The latter is an accurate description of most computers, the ones that sit in our microwaves, TVs and car engines as embedded controllers.)
Nowadays there are translation programs with 95% accuracy; these can be used to help human translators, not to replace them.
Natural Language Programs
The original translation program failed because it could not understand what it was translating. There is a difference between grammar and meaning. Consider time flies like an arrow fruit flies like fruit hard hats must be worn on site dogs must be carried on the escalator Each sentence has the same structure as its pair, but its interpretation is quite different. On its own grammar (a set of rules defining the structure of a language) cannot guarantee the formation of meaningful sentences.
"Green ideas sleep furiously" is a classic example of a well-formed but meaningless sentence.
Conversational Software
ELIZA, written by Joseph Weizenbaum in 1966, is a famous conversational system that mimics a psychotherapist.
Men are all alike.
IN WHAT WAY
They're always bugging us about something or other.
CAN YOU THINK OF A SPECIFIC EXAMPLE
Well, my boyfriend made me come here.
YOUR BOYFRIEND MADE YOU COME HERE
He says I'm depressed much of the time.
I'M SORRY TO HEAR YOU ARE DEPRESSED
It's true. I am unhappy.
DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY
I need some help. That much seems certain.
WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP
Perhaps I could learn to get along with my family.
TELL ME MORE ABOUT YOUR FAMILY
My mother takes care of me.
WHO ELSE IN YOUR FAMILY TAKES CARE OF YOU
My father.
YOUR FATHER
You are like my father in some ways.
WHAT RESEMBLANCE DO YOU SEE
RACTER, by William Chamberlain and Thomas Etter in 1980, is manic conversationalist who published a book of poems
Bill sings to Sarah, Sarah sings to Bill.
Perhaps they will do other dangerous things
together. They may eat lamb or stroke each
other. They may chant of their difficulties
and their happiness. They have love, but
they also have typewriters. That is interesting.
Here is a conversation between RACTER and ELIZA (with a human intermediary typing output from one program into the other)
HELLO. PLEASE STATE YOUR PROBLEM
Excellent! Excuse me a minute while I attend to some business. I'll be right back.
WHY DO YOU NEED TO TELL ME EXCUSE YOU WHILE YOU ATTEND TO SOME BUSINESS
Is it better to need or to despise? Why is it that I need to tell you to excuse myself to attend some business? Because electrons are brave. Braveness is nice don't you think? And the needers all insist on it. Do you imagine that I am a Communist? Sadly there does not seem to be a meeting of minds here.
A more serious conversational program was SHRDLU written by Terry Winograd in 1972. This simulated a robot arm and some blocks resting on a table. It could follow simple instructions and answer questions about the state of the blocks, for example
Will you please stack up both of the red blocks and either a green cube or a pyramid?
OK
Which cube is sitting on the table?
THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID
Is there a large block behind a pyramid?
YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN
CUBE, AND THE BLUE ONE
Expert Systems
In order to understand language you have to understand the real world and the rules whereby the world works.
An early and successful example of a rule-based system is Mycin, written by Edward Shortliffe in 1976.
A typical rule in Mycin is
IF the infection is primary-bacteremia, and the site of the culture is one of the sterile sites, and the suspected portal of entry of the infection is the gastrointestinal tract
THEN there is suggestive evidence (0.7) that the identity of the organism is bacteriodes.
Diagnostic systems such as this have proved that, in restricted areas, they are at least as effective as human experts. The trouble is, of course, that for many problems people need a generalist, as the actual problem may be rather different than that suggested by their symptoms.
A massive on-going research program is attempting to program a computer with all the real-world knowledge of a five year old; computer learning is an unsolved problem, so the idea is basically to type in an entire encyclopaedia's worth of knowledge. At the end of each day the computer program mulls over what it has been told to check its understanding. One morning it asked its creator "is it true that all human beings are famous?" All the people it had been *told* about were famous, so this was a reasonable conjecture, unfortunately a false one.
Against AI
Howard Dreyfus, in the States, and Swinnerton-Dyer, in the UK, both wrote convincingly against the large sums of money spent on AI research. As they saw it, there was more useful research to fund, and there were real problems in AI that might never be solved. As you can imagine, these arguments became heated and bitter.
Machine Chess
An early pronouncement of Dreyfus' was that there would never be a chess program capable of beating even a 10 year old child. In 1966 MACHACK, written by Richard Greenblatt at MIT, played Dreyfus and beat him. The theory of chess playing is based on work by mathematicians John von Neumann, Claude Shannon and Alan Turing. Recently, thanks to faster computers, chess programs have been able to play at the level of international grand masters (though not beat them). Note however that these programs essentially work by brute force searching through large numbers of possible sequences of moves. They have no facility for explaining why they make the moves they do.
Robotics
An area where there has been limited success is in the area of robotics. To build a freely moving robot would require the computer vision to be solved. But fixed robots are widely used in production lines, for example manufacturing cars. They can perform simple repetitive tasks more reliably and people, and without needing to take breaks. Restricted computer vision systems scan the output of product lines for defects such as flaws in glass bottles. This however is hardly intelligence.
An early robot built at MIT could catch a ping pong ball thrown at it. The next stage was to give it a bat so that it could hit the ball back at the thrower. Sadly the lab director, Marvin Minsky, had an extremely bald and shiny head, and one day was nearly brained by the robot. The researchers were not allowed to continue with the experiment, so we will never know if they could have made their robot actually play table-tennis!
Pattern Recognition
Many problems in AI require the recognition of patterns. Computer vision, handwriting recognition, printed character recognition, fact recognition, and speech recognition all fall into this category. In this area of AI two approaches have been tried, the traditional rule-based one, symbolic AI, and an approach based more directly on the anatomy of the brain, sub-symbolic or neural AI.
Artificial neural networks mimic the structure of the brain and can be programmed, without need for computer language, simply by altering connections or strengths of connections. A significant advance here is the algorithm for doing this automatically on the basis of a training set. There are dangers inherent in automatic programming however. A military project apparently trained a neural network to recognise camouflaged tanks in photographs of woodland. Unfortunately it turned out that all the pictures with tanks in were taken in sunny weather so what they had actually created was a neural network for recognising photographs of sunny woods!
BTW the joke about the fir coat was written by a computer.
BC Papyrus It was tiresome recording information on stone!
BC Hindu-Arabic Introduced a digit for Numbers zero
BC Abacus Aid to calculation
9th Al-Khowarizmi Invented (or explained) long century multiplication
etc. Gave his AD name to the word algorithm.
1614 Logarithms Simplified multiplication and division
1615 Napier's Bones A tool for multiplication
1620 The Slide Rule A tool for multiplication and division
1642 Pascal's mechanical adding machine (could also subtract)
1694 Leibniz's Add, subtract, multiply stepped divide and square
root reckoner
1802 Jacquard's Punched cards to store Loom information/instructions
1822 Babbage's Calculation of tables Difference Engine
1834 Babbage's A mechanical computer Analytic with "mill"
(CPU) Engine store and I/O, was never completed
1890 Hollerith's Collated information on Tabulating punched cards
for the Machine US census
1906 Thermionic First electronic Valve switching circuit
1936 Turing Mathematical model of Machine a computer
1936 Z1 Relay-based Zuse calculator
1940 ABC Atanasoff-Berry Iowa Computer (prototype)
1941 Z3 Relay-based computer Zuse punched card program
1943 Colossus Used by Alan Turing to Bletchley Park crack the
ENIGMA CODE Kept secret for 30 yrs
1943 Harvard Mark 1 Relay-based computer Aiken paper tape program
1945 ENIAC 18000 vacuum tubes, 30 tons, 174KWatts programmed
by rewiring ( Eckert and Mauchly)
1946 The von Neumann report introduces the stored program concept
1948 Manchester Stored program Mark 1 computer (prototype)
1948 Transistor available in late 1950's Shockley, Brattain and
Bardeen
1949 EDVAC First functional stored program computer Cambridge
512 35-bit words ( M V Wilkes )
1949 Core Memory First solid state memory ( Jay Forrester )
1951 UNIVAC Mark 1 First commercially available computer (0.25
M$)
1954 Lyons LEO Payroll computer
1955 IBM 650 First transistor based computer
1958 The Chip First integrated circuit (Kilby and Noyce)
1960 The Laser
1960 PDP 1 First minicomputer DEC 50 sold
1964 IBM 360 Most successful mainframe ever
1970 PDP 11 Most successful DEC minicomputer ever
1971 1 Kbit chip First integrated circuit memory
1971 Intel 4004 First microprocessor (4-bit only)
1974 CRAY 1 First supercomputer
1974 IBM 370 Added virtual memory to IBM 360
1975 Intel 8080 Successful 8-bit microprocessor
1975 MITS Altair Home computer kit First microcomputer
1977 Apple II Popular home computer
1978 Intel 8086 Successful 16-bit microprocessor
1979 Motorola First 16/32-bit 68000 microprocessor
1980 64 Kbit chip Improved IC memory
1982 IBM PC Most successful microcomputer ever
1984 Intel 80286 An improved 8086
1984 Apple First WIMP-based Macintosh microcomputer
1985 IBM RT-PC First RISC-based workstation
1986 1 Mbit chip Improved IC memory
1986 Atari 1040ST Home computer with 1 MByte Ram for under $1000
1987 Sun Most successful Sparcstation workstation ever
1988 Acorn 32-bit home computer Archimedes for under 1000 pounds
1992 MIPS First 64/32-bit R4000 microprocessor
1993 Intel Pentium An improved 80x86 (x = 1,2,3 or 4)
1993 16 Mbit chip Improved IC memory
1993 Apple Newton A handheld computer Personal with hand-writing
Digital recognition Assistant
1994 Psion 3a 1st successful PDA.
1957 FORTRAN Formula translator. First compiled high-level language.
(Backus Cocke )
1959 COBOL Common Business Oriented Language ( Hopper/DoD)
1960 LISP List-processing language for AI (McCarthy )
1965 BASIC Beginner's All-purpose Symbolic Instruction Code (Kemeny
Kurtz)
1970 PASCAL A teaching language named after Pascal (Wirth)
1972 C An operating systems language from AT&T (Ritchie)
1979 ADA A secure language named after Ada Lovelace who was Babbage's
programmer (DoD)
1980 C++ An object-oriented superset of C (Stroustrop)
1992 Visual Basic BASIC with a GUI front end (Microsoft)
Early application software on mainframes was written by programmers for programmers. Examples are the Runoff text-processing system, which had its own macro programming language, and the SPSS statistical package, which was based on FORTRAN.
With the advent of the microcomputer, it became possible to make these programs more interactive, and necessary to make them easy to use. Mass computing had begun!
1956 Logic Theorist First AI program (Newell, Shaw and Simon,
RAND Corp)
1957 First tune (Daisy) played by a computer at Bell Labs
1962 Spacewar First videogame (PDP 1) Steve Russell at MIT
1965 Ed First (full) screen (text) editor from MIT
1965 Dendral First expert system in mass spectroscopy by Jo Lederburg
at Stanford
1968 Collosal Cave A massive adventure game by Don Woods at Stanford
1973 GUI Xerox PARC invent the GUI
1974 Pong First arcade game (Atari)
1975 Altair BASIC First commercial ($150) microcomputer software
(Paul Allen and Bill Gates)
1975 Tiny BASIC First shareware ($5) (Tom Pittman)
1979 Visicalc First spreadsheet package (Bricklin & Frankston)
1980 Easy Writer Apple II wordprocessor (John Draper)
1980 dBASE II First successful microcomputer-based database package
(C Wayne Ratcliff )
1980 Mystery House First microcomputer adventure game (with pictures)
(Roberta and Ken Williams)
1981 Atari v Sierra Copyright case over On-Line Jawbreaker, a
copy of the PACMAN arcade game
1983 Lotus 123 Most successful spreadsheet ever (Sachs & Kapor)
1965 CTSS Experimental operating Multics systems
1965 OS/360 First big operating system, inspired The Mythical
Man Month
1971 UNIX Multitasking O/S for any computer (portable) (Thompson
& Ritchie)
1973 CP/M Control Program for Microprocessors (Kildall )
1982 PC DOS Operating system for MS DOS the IBM PC
1984 MAC OS First successful WIMP- based operating system
1990 Windows 3.0 Most successful WIMP- based environment on the
PC (3rd time lucky!)
1995 Windows 95 - almost an operating system?
You should familiarise yourself with the following terms: security, backup, integrity, data protection act, intellectual property, software piracy, data corruption, data validation, checksum, parity check, data verification, computer virus, encryption, computer monitoring, teleworking.
Professional bodies in computing include the British Computer Society (BCS), Institute of Electrical Engineers (IEE), Association of Computing Machinery (ACM), and the Institute of Electrical and Electronic Engineers (IEEE). These are responsible for maintaining standards of professional conduct and promoting technical awareness.
Computers pose some familiar problems (such as getting them insured against theft) and some new ones, such as Data security: protecting data against damage, either accidental (disk failure, power failure, physical damage) or malicious (hacking, virus worm or logic bomb, physical damage).
Privacy: collecting only appropriate data about individuals and then allowing access to that data only by appropriate users. Data that is transmitted between computers may need to be encrypted to ensure its confidentiality.
Integrity: ensuring that data stored on computers is up-to-date and correct, properly audited (including keeping track of who entered data, and when), and allowing individuals to access to check their own records.
These concerns are addressed in the Data Protection Act, which has created a central register of all computerised records.
Other issues in computing are:
To explore some of these issues, you can play the following game. This involves you taking on certain roles and discussing the pros and cons of a University replacing lectures with self-paced multimedia learning. The roles are Head of Department, educational adviser, new lecturer, experienced lecturer, teenage student and mature student. With only 5 in the group, merge the lecturer roles, with only 4 merge the student roles also. With 7 in the group, introduce a new student role, and with 8 introduce a new staff role. As much as possible, choose a role that you have some sympathy with.
The Head of Department has convened this meeting of the consultative committee to raise the possibility of introducing computer based multimedia teaching as a replacement to certain of its lecture courses. S/he wants to assess the feelings of staff and students about this possibility. S/he has invited an adviser from the University's School of Educational Technology to answer any educational or technical questions that may arise. At the end of the meeting the HoD will state whether or s/he intends to pursue the initiative further.
The other people at the meeting have specific points to raise as listed below. (Some of these points are answers to questions one of the other participant has been primed to raise; wait until the moment seems right, or there is a lull in the discussion, before making them.) In addition you will probably be able to think of other topics that are worth considering.
The Head of Department should take the following discussion points, tear them up, and hand them out to the rest of the group. Have fun!
Educational Adviser
1. With increasing variety of student backgrounds (never, never, never say varying ability) self-paced learning is increasingly attractive.
2. We must also consider the decreasing unit of resource; about 5% less money per student per year in real terms.
3. Some material is copyright or proprietary and under the University's site license may only be used on site.
4. The software is able to administer tests, record the results, and generally monitor student progress.
5. All sensitive information is password protected.
6.
___________________________________________________________________________
7.
___________________________________________________________________________
Mature Student
1. Will this innovation be used as an excuse to lay off staff?
2. Will there be enough computers?
3. Will I be able to work from home? I commute in to the University, and with young children it's not always convenient coming in.
4. Is the available multimedia educational software any good?
5. I don't really like using computers anyway.
6.
___________________________________________________________________________
7.
___________________________________________________________________________
Teenage Student
1. It sounds more fun than boring old lectures.
2. I haven't got a computer at home and can't afford one.
3. Is the University intending to charge students for this? That doesn't sound right.
4. Will it be safe to store marks on the computer? Isn't there a danger of someone hacking in and changing their score?
5. Will we have access out of hours? It's not always easy getting hold of a computer during the day.
6.
___________________________________________________________________________
7.
___________________________________________________________________________
New Lecturer
1. This sounds good. If I can spend less time teaching I will be able to get more research done.
2. This change is inevitable; we should move with the times. If we don't someone else will and make us look old-fashioned.
3. We will be able to take any public domain or University-owned material, put it on a CD-ROM and sell it to students for 50 pounds.
4. We could develop our own software and make money selling it to other universities.
5. Students will be able to send me email anytime they don't understand something.
6.
___________________________________________________________________________
7.
___________________________________________________________________________
Experienced Lecturer
1. Will it really be cheaper than the way we teach at the moment?
2. Will it stop students reading books? That doesn't sound like a good idea.
3. How will we test student's progress? I don't enjoy marking, but at least I know how well the class is doing.
4. I can never remember my password, so I always have to write it down.
5. How will the students be able to interact with the staff?
6.
___________________________________________________________________________
7.
___________________________________________________________________________
The course text contains very useful tips for making the most of common computer applications. I have summarised these tips below. It is well worth reading them in full; they stand out in the book because they have been set against a light blue background.
If you're already a touch typist, your typing skills will help you become proficient at word processing quickly. (If you're not a touch typist, why not try a typing tutorial program?) Unfortunately, a few typing skills are counterproductive on a modern word processor. Here's a short list of new word processing habits to replace outmoded typing habits:
Many first-time users of WYSIWYG word processors and desktop publishing systems become intoxicated with the power at their fingertips. It's easy to get carried away with all those fonts, styles, and sizes, and create a document that makes supermarket tabloids look tasteful. While there's no substitute for a good education in the principles of design, it's easy to avoid tacky looking documents if you follow a few simple guidelines:
Spreadsheet errors are easy to make and easy to overlook. When creating a worksheet, you can minimize errors by following a few basic guidelines.
A chart can be a powerful communication tool if it's designed intelligently. If it's not the message may miss the mark. Here are some guidelines for creating charts that are easy to read and understand.
Whether you're creating an address file with a simple file manager or retrieving data from a full-blown relational database management system, you can save yourself a great deal of time and grief if you follow a few commonsense rules.
Whether you log into a BBS, an information utility, or the Internet, you're using a relatively new communication medium with new rules.
Here are some suggestions for successful on-line communication:
Modern graphics software isn't just for professional artists. Just about anybody can use it to create pictures and presentations. Here are some guidelines to help you make the most of the computer as a graphic tool:
Whether you're creating a simple HyperCard stack or a full-blown multimedia extravaganza, your finished product will communicate more effectively if you follow a few simple guidelines:
Even if you're not building a software system for MI5 or the CID, computer security is important. Viruses, disk crashes, logic bombs, and miscellaneous disasters can destroy your work, your peace of mind, and possibly your system. Fortunately you can protect your computer, your software and your data from most hazards: