Федеральное агентство по образованию Российской Федерации Томский политехнический университет И.Л. Пичугова ПРОФЕССИОНАЛЬНЫЙ АНГЛИЙСКИЙ ЯЗЫК ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ Учебное пособие Издательство ТПУ Томск 2006 ББК Ш 143.21-923.81 УДК 802.0:681.324 (07) П-364 П-364 Пичугова И.Л. Проектирование информационных систем. Учебное пособие по профессиональному английскому языку. – Томск: Изд-во ТПУ, 2006. – 144 с. ISBN Учебное пособие «Проектирование информационных систем» состоит из 12 разделов. В каждый раздел включены аутентичные тексты, содержащие интересную и познавательную информацию о программировании, языках программирования, базах данных, системах управления базами данных, интерфейсах и т.д. Каждый раздел содержит ряд упражнений, нацеленных на усвоение научно-технической лексики. Также в пособии использованы материалы для аудирования. Пособие ориентированно как на занятия в аудитории, так и на самостоятельную работу. Учебное пособие подготовлено на кафедре английского языка №1 совместно с кафедрой вычислительной техники ТПУ и предназначено для студентов старших курсов факультета автоматики и вычислительной техники. Учебное пособие рассмотрено и одобрено на заседании Научнометодического Совета кафедры АЯ №1, протокол №7 от 15.11.2006г. УДК 802.0:681.324 (07) Рекомендовано к печати Редакционно-издательским советом Томского политехнического университета Рецензенты Кандидат филологических наук, доцент кафедры английской филологии ТГУ И.А. Галкина Кандидат педагогических наук, старший преподаватель кафедры английской филологии ТГУ С.В. Кузнецова Кандидат технических наук, доцент кафедры вычислительной техники ТПУ Е.А. Мирошниченко ISBN © Томский политехнический университет, 2006 © Оформление. Изд-во ТПУ, 2006 1 Contents Map of the book 3 Unit 1. Computer Programming 5 Unit 2. Program Design 12 Unit 3. Programming Languages 19 Unit 4. Comparing Programming Languages 26 Unit 5. Structured Programming 34 Unit 6. Object Oriented Programming 41 Unit 7. Databases 50 Unit 8. Database Management Systems 57 Unit 9. Graphical User Interface 65 Unit 10. User Interface Guidelines 73 Unit 11. Web Page Design 83 Unit 12. Extensible Markup Language 93 Pairwork Student A 101 Pairwork Student B 103 Visuals for Speaking 105 Progress Check 1 (Units 1 - 6) 111 Progress Check 2 (Units 7 - 12) 116 Listening Script 121 Glossary 132 Bibliography 143 2 Map of the Book Unit 1. Title Computer programming 2. Program design 3. Programming languages 4. Comparing programming languages 5. Structured programming 6. Object oriented programming 7. Databases 8. Database management systems 9. Graphical user interface 10. User interface guidelines 11. Web page design 12. Extensible Markup Language Vocabulary Program, algorithm, process, operation, connector, input, output, decision, flowchart, system/syntax/logic errors Flowchart, documentation, testing, debugging, program, machine code, programming tools, compilation, coding Source code, object module, compiler, instructions, machine code, load module, linkage editor, algorithm Library, compilation speed, portability, development time, implementation, popularity, safety, runtime Sequential execution, loop, spaghetti code, control structure, sequence, selection, iteration, function Inheritance, class, entity, procedure, property, value, intelligence encapsulation, library, property, attribute Database, file, record, field, data model, hierarchical, network and relational approaches, sort, update Logical record, field, physical record, internal schema, external schema, conceptual schema, query Pointer, desktop, windows, icon, menus, system tray, buttons, commands, tooltips, GUI, multimodal interface, recognition, hover, select Appearance, density of controls, capabilities, errorfree navigation, intuitive, application, feedback Metalanguage, character, markup, XML processor, parse, customized, authoring environment, entity, HTML Algorithm, technology, standard, designer, syntax, procedure, namespace mechanism, tool, support 3 Grammar General and special questions Modal verbs Compound nouns Relative clauses with a participle The Infinitive of purpose Constructions: verb + object + infinitive, verb + object + to-infinitive with such verbs as allow, permit, let, enable, help Phrasal verbs The Passive The Gerund Map of the Book Listening Matching flowchart symbols and spoken output; listening for detail Writing a dictation Reading Scanning; reading and note-taking Speaking Talking about computer programming, different types of errors Writing Drawing a flowchart Scanning Talking about computer program design, its main steps Describing a process; Translating sentences Listening for specific Reading for main information; noting ideas specific information Exchanging options and information about programming languages Reading for specific information Talking about the main criteria for comparing programming languages Writing an essay comparing programming and natural languages Reading for specific information Talking about the main rules of structured programming Translating the text about algorithm development and pseudocode Listening for specific Reading for specific information; noting information specific information Talking about basic features of object oriented programming; developing a software package Reading for main Talking about databases, ideas and for specific structuring data model information Translating the text about object oriented programming Noting specific information Writing an argumentative essay Listening for specific Reading for main Talking about database information ideas and for specific management systems; information describing a process Listening for specific Reading diagrams; information, noting reading for main specific information ideas and for specific information Reading for specific information Talking about common features of graphical user interface; providing explanation of different actions Talking about the basic principles to design a user interface Writing an argumentative essay; translating the text about database management systems Writing instructions Completing a table with relevant information; preparing a leaflet; writing a summary Listening for specific Reading for main Talking about top 10 web information, noting ideas and for specific page annoyances; specific information information basic concepts of XML Reading for main ideas Exchanging information 4 Translating the text about XML Unit 1. Computer Programming Warm-up Task 1. What do you know about programming? Answer the Internet Quiz. 1. 2. 3. 4. 5. 6. Programmers use algorithms when writing programs. Programmers write programs using the numbers 1 and 0. We can only find computer programs in computers. Any given program, if running, is obsolete. Any given program costs more, and takes longer. The most harmful error of any program will not be discovered until the program has been in production for at least six months. 7. Profanity is the one language that all programmers know the syntax of. 8. There is always one more bug. 9. Real programmers never work from 9 to 5. If any real programmer is around at 9 a.m., it’s because they were up all night. 10. It is easier to change the specification to fit the program than vice versa. 5 T/F T/F T/F T/F T/F T/F T/F T/F T/F T/F 11. Any program will expand and fill all of available memory – plus one byte. 12. Disk errors occur only after you've done several hours of work without making a backup. T/F T/F Listening Task 2. Programmers sometimes use flowcharts when planning a program. Listen to the recording and identify these symbols used in flowcharts. One symbol is not mentioned. a) ____________ b) ____________ c) ____________ d) ____________ e) ____________ f) ____________ Task 3. Listen again to the recording and write below a typical example of an instruction often found there in flowcharts. One symbol has no words. a) b) c) d) e) _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ Reading Task 4. Look at the algorithmic flowchart on the next page and answer the questions. 1. 2. 3. 4. Which computer commands does it show? How many decisions does the computer make? After the user clicks Save, how many times does the user input data? How many ways of developing the events are possible here? Now describe this algorithmic flowchart. 6 User clicks Save. The program reads the file name, format and location. YES Is there an existing file with the same file name, format and location? Save file. END NO Program shows the Save As dialog box. User enters the file name, format and location. User clicks on Save in the Save As dialog box. Program reads the file name, format and location. YES Is there an existing file with the same file name, format and location? NO Save file. END 7 A dialog box appears with the message, ‘The file already exists. Do you want to replace it?’ Task 5. Read the text about computer programming. Write the number of the paragraph that gives you the information. a. b. c. d. e. f. g. h. i. why high-level languages are easy to learn a description of machine language the greatest problem for computer programmers the names of three high-level computer languages a description of an algorithm different uses of computers in our lives a description of a computer program what computers do with code a description of the binary system _____ _____ _____ _____ _____ _____ _____ _____ _____ 1. The diagram on the right shows part of a simple algorithmic flow chart for the Save command in a computer program. An algorithm is a set of logical rules that we use to solve a problem. Computer programmers often use algorithms to plan their programs, but the only language a computer understands without translation is machine language. This uses the binary system of 1 and 0, which matches the electrical positions ‘on’ and ‘off’. We can also show these numbers in English by Yes/No or True/False. 2. Machine language is a low-level language and is very difficult to write. Over the years, computer scientists have developed many high-level languages, such as BASIC, C++ and Java. These languages use a computer code that is similar to English, which makes them easier to learn. A computer program is just a set of coded instructions. A computer translates the code into machine language to complete a specific task. A computer receives input, processes data and produces results, or output, according to the program code. 3. We use computers in many parts of our lives, and not just in schools or for the Internet. There are computers in all kinds of electrical devices, from mobile phones to washing machines. We can find them in banks, supermarkets and cars. When programmers write programs, they have to plan carefully for every possible kind of error a computer user can input into the computer. It is planning for the random behaviour of humans that makes programming so much fun. 8 Speaking Task. 6. Work in groups and discuss the following questions. 1. 2. 3. Have you ever had any problems with the computer? What kind of errors do you make with computers? How do you behave when things go wrong with a computer? Listening Task 7. Listen to the interview with Colin who is a programmer and answer these questions. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Is programming stressful? What does Colin do as a break from programming? Where do the team do much of the design work? How many people are there in the team? What do they do? How long did Dante take to write? Why was it easy to split? What languages does he mention? How does he keep up with developments in his field? Why does he hate to go home sometimes? 9 Reading Task 8. Work in groups of three: A, B and C. Read your text below and complete this table. Text A Text B Text C Type of error Definition Example Ways to avoid or deal with this kind of error A. System errors affect the computer or its peripherals. For example, you might have written a program which needs access to a printer. If there is no printer present when you run the program the computer will produce a system error message. Sometimes a system error makes the computer stop working altogether and you will have to restart the computer. A sensible way of avoiding system errors is to write code to check that peripherals are present before any data is sent to it. Then the computer would warn you by a simple message on the screen, like ‘printer is not ready or available’. B. Syntax errors are mistakes in the programming language (like typing PRNIT instead of PRINT). Syntax errors cause the program to fail. Some translator programs won’t accept any line that has syntax errors. Some only report a syntax error when they run the program. Some languages also contain special commands such as debug, which will report structural errors in a program. The programming manual for the particular language you’re using will give details of what each error message means. C. Logic errors are much more difficult to detect than syntax errors. This is because a program containing logic errors will run, but it won’t work 10 properly. For example, you might write a program to clear the screen and then print ‘hello’. Here is a code for this: 10// 20 30 40 Message PRINT ‘Hello’ CLS END The code has a logic error in it, but the syntax is right so it will run. You can get rid of logic errors from simple programs by ‘hand-testing’ them or doing a ‘dry run’ which means working through each line of the program on paper to make sure it does what you want it to do. You should do this long before you type in the code. Task 9. Now share information orally about your text with others in your group to complete the table for each of the errors described. Writing Task 10. Draw a flowchart like one in Task 4 for one of these activities. Follow these steps: • • • • • Choose a simple procedure from the ones in the box below (or a simple one of your own). Break the procedure down into all the steps that you have to follow. Think about where the process starts and ends, and the input from you and from the outside. When you make a decision, think of when you say ‘yes’ and when you say ‘no’, and what happens next. Write exactly what happens at each stage. Draw the flowchart, putting your text into the different shapes in Task 2. Show your flowchart to another student. Does he/she agree with your steps? Making a cup of tea or coffee Making a telephone call Sending a text message Answering the door Planning a holiday Choosing a new computer Preparing for an important exam Playing a cassette or a CD 11 Unit 2. Program Design Warm-up Task 1. In pairs, try to think of an answer for the question: What is programming? Decide which of the definitions below is the most appropriate? Give a reason for your choice. 1. 2. 3. 4. The process of writing and testing programs for computers. The process by which a set of instructions is produced for a computer to make it perform a specified task. The task can be anything from the solution to a mathematical problem to the production of a graphics package. The act of writing a computer program. It is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. Programming has elements of art, science, mathematics, and engineering. Reading Task 2. Put these five stages of programming in the correct sequence. a) b) c) d) e) Design a solution Code the program Document and maintain the program Clarify the problem Test the program 1. _____ 2. _____ 3. _____ 4. _____ 5. _____ Task 3. To which stage does each of these steps belong? 1. 2. 3. 4. 5. Clarify objectives and users Debug the program Write programmer documentation Do a structured walkthrough Select the appropriate programming language 12 _____ _____ _____ _____ _____ Task 4. Read the text and compare your answers for Tasks 2 and 3. Steps in Computer Program Development The steps in the development of each of the computer programs that make up the computer program component of a system are: 1. define the function of the program; 2. plan the logic of the program; 3. code the program; 4. test and debug the program; 5. complete the documentation. Although the programmer is responsible for writing the computer program, the system analyst must communicate the computer program requirements to the programmer. The function of each program was defined for the programmer when functions were allocated during system design. Detailed data flow diagrams (DFD) are prepared for each program from the decomposed DFDs created during the design phase. These DFDs define the function of each program. In program planning, the logic to be used to solve the problem is developed. Algorithms, computer program logic flowcharts, and structure charts are useful tools for program planning. Algorithms are sets of rules or instructions used to accomplish tasks. They may be stated as formulas, decision tables, or narratives. The next step, writing, or coding, a program, is the actual writing of computer instructions. These instructions will be translated to machine code and followed by the computer; they should follow the steps of the program logic plan. Several programming languages, particularly COBOL, PL/I, and RPG, are commonly used to solve business problems. In addition to these traditional languages, organizations using database management systems may choose to generate programs using the query language of the DBMS. These query languages are part of a package of programming tools known as fourth-generation languages. Each language has its advantages and disadvantages. Most computer installations have a standard language used by their programmers. Programmers usually are not given a choice of language unless some special circumstances exist. Testing and debugging a program involve: 1. translating the coded program into machine language, a process called 13 compilation; 2. testing the translated program with sample data and checking the result. If the results of testing are not correct, the program is said to have "bugs". Debugging is the process of correcting computer programs to obtain correct results. The last step is to complete the documentation for the program. The documentation must include a statement of the purpose of the program, a description of the solution logic, a listing of the program instructions, and sample outputs from the completed programs. Information provided to the programmer by the analyst, such as descriptions of program inputs, outputs, and files, should be included. Instructions to operators explaining how the program is to be used must be written before the program documentation is completed. Language work General and Special Questions Word order in general questions: auxiliary verb + subject + verb e.g. Have you ever used a computer? Word order in special questions is as following: question word + auxiliary verb + subject + verb e.g. How long have you been restoring the data? If there is more than one auxiliary verb, we put only the first auxiliary in front of the subject: e.g. How long has this program been used? Task 5. There are answers to questions about the text. Write the questions. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. There are five main steps in the computer program development. For writing the computer program. It is developed in program planning. As formulas, decision tables, or narratives. Yes, it is the actual writing of computer instructions. No, programmers usually are not given a choice of languages. It is called compilation. When the results of testing are not correct. To obtain correct results. They must be written before the program documentation is complete. 14 Task 6. Choose the correct word to complete each sentence. You may have to change some words slightly. 1. compilation, compiler, compile, compiled a) It took weeks __________ the new customer database. b) A source program cannot be directly processed by the computer until it has been __________. c) If the errors are removed and the program re-run, the process of __________ starts all over again, but this time the __________ program will be executed. d) A computer needs its own __________ for the various high-level languages if it is expected to accept programs written in those languages. 2. program, programmer, programming, programmable a) The __________ CD-player allows the user to change the order tracks are played in. b) She __________ the VCR to come on at eight. c) Most computer __________ make a plan of the program before they write it. This plan is called a flowchart. d) It is unusual for a __________ to work correctly the first time it is tested. 3. bug, debug, debugger debugging a) The best compilers usually include an integrated __________ which detects syntax errors. b) New programs need __________ to make them work properly. c) Once you have written your program you have to test it with sample data to see if there are any __________ or errors. 4. instruction, instruct, instructed, instructor a) The next step is to design an algorithm, which is a stepby-step plan of __________ used to solve the problem. b) We have been __________ that a decision will not be made before the end of the week. c) Our maths __________ explained to us the principles of binary arithmetic. 15 Speaking Task 7. Say what has happened in the cartoon. What do you think this cartoon is about? Write a caption for the last picture. Translate each caption into English. Как было предложено организатором разработки Как было описано в техническом задании Как было спроектировано ведущим системным специалистом Как было реализовано программистами Как было внедрено ____________________ 16 Task 8. Work in pairs and discuss the following: Many would argue that computer’s actions are merely consequences of how it was programmed, and thus a computer cannot possess free will. In turn, a computer shouldn’t be held responsible for its actions. Is human’s mind a computer? Are humans programmed at birth? Are humans responsible for their actions? Writing Task 9. Look at the scheme below and describe activities and connections of the evolutionary development. Evolutionary development concurrent activities Initial version Specification Outline description Development Intermediate versions Validation Final version Discuss whether it is possible for engineers to test their own programs in an objective ways. Listening Task 10. You will hear Lucy Boyd, a software developer, explaining how a program is produced. Listen and write down what you hear. 17 Translation Task 11. Translate the following sentences into English. 1. Если вам удалось написать программу, в которой транслятор не обнаружил ошибок, обратитесь к системному программисту – он исправит ошибки в трансляторе. 2. В природе программирования лежит то, что нет соотношения между "размерами" самой ошибки и проблем, которые она влечет. 3. Я пишу все свои критические программы на ассемблере, а комедийные – на фортране. 4. Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения. 5. Машинная программа выполняет то, что вы приказали ей делать, а не то, что бы вы хотели, чтобы она делала. 6. Законы машинного программирования. a) Любая действующая программа устарела. b) Любая программа обходиться дороже и требует больше затрат времени, чем предполагалось. c) Если программа полностью отлажена, ее нужно будет скорректировать. d) Любая программа стремится занять всю доступную память. e) Ценность программы прямо пропорциональна весу ее "выдачи". f) Сложность программы растет до тех пор, пока не превысит способности программиста. 7. Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший жук разрушил бы цивилизацию. 8. Никогда не выявляйте в программе ошибки, если вы не знаете, что с ними делать дальше. 9. Создайте систему, которой сможет пользоваться даже глупец, и только глупец захочет ею пользоваться. 10. Большинство существующих программ создается исключительно для нужд компьютера – для того, чтобы работало нужное человеку меньшинство. 18 Unit 3. Programming Languages Warm-up Task 1. Read the saying below and mull it over in pairs. Alan Perlis once said: “A language that does not affect the way you think about programming is not worth knowing”. Task 2. Can you identify these programming languages? A. 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 REM Program to compute integer sum MAXINT% = 32767 TOTAL# = 0# PRINT “This program calculates the sum of all integers” PRINT “from 1 to whatever integer you specify.” PRINT “Enter any positive integer up to “MAXINT%”:”; INPUT NUMBER IF (NUMBER > 0) AND (NUMBER <= MAXINT) THEN GOTO 90 ELSE GOTO 150 FOR COUNT% = 1 TO NUMBER TOTAL# = TOTAL# + COUNT% NEXT COUNT% PRINT “The sum of all integers from 1 to ”NUMBER PRINT “is “TOTAL# GOTO 160 PRINT “This number is out of bounds!” END B. C. /*numbercount.c*/ #include <stdio.h> #define MAXINT 32767 Program Number Count (input, output); var count, number: integer; total: real; main () { int count, number; long int total; begin total :=0.0; write|n (‘This program calculates the sum of all integers’); write|n (‘from 1 to whatever integer you specify.’); write (‘Enter any positive integer up to ’,maxint,’:’); read|n (number); if (number > 0) and (number <=maxint) then begin for count = 1 to number do total := total + count; write|n (‘The sum of all integers from 1 to ‘,number); write|n (‘is ‘,total) end else writein (‘This number is out of bounds!’) end. total = 0; printf(“This program calculates the sum of all integers\n”); printf(“from 1 to whatever integer you specify.\n”); printf(“Enter any positive integer up to %d:”,MAXINT); scanf(“%d”,&number); if (number > 0 && number <= MAXINT) for (count = 1; count <=number; count++) total = total + count; printf(“The sum of all integers from 1 to %d\n”,number); printf(“is % d\n”,total); else printf(This number is out of bounds! \n”); } 19 Reading Task 3. Read the text and fill in the gaps using the list of words below. Programming languages Computers can deal with different kinds of problems if they are given the right 1) …… for what to do. Instructions are first written in one of the 2) ……, e.g. FORTRAN, COBOL, PASCAL, C++, Visual Basic, etc., depending on the type of problem to be solved. A program written in one of these languages is often called a 3) ……, and it cannot be directly processed by the computer until it has been compiled, which means interpreted into 4) ……. In some languages, an interpretable p-code binary is generated, rather than machine language. It is also possible for the 5) …… to write directly in machine code, but this is hardly ever done anymore: instead, when complete low-level control of the target computer is required, programmers resort to 6) ……, whose instructions are mnemonic one-to-one transriptions of the corresponding machine language instructions. Different programming languages support different styles of programming (called 7) ……), some of which are better suited for a particular task than others. They also require different levels of detail to be handled by the programmer when implementing algorithms, often resulting in a compromise between ease of use and performance. The program produced after the source program has been converted into machine code is referred to as an 8) …… or object module. This is done by a computer program called the 9) ……, which is unique for each computer. The compiler is a system program which may be written in any language, but the computer’s operating system is a true systems program which controls the central processing unit, the input, the output, and the secondary memory devices. Another systems program is the 10) ……, which fetches required systems routine and links them to the object module (the source program in machine code). The resulting program is then called the 11) ……, which is the program directly executable by the computer. Although systems programs are part of the software, they are usually provided by the 12) …… of the machine. 1. 2. programming paradigms assembly language 3. 4. 20 high-level languages source program 5. 6. 7. 8. linkage editor machine code object program load module 9. 10. 11. 12. programmer manufacturer instructions compiler Listening Task 4. You are going to hear a lecture about programming languages. Listen carefully and decide whether the following statements are true (T) or false (F) in relation to the information in the recording. 1. 2. All languages discussed are high level languages. A computer program is a sequence of instructions which are executed simultaneously. 3. One can hardly understand a machine code. 4. Assembly languages are very useful when one requires a high speed of command execution. 5. FORTRAN 77 was designed to write highly structured programs. 6. FORTRAN is quite suitable to be used in business environment. 7. Only the originator can make changes in a program written in COBOL. 8. COBOL instructions are of the same size as FORTRAN ones. 9. Originally the major application of BASIC was in education. 10. Manufacturers started using BASIC after the introduction of microcomputers. Task 5. Now listen again to the recording and complete the table below. Language Date of introduction Type FORTRAN Advantages 1. 2. 3. 1. 2. 1. 2. 3. 4. COBOL BASIC 21 Disadvantages 1. 2. 1. 2. 1. Speaking Task 6. Work in pairs, A and B. You each have information about some programming languages. Together decide what would be the most appropriate language to use for each of these situations. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. A schoolteacher wants his young pupils to learn some basic mathematics by controlling a simple robot. The owner of a small business wants to create a simple database program to keep track of his stock. A professional programmer wants his software to run on any type of computer system. An engineer wants to develop a program for calculating the stresses in a mechanical device. A student wants to create webpages for a personal website. A systems programmer wants to add some new modules to an operating system. A website designer wants to include simple animation in a site. A programmer working for the US army wants to create a program for controlling a new type of weapon. A finance company needs to process data from its branch offices on its mainframe computer. A website designer wants to enable the data on his website to be easily processed by a number of different programs. A student studying artificial intelligence wants to write some programs for a course project. A college lecturer wants his students to learn the principles of programming. A professional programmer wants to create and sell a program for use in language learning. A website designer wants to password-protect a section of a website. A computing student wants to write a general purpose program as a college project. Student A: Your languages are on page 101. Student B: Your languages are on page 103. 22 Language work Modal Verbs Modal verbs are followed by the infinitive without particle to. They add extra meaning to the main verb. The modal verbs are: can (could), may (might), must, should, ought to, need. The modal expressions to be+Infinitive and to have+Infinitive also belong here. Can Theoretical possibility: Programs written in any programming language can be translated into machine language. Permission: Can I use your computer for a while? Ability: Swarming robots can work together to perform searches. Could Possibility or ability in hypothetical situations: We could buy a DVD, if you had more money. Geneal ability in the past: Early computers could not operate at high speeds. Permission: Could I just interrupt a minute? May Factual possibility: Algorithms may be stated as formulas, decision tables, or narratives. Permission: May I use the fax now? In this case may is more formal than can. Might Weak possibility: The prices of CPUs might go down next time. Must Obligation: The system analyst must communicate the computer program requirements to the programmer. Prohibition: You must not open e-mail attachments from strangers. Logical necessity: This look wrong – there must be a mistake. We use cannot to express a negative conclusion. Should/ ought to There is hardly any difference between them but we say ought to do (with to). Advice: You should update your web site. Or: You ought to update your web site. Need Necessity: New programs need debugging to make them work properly. To be + Infinitive Arrangement, agreement or part of a plan: Instructions to operators explaining how the program is to be used must be written before the program documentation is complete. To have + Infinitive Obligation or necessity arising out of circumstances: Once you have written your program you have to test it with sample data to see if there are any bugs or errors. 23 Task 7. Tick the modal verbs that complete each of the sentences in this passage. One, two or all of them may be possible. There shouldn’t / might not / ought not (1) be a comma before the ‘who’ in this sentence, Kostas. Oh yes, you may well / might well / will well (2) say that writing English is not important for you. But you could / may / might (3) have to write a dissertation in English one day. Punctuation and spelling should / could / may (4) be quite a serious problem for you. But it can / should / could (5) always be possible for you to get full stops in the right place. And it can’t / shouldn’t / mustn’t (6) be that difficult to spell most short words more or less correctly. You may / must / might (7) not have realised how flexible English is. For example, you may / should / can (8) find ‘organisation’ spelt with an ‘s’ or ‘z’. It makes life easier, doesn’t it? Task 8. Complete the sentences using modal verbs. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Before you start to make a web site, you ….. decide how to organize the content. A source program …… be directly processed by the computer until it has been compiled. The documentation …… include a statement of the purpose of the program, a description of the solution logic, a listing of the program instructions, and sample outputs from the completed programs. …… I use your laptop? I need to print out this report. With a web page editor you …… create a web document easily. If I knew the Java language, I …… include some attractive banners on my web page. I …… to make a back-up copy. The logical structure of the data …… be different from the way it is physically represented on backing store media. No goto statements …… to be used in writing code. A graphical user interface saves a lot of time: you don't need to memorize commands in order to execute an application; you only …… to point and click so that its content appears on the screen. The instructions …… follow the steps of the program logic plan. Organizations using data base management systems …… choose to generate programs using the query language of the DBMS. Computer consultants …… specialize in too narrow a field. Programmers …… to know a range of up-to-date languages. 24 15. Before IBM set the standard for PCs, software houses …… write different versions of their programs for every make of computer. 16. When he was a schoolboy, Bill Gates …… write programs in BASIC. 17. Most website designers …… use HTML and XML. 18. You …… learn COBOL unless you want to work with business software. Speaking Task 9. Work in pairs and both look at the pictures on pages 105 and 106. 1. In this activity, Student A and Student B will each talk about different pictures showing a process of creating a computer program. • • Describe the scene in the picture fairly briefly, suggesting what problem might occur. Comment on the steps in computer program development, different types of errors and ways to avoid or deal with these kinds of errors. Student A should talk about picture A on page 105. Student B should talk about picture B on page 106. 2. When you have both finished speaking, you should comment on what your partner has said, saying if you agree or disagree. 25 Unit 4. Comparing Programming Languages Warm-up Task 1. Answer the following questions: 1. 2. 3. What types of programming languages do you know? How does one compare programming languages? What are the main criteria? Make a list. Reading Task 2. Before reading the text, match the terms with the correct definition or explanation. a. Debugging 1. b. Compilation 2. c. Portability 3. d. Platform 4. e. Support 5. f. Library 6. the ability to use hardware in different places or software on different types of computer a type of computer or program used as a standard for a particular computer system the rate of translating a high-level language into machine code a collection of subroutines and functions stored in one or more files, usually in compiled form, for linking with other programs. the process of correcting errors in a program or system the help offered to the user by a company who makes or sells a computer 26 Task 3. Read the text below to check your answers to Task 1 and 2. Comparing Programming Languages Technical factors • Application requirements: Languages tend to be suited to particular applications. For example, C is widely used for operating system development (UNIX, Linux, and Windows, to name a few), while Perl is useful for text processing, HTTP server CGI programs, and system administration work. • Platform requirements: The platform on which an application is to be executed may have a limited choice of language implementations available. • Development time: How quickly could the application be developed in a particular language? (The technical side of this question depends on how understandable the language is, and how easily an application's design can be coded in it; the political side of this question depends on the knowledge of programming staff, training available, or whether programmers with experience in the language can be hired.) • Portability: Execution platforms for programs tend to change over time (e.g., from DOS to Windows to Windows NT, just to trace the ''Wintel'' lineage). Is the language closely tied to a particular machine, or is the language clearly portable (e.g., Java's clear independence of any particular machine's quirks or implementation)? Political factors • Popularity of the language: Popularity, in terms of the size of the marketplace and number of programmers using a language, clearly affects the choice of a language. The choice of a well-known, popular language, such as C, or a lesser-used language, such as Ada, will influence hiring and/or training requirements. • Economic: Which language tends to be cheapest or most cost effective in previous, similar development efforts? Is the language wellsupported by commercial organizations or freeware development communities (i.e., will the language's compilers and development environment be available for the foreseeable future)? Language vs Compiler for the Language There are sometimes distinctions between a language and the compilers that implement the language. One compiler made by a given 27 vendor may add extra features to the language they implement that another vendor may not include. The quality of a language's compilers can also influence the decision. If a language's existing compilers do not produce correctly executing or highly-optimized machine code, the language may not be a good choice for a development effort. We also need to consider what new language features the compiler supports. For example, in C++, the compiler should support the latest additions to the Standard Template Library. Tool Support and Documentation Tool support tends to be a critical factor in a language choice. Development tools that help organize a project, quickly locate on-line documentation and examples, and debug programs are extremely useful in the coding and debugging stages of programs. Also, tools that generate code from high-level specifications (such as user interface development or lexical analyzer tools) and tools that verify code or find common mistakes are useful, in our experience. Editors that can parse and format the language syntax are useful as well. Good tools and documentation seem to be driven by popularity, e.g. Visual C++ has good tool support and documentation. Criteria for Comparing Programming Languages We have previously discussed many criteria important to comparing or evaluating general purpose programming languages. We will summarize them here: • Simplicity of language constructs, which relates to ease of programming • Readability, which relates to maintainability, an important factor as many programs greatly outlive their expected lifetimes (witness the Y2K software crisis) • How tuned a language's features are for a particular application (e.g., Perl relates well to text processing) • Compilation speed • Runtime efficiency, in terms of speed and machine resources • Library support • Debugging help • Language safety • Longevity of language and compiler tools • Portability across platforms and machine architectures The criteria are equally important because they affect the development cost and effort required over the lifetime of the program, and also affect the usefulness and quality of the developed program. 28 Our experience indicates that these criteria (or the subset which is applicable) also apply to other components that support program development, including object-oriented class libraries and designs for abstract data types. The use of appropriate, useful components external to the language, and the use of designs that result in higher quality, more generalized code improve readability, maintainability, and quality of the product while improving development speed. Task 4. Look back at the text to find out if the following statements are true (T) or false (F) according to the information in the text. 1. 2. 3. 4. 5. Each language should be suitable for a particular application. Perl relates well to operating system development. Execution platforms for programs are changing all the time. The more popular the language is the more often it is used. You can have problems if a compiler and a language were made by different vendors. 6. When choosing a compiler, it is important to know what new language features it supports. 7. It is not necessary for C++ to support the latest additions to the standard template library. 8. Tool support is the most crucial factor in a language choice. 9. Editors that can parse and format the language syntax are the most useful in our experience. 10. The criteria are fairly even since they affect the development cost and effort required over the lifetime of the program, and also affect the usefulness and quality of the developed program. Task 5. Choose the correct word to complete each sentence. You may have to change some words slightly. 1. application, apply, applicable, applied, applicability a) It is known that some translators have tried to __________ commercial PC-based software to their needs. b) Languages tend to be suited to particular __________. c) The new approach had wide __________ to all sorts of different problems. d) The process is based on some very basic scientific principles __________ in an exceptionally innovative way. 29 2. requirement, require, required, requisite a) The criteria are equally important because they affect the development cost and effort __________ over the lifetime of the program. b) Hardware control always __________ some kind of specialpurpose system. c) Each independent computer in the system can have software specifically tailored to fit its user’s exact needs and __________. d) She lacks the __________ experience for the job 3. develop, development, developer, developmental a) If a language's existing compilers do not produce correctly executing or highly-optimized machine code, the language may not be a good choice for a __________ effort. b) The company __________ and markets new software. c) How quickly could the application be __________ in a particular language? d) The iterative approach allows __________ to progressively identify components and decide which ones to develop, which ones to reuse, and which ones to buy. e) The product is still at a __________ stage. 4. technical, technically, technician, technicality, technique a) A knowledge engineer is a computer scientist who knows how to design and implement programs that incorporate artificial intelligence __________. b) In those days recording sound was not __________ possible. c) He described the process in broad terms without going into the __________. d) We offer free __________ support for those buying our software. e) It is true that robots can cause unemployment by replacing human workers but robots also create jobs: robot __________, salesmen, engineers, programmers and supervisors. 30 Language work Compound Nouns The language of computing in English contains an ever-increasing number of compound nouns, that is, a group of two or more nouns which act as a single noun. For example: Sometimes there are more than two nouns together. For example: user interface development system administration work freeware development community language syntax machine architecture development cost program development The first noun adjective – it tells second noun is made for, or what it is example: Sometimes a noun+noun is not appropriate and instead we use noun+’s+noun. For example: is like an us what the of, what it is part of. For a language’s feature a language’s compiler an application’s design a machine’s quirks machine architecture – the architecture of a machine development cost – cost of developing It is important to be able to recognize how such compounds are formed in order to understand what they mean. The exact relationship between the words depends on the particular expression, but all these expressions have one thing in common: the last word in chain says what the thing is, while the preceding word or group of words describes the thing. So when we read compound nouns, we have to start with the last word and work backwards. Often the first words end in – ing. The –ing form usually says what function the following noun has. For example: operating system programming languages programming staff debugging help 31 Task 6. Use one word from each box to make a compound noun. Box A machine application’s analyzer program tool development language’s language application Box B design requirement support implementation tools effort support features development Task 7. What do you call...? 1. The act or process of translating text from one natural language into another using a computer. 2. The boundary between a user and a computer or program. 3. A book of instructions for the user that explains how to use a computer or a computer program. 4. A computer system that allows useful information to be recorded, stored and used by managers without the help of a computer specialist. 5. The process of designing, installing and perhaps testing a computer system. 6. A language that can be used for writing instructions that a computer can process and execute. 7. Rules followed by computer programmers who are working in a team so that their work can be understood by other programmers. 8. A person who writes applications program. 9. A programming technique that allows the creation of ‘objects’ which can be reused, or used as the foundation of others. 10. The study of computers and their use. Task 8. Michael Warren is at an interview for a job in a film production company. He has been asked why he wants the job, and this is part of his answer. Suggest compound nouns to fill in the spaces in this text. One of the parts of the compound is given in brackets. Choose the other part from the –ing forms below. advertising making answering recording breathing selling cutting losing mailing turning waiting Just after I left university, I met an old friend who offered me the opportunity to join his company, Phono, selling a new type of mobile 32 phone. I organized a(n) (1) advertising campaign (campaign) and set up a(n) (2) ………. (list) with the names and addresses of people who might be interested in it. The main (3) ………. (point) of the phone was that it included a(n) (4) ………. (machine), and was the only one of its kind on the market at the time. At first the demand was so great that there was a(n) (5) ………. (list) of people wanting to buy one. Unfortunately, a year later Sonex brought out its new video phone, and this was the (6) ………. (point) for Phono. Demand for our phone plummeted. We did a lot of (7) ………. (cost) to try to save money, but it wasn’t long before we knew we were fighting a(n) (8) ………. (battle) and decided to close the company. I’ve been out of work for a few months now. But this has given me the (9) ………. (space) to decide what I want to do next. When I worked for Phono, I helped produce a(n) (10) ………(video) to advertise the product. I enjoyed this a lot, and that’s why I’d now like to get into (11) ………. (film). Speaking Task 9. Read the statements below. Which do you agree with more? Why? ‘Learning a programming language is like learning any natural language. The only difference is that you are communicating with a machine instead of another person.’ ‘I get annoyed when I hear people comparing programming languages with natural languages. They have almost nothing in common.’ Writing Task 10. Write an essay (120 – 180 words) summarizing all your ideas in Task 9. 33 Unit 5. Structured Programming Warm-up Task 1. Answer the following questions: 1. 2. 3. What is structured programming? What structured programming languages do you know? What are the main rules of structured programming? Reading Task 2. Read the text below to find answers to the following questions: 1. What was the approach to writing software in the early days of programming? 2. Where does the term ‘spaghetti code’ come from? 3. What are the five tenets of structured programming? 4. What is the role of the control structure? 5. What control structures are necessary to write programs? 6. What does the sequence refer to? 7. What levels of selection does C++ provide? 8. What loop structures does C++ provide? 9. What control structures are the most flexible and powerful for problem-solving? 10. What control structures are the most common in C++ code? Structured Programming Up to this point in your study of computer science and C++, you have created programs which used only sequential execution. So far function main() consisted of a sequence of lines which are executed once, line-by34 line. As we add the power of loops and selection, we need to use these tools in a disciplined manner. In the early days of programming (1960's), the approach to writing software was relatively primitive and ineffective. Much of the code was written with goto statements which transferred program control to another part of the code. Tracing this type of code was an exercise in jumping from one spot to another, leaving behind a trail of lines similar to spaghetti. The term "spaghetti code" comes from trying to trace code linked together with goto statements. The research of Bohm and Jacopini has led to the rules of structured programming. Here are five tenets of structured programming. a. No goto statements are to be used in writing code. b. All programs can be written in terms of three control structures: sequence, selection, and iteration. c. Each control structure has one entrance point and one exit point. We will sometimes allow for multiple exit points from a control structure using the break statement. d. Control structures may be stacked (sequenced) one after the other. e. Control structures may be nested inside other control structures. The control structures of C++ encourage structured programming. Staying within the guidelines of structured programming has led to great productivity gains in the field of software engineering. There are only three necessary control structures needed to write programs: sequence, selection, and iteration. Sequence refers to the line-by-line execution as used in your programs so far. The program enters the sequence, does each step, and exits the sequence. Selection is the control structure allowing choice among different directions. C++ provides different levels of selection: • One-way selection with an if structure • Two-way selection with an if-else structure • Multiple selection with a switch structure. Iteration refers to looping. C++ provides three loop structures: • while loops • do-while loops • for loops Of the seven control structures, the if-else and while loop are the most flexible and powerful for problem-solving. The other control 35 structures have their place, but if-else and while are the most common control structures used in C++ code. Task 3. Complete the following text using the list of words below: Back in the 1960s, computer programs were difficult to read. The 1) …… languages (FORTRAN and often even assembly languages) frequently used if and 2) …… statements, resulting in "spaghetti-like" 3) …… . Programs were essentially networks of statements, where the execution could 4) …… freely from one statement to another, using 5) …… or unconditional jump statements. This situation led the entire industry to use flow charts. The flow chart was a 6) …… which represented the program as a directed graph that connected 7) …… sections of the code. The execution could branch at the if statements, or could jump to any other 8) …… of the code, using the goto 9) ……. Flow charts helped programmers understand the 10) …… of their code. statement conditional primitive sequential code goto diagram section logic jump Language work Relative clauses with a participle Relative clauses with a participle are often used in technical descriptions. They allow you to provide a lot of information about a noun using as few words as possible. We often use –ing and –ed clauses after there is/ there are. For example: There are only three necessary control structures needed to write programs: sequence, selection, and iteration. A clause is a part of a sentence. Some clauses begin with – ing or –ed. Study these examples from the text: 1. Function main() consisted of a sequence of lines 2. The most common control structures used in C++ code 3. A control structure using the break statement The control structure allowing choice among different directions 36 We can use the active participle as in examples 3 and 4. We can use the passive participle as in examples 1 and 2. 3. A control structure using the break statement = structure which uses the break statement 4. The control structure allowing choice among different directions = structure which allows choice among different directions 1. Function main() consisted of a sequence of lines = function which is consisted 2. The most common control structures used in C++ code = control structures which are used Task 4. Complete these definitions with the correct participle of the verb given in brackets. 1. 2. 3. 4. 5. 6. Software engineering is the processes (involve) in writing computer software such as designing, coding and testing programs. Programming standards are rules (follow) by computer programmers who are working in a team so that their work can be understood by other programmers. Iteration is the process of a computer (execute) a command or statement again and again until a result is obtained. GOTO instruction is a high-level programming language instruction (cause) a jump to another place in the program. While loop is a block of statements in a computer programming language (execute) again and again if a test at the start of the block shows that the execution should happen. Control structure is one or more statements in a programming language (control) how the program is executed. Task 5. Link these statements using a relative clause with a participle. 1. 2. 3. The software company sent me a brochure. The brochure contained all the information I needed. High-level languages are more efficient. High-level languages allow the programmer to express with one statement what would take several commands in machine language. External documentation is the printed set of instructions. They describe how to operate the program. 37 4. Most computer installations have a standard language. It is used by their programmers. 5. In addition to the traditional languages, organizations may choose to generate programs. The organizations use data base management systems. The programs use the query language of the DBMS. 6. Many organizations have a substantial number of computers in operation. Computers are located far apart. 7. Expert systems are software packages. They are designed to assist humans in situations in which an expert in a specific area is required. 8. Expert systems will be able to infer answers from sets of data. They emulate humanlike thought processes. 9. Graphics was an esoteric specialty. It involves expensive display hardware, substantial computer resources, and idiosyncratic software. 10. The letters are stored in a subdirectory. This subdirectory is called ‘correspondence’ on the C drive. Translation Task 6. Match the terms with the correct definition or explanation: a. Structured programming b. Implementation c. Algorithm d. Description e. Pseudocode f. Subdirectory g. Computer program h. Code 1. 2. 3. 4. 5. 6. 7. 8. a set of unambiguous rules to solve a problem in a definite number of steps code that contains a combination of a programming language such as C, and natural language such as English a directory that is inside another directory the act of starting to use a plan or computer system a general term for computer programming instructions a statement that explains what something looks like, or how it behaves a method of designing a computer program so that it is easy to understand, change and maintain a set of instructions that can be understood by a computer and perform a certain task or function 38 Task 7. Translate the following text into Russian. Check the meaning of any unfamiliar technical words in the dictionary. Algorithm Development and Pseudocode An algorithm is a solution to a problem. Computer scientists are in the problem-solving business. They use techniques of structured programming to develop solutions to problems. Algorithms will range from the easier "finding the average of two numbers" to the more difficult "visiting all the subdirectories on a hard disk, searching for a file." A major task of the implementation stage is the conversion of rough designs into refined algorithms which can then be coded in the implementation language of choice. Pseudocode refers to a rough-draft outline of an answer, written in English-like terms. We will probably use phrases and words which are close to programming languages, but avoid using any specific language. Once the pseudocode has been developed, translation into code occurs more easily than if we had skipped this pseudocode stage. Stepwise refinement is the process of gradually developing a more detailed description of an algorithm. Problem solving in computer science involves overall development of the sections of a program, expanding each section with more detail, later working out the individual steps of an algorithm using pseudocode, then finally writing a code solution. Word-play Task 8. Complete the crossword puzzle and find the key word in 15 down. Across 1. a statement that explains what something looks like, or how it behaves 2. the process of writing and testing programs for computers 3. a pejorative term for code with a complex and tangled control structure, especially one using many GOTOs, exceptions, or other "unstructured" branching constructs 4. the rate of translating a high-level language into machine code 5. a group of items that are in a certain order 6. a human-readable notation for the machine language that a specific computer architecture uses 7. the control structure allowing choice among different directions 39 8. 9. the information that explains how to use software or hardware a product review performed by a formal team. A number of such reviews may be held during the lifetime of a software project, covering, for example, requirements specification, program specifications, design, and implementation. …… editor - a program that combines one or more files containing object code from separately compiled program modules into a single file containing loadable or executable code part of a computer program, which tells the computer what to do at that stage a set of rules that must be followed when solving a particular problem a way of writing a description of a computer program using a mixture of natural language and computer language code the period of time during which a program is executed 10. 11. 12. 13. 14. Down 15. the act of starting to use a plan or computer system, etc. 1 15 2 3 4 5 6 7 8 9 10 11 12 13 14 40 Unit 6. Object Oriented Programming Warm-up Task 1. Answer the following questions: 1. 2. 3. 4. What is object oriented programming? What are the basic features of object oriented programming? What are object oriented languages? Give any examples. What are they used for? Reading Task 2. Now read the text and decide on a suitable title for it. One of the principal motivations for using OOP is to handle multimedia applications in which such diverse data types as sound and video can be packaged together into executable modules. Another is writing program code that’s more intuitive and reusable; in other words, code that shortens program-development time. 41 The object oriented programming paradigm entails the development of active program units called objects, each of which contains procedures describing how that object should respond to various stimuli. These internal procedures are called methods (or member functions in the C++ vernacular). The object oriented approach to a problem is to identify the objects involved and describe them and their associated methods as selfcontained units. In turn, object oriented programming languages provide statements for expressing these ideas. To simplify the description of objects with similar yet different characteristics, most object oriented languages allow one class to encompass the properties of another through a system as inheritance. The existence of a variety of objects with similar yet different characteristics leads to a phenomenon reminiscent of overloading, which is the use of a single symbol, such as +, for representing different operations depending on the type of its operands. Suppose that an object oriented graphics package consists of a variety of objects, each representing a shape (circle, rectangle, triangle, etc.). A particular image consists of a collection of these objects. Each object knows its size, location, and colour as well as how to respond to messages telling it, for example, to move to a new location or to draw itself on the monitor screen. To draw an image, we merely send a ‘draw yourself’ message to each object in the image. However, the routine used to draw an object varies according to the shape of the object – drawing a squire is not the same process as drawing a circle. This customized interpretation of a message is known as polymorphism; the message is said to be polymorphic. Another characteristic associated with object oriented programming is encapsulation, which refers to restricting access to an object’s internal properties. To say that certain features of an object are encapsulated means that only the object itself is able to access them. Features that are encapsulated are said to be private. Features that are accessible from outside the object are said to be public. Vocabulary diverse – very different from each other and of various kinds paradigm – a type of smth, a model to entail – to involve sth that cannot be avoided vernacular – the language spoken in a particular area or by a particular group, especially one that is not the official or written language to encompass – to include a large number or range of things reminiscent – reminding you of sb/sth 42 to customize – to make or change sth to suit the needs of the owner Task 3. When you read the text to decide on a suitable title, which of the following did you do? Did you: - read the text slowly and try to understand every word? read quickly and try to understand the main theme? underline or mark sentences that you thought were important? make notes about important points? Which of these reading strategies do you think is most appropriate for this kind of task? Which do you think is least appropriate? Task 4. Match the terms with the correct definition or explanation: a) Object-oriented programming b) Inheritance c) Class d) Entity e) Procedure f) Property 1. 2. 3. 4. 5. 6. g) Encapsulation 7. h) Library 8. i) 9. Attribute a set of programmed functions that are made available for use by any program a quality or characteristic that something has in programming, any item, such as data item or statement, that can be named or denoted in a program a means by which characteristics of objects can be replaced and instantiated in other objects a programming technique that combines data, abstraction, inheritance, and dynamic type binding a facility introduced in the programming language SIMULA. It provides a form of abstract data type a way of performing a task that usually does not change each time the task is performed a restriction on access to an object’s internal properties a named value or relationship that exists for some or all instances of some entity and is directly associated with that instance 43 Task 5. Look back at the text and find the answers to these questions: 1. What advantages of using object-oriented programming are mentioned in the text? 2. What are the three key features of OOP? 3. What are called ‘methods’? 4. What approach is adopted in OOP? 5. What is ‘overloading’? 6. What information does each object contain? 7. What do you need to draw an image? 8. Is there a difference between drawing a squire and a circle? 9. What feature refers to restricting access to an object’s internal properties? 10. What features are said to be encapsulated? Language work The Infinitive of Purpose e.g. A better approach is to accept the idea that programming languages, or processes can not “Be Object Oriented.” We use to… to say what can be done or must be done with something: e.g. In program planning, the logic to be used to solve the problem is developed. Also: money/time/opportunity/energy/cour age etc. to (do something): e.g. A window manager gave the user an opportunity to do any operations with windows. The Infinitive of purpose is often used in technical descriptions: We use to… to say why somebody does something (= the purpose of action): e.g. Programming is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. We use to… to say why something exists or why somebody has/wants/needs something: Task 6. Look through the text again and find examples of the infinitive of purpose. 44 Task 7. Complete these sentences. Choose from the box. to define the layout of a document to show the logical steps (2) to be used in many different programs to solve business problems to develop programs in conversational mode to keep in mind to accomplish tasks to obtain correct results to create files to write systems software 1. 2. Algorithms are sets of rules or instructions used …… Extensible markup language is used …… that are programindependent, platform-independent and able to be used with different languages. 3. Flowchart is a kind of diagram used by programmers …… in a program or by systems analysts …… in the design of a system. 4. Several programming languages, particularly COBOL, PL/I, and RPG, are commonly used …… 5. Debugging is the process of correcting computer programs …… 6. It is important …… 3 principles when dealing specifically with programming, and programming languages. 7. Libraries are often supplied by the operating system or software development environment developer …… 8. Page-description language uses tags …… 9. BASIC is a general purpose high-level programming language, originally designed …… 10. C was originally designed …… but is now considered a generalpurpose language. Task 8. Complete these sentences using a suitable verb. 1. 2. 3. 4. 5. 6. 7. 8. Bill Gates has a team of bodyguards ………. him. I did not have enough time ………. the program today. I came home by taxi. I did not have the energy ………. . Would you like something ……….? Yes, please. A cup of coffee. We need a box ………. these devices in. There will be a meeting next week ………. the problem. I wish we had enough money ………. the computer. I saw him at the meeting but we did not have a chance ………. to each other. 9. They have just passed their exam in computer science. They are having a party ………. . 10. I cannot do all this work alone. I need somebody ………. me. 45 11. 12. 13. 14. Do you have much opportunity ………. your English? We need more time ………. a decision. You need a lot of experience ………. this job. A class is a template used ……… multiple objects with similar features. Translation Task 9. Translate the following text into English. You may use the dictionary if it is necessary. В середине 80-х годов в программировании возникло новое направление, основанное на понятии объекта. Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта, как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта. Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта. Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса. Важнейшая характеристика класса – возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым. 46 Listening 47 Task 10. You are going to hear a lecture about Java, an objectoriented programming language. As you listen, choose the correct answer for each question. 1. What is not mentioned about Java in the recording? a) architecture neural b) robust c) meta-markup d) high-performance 2. As a programmer you should a) give attention to data and methods b) take procedures into accounts c) adjust to the new paradigm 3. Most things in Java are a) objects b) the primitive numeric types c) character types d) Boolean types 4. If you are a C++ programmer, you’ll have a) no difficulties with Java as the syntax is similar to C++ b) difficulties with Java as the behaviour is not analogous c) to study the object-oriented constructs in Java thoroughly 5. Java is an interpreted language because its compiler generates a) native machine code b) byte-codes c) malicious code 6. Java is a secure language because a) users cannot download code from a random site on the Internet b) users cannot run untrusted programs c) it provides several layers of security control 7. Java is a robust language because a) any untrusted code cannot be loaded b) any direct access to memory is not allowed c) corrupted byte-codes cannot take advantage of implementation weakness in a Java interpreter 48 Task 11. Read the extract from the tapescript and fill in each gap with an appropriate word. In an object-oriented system, a class is a 1) __________ of data and methods that operate on that data. Taken together, the data and methods describe the state and 2) __________ of an object. Classes are arranged in a 3) __________, so that a subclass can 4) __________ behavior from its superclass. A class hierarchy always has a 5) __________ class; this is a class with very 6) __________ behavior. Java comes with an 7) __________ set of classes, arranged in 8) __________, that you can use in your programs. For example, Java 9) __________ classes that create graphical user interface 10) __________ (the java.awt package), classes that 11) __________ input and output (the java.io package), and classes that support networking 12) __________ (the java.net package). The Object class (in the java.lang package) serves as the root of the Java class hierarchy. Now listen again and compare your answers. Speaking Task 12. Work in pairs and discuss the following questions: If you were a developer of software: 1. What kind of software package would you develop? Why? a) educational software b) musical software c) multimedia application d) an integrated package e) a game 2. What programming language would you choose? Justify your choice. 49 Unit 7. Databases Warm-up Task 1. Answer the following questions: 1. 2. 3. 4. What is a database? What are the major advantages of databases? Which tasks can be performed by using a database? Make a list of possible applications. What is the difference between the terms file, record and field? Reading Task 2. Read the text about databases and underline the basic features of a database: Basic Features of Database Programs With a database you can store, organize and retrieve a large collection of related information on computer. If you like, it is the electronic 50 equivalent of an index filling cabinet. Here are some features and applications. Information is entered on a database via fields. Each field holds a separate piece of information, and the fields are collected together into records. For instance, a record about an employee might consist of several fields which give his address, phone number, name etc. Records are grouped together into files which hold large amounts of information. Files can easily be updated: you can always change fields, add new records and delete old ones. With the right database software, you are able to keep track of stock, sales, market trends, orders, invoices and many more details that can make your company successful. Another feature of database programs is that you can automatically look up and find records containing particular information. You can also search on more than one field at a time. For instance, if a managing director wanted to know all the customers that spent more than $7.000 per month, the program would search on the name field and the money field simultaneously. A computer database is much faster to consult and update than a card index system. It occupies a lot less space, and records can be automatically stored into numerical and alphabetical order using any field. The best packages also include networking facilities, which add a new dimension of productivity to business. For instance, managers of different departments can have direct access to a common database, which represents an enormous advantage. Thanks to security devices, you can share part of your files on a network and control who sees the information. Most aspects of the program can be protected by user defined passwords. For example, if you wanted to share an employee’s personal details, but not their commissions, you could protect the commission field. In short, a database manager helps you control the data you have at home, in the library or in your business. Task 3. Using the information in the text, complete these sentences: 1. 2. 3. 4. 5. 6. A database is used to …… Information is entered on a database via …… With the right database software, you …… Each field holds …… ‘Updating’ a file means …… The advantages of a database program over a manual filling system are ...... 51 7. 8. Access to a database can be protected by a …… A database manager helps …... Listening inoculate - to protect a person or an animal from catching a particular disease by injecting them with a mild form of the disease unattended – automatic miscellaneous - consisting of many different kinds of things that are not connected and do not easily form a group Task 4. You will hear a lecture about databases. As you listen, match the words on the left with those on the right: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. filing labourious card filing comprehensive dedicated or customized software eventual purchasing simultaneous relational self-adhesive statistical a) b) c) d) e) f) g) h) i) j) k) l) m) presentations search data managers end user procedures indexing houses cabinet inquiries database packages labels system Task 5. Listen again and fill in the missing information in the table below: 1. 2. Database: electronic _____________________________________ Advantages: ___________________________________________ ______________________________________________________ 3. Levels of program available a) _______________________ b) _______________________ 4. Main feature of database – ability to ________________________ e.g.___________________________________________________ 5. Most programs allow design layout decide textual display e.g.___________________________________________________ 52 6. Working database – more than a file e.g. mail order rare-book business files include ________________ ______________________________________________________ 7. Relational database – capable of ___________________________ Print-out in form of _____________________________________ Other features of stationery _______________________________ advantage _____________________________________________ ______________________________________________________ 8. Database programs allow export of data into other programs e.g. __________________________________________________ ______________________________________________________ 9. Statistical presentations gt. advantage. Data illustrated by means of _______________________________ ______________________________________________________ Speaking Task 6. Make up a dialogue: You are the owner of: a bookshop a department store a movie house Your business is growing and you need a good database system. Discuss the problems you’re facing with a programmer and try to find a solution. Reading Task 7. Before reading the text, try to answer the following questions: 1. 2. 3. What is ‘data model’? What approaches to the structuring of a data model do you know? Make a list. What is the difference between these approaches? Now read the text and check your answers. 53 Data Models Although a database is a single collection of data, the data must appear to be different when viewed from different parts of the database system. Each user of the database must see a set of data suited to the particular application. Furthermore, the logical structure of the data might be different from the way it is physically represented on backing store media. The way around these problems is the idea of a data model. A data model is the logical structure of the data as it appears at a particular level of the database system. Each user of the database has a different data model. Structuring the Data Model The central decision in the design of a database system is the structure of the data model. Almost every other aspect of a database system depends on this structure. Because the database is large, and there are many relationships existing between individual data items, a satisfactory structuring of the data is very difficult to achieve. Objectives of a well structured data model include efficiency of storage, ease of transformation to other models, speed of access to data and ease of modification of the model Three approaches to the structuring of data models are discussed. These are the hierarchical, network and relational approaches. Historically, these approaches have been developed in this order, with relational databases being the most recent, and rapidly becoming the most popular. The Hierarchical Approach The hierarchical approach involves creating a tree structure for the data. Different data items are stored at different levels, with some levels being 'below' others in the tree. The problem with the hierarchical approach is that not all databases fit naturally into a tree structure. The Network Approach In an attempt to overcome the rigidity of the hierarchical approach, the network approach to structuring a data model has been developed. In this approach, data items are linked to other data items by pointers, forming a network. Information is extracted by traversing the network in various ways. The Relational Approach The relational approach is the newest and most promising method of structuring a data model. Using this approach, the data is presented as a set of tables, each table representing a relationship existing between two or more data items. The model can be transformed by combining relationships via a common data item and deleting unwanted data items. 54 The relational data model has the benefits of simplicity of concept, economy of storage, and a wide variety of applications which seem to fit naturally onto its structure. It is being used as the basis of fourth generation software development tools and is likely to be used extensively in fifth generation systems. Task 8. Look through the text again and answer the questions below: 1. 2. 3. 4. 5. 6. 7. 8. 9. Why is it difficult to achieve a satisfactory structuring of the data? What are the main aims of a well-structured data model? One of the data models has been given the name 'hierarchical' (from 'hierarchy'). What quality or characteristic does it possess that accounts for the name? What feature of the hierarchical approach was the network system designed to overcome? How is data obtained from a network model? How successful is the relational approach said to be? What possibilities are there for the transformation of this model? Mention two qualities possessed by the network data model. Could you make a prediction for the future of the network model? Speaking Task 9. Work in pairs and discuss the following: Suppose a software analyst, while working for a particular company, develops a data organisation that allows for efficient manipulation of that data in a particular application. He or she is then hired by another company and assigned a similar project. Should the analyst be allowed to implement the same data organisation for the second company? You can use the following phrases: - to express your personal opinion In my opinion, …… I personally believe/ think …… Not everyone will agree with me, but …… To my mind, …… - thinking about a problem In a case like this, …… 55 In a situation like this, …… In this sort of situation, …… - arguments and counter-arguments Yes, but …… Yes, but don’t forget …… Even so, …… Even if that is so, …… That may be so, but …… Possibly, but …… Writing Task 10. Write an argumentative essay (120 – 180 words) summarizing all your ideas in Task 9. Use the information below to help you. • • • - An argumentative composition is always a formal, impersonal piece of writing in which you are expected to consider a topic from opposing points of view and give a balanced consideration or your opinion. Personal expressions such as I believe or I think should only be used in the final paragraph where you can give your opinion. A good argumentative essay (for/against) should consist of: a) an introduction in which you state topic b) a main body which consists of two paragraphs. The points for, with your justification, appear in one paragraph and the points against, with your justification, appear in another paragraph. c) a final paragraph in which you sum up the arguments and give a balanced consideration or your own opinion. The use of linking words is absolutely necessary when writing an argumentative composition: To introduce points: Firstly/To begin with/In the first place, One point in favour of/against is, etc. To add more points: Secondly/What is more/Furthermore/Moreover, etc. To make contrasting points: However/On the other hand/Although/In spite of, etc. To conclude: To sum up, In conclusion/On balance/All things considered, etc. 56 Unit 8. Database Management Systems Warm-up Task 1. Try to answer the following questions. 1. 2. 3. 4. 5. What does DBMS stand for? What types of DBMSs from a technical standpoint do you know? What is a relational database? What is a network database? What is a hierarchical database? 57 Task 2. Read the text and fill in the gaps using the list of words below. Database management system is a collection of programs that 1) …… you to store, modify, and extract information from a database. There are many different types of DBMSs, ranging from small systems that run on 2) …… to huge systems that run on mainframes. The following are examples of database 3) ……: • • • • computerized library systems automated teller machines flight reservation systems computerized parts inventory systems From a technical standpoint, DBMSs can differ widely. The terms relational, network, flat, and 4) …… all refer to the way a DBMS organizes information internally. The internal organization can affect how quickly and flexibly you can extract information. Requests for information from a database are made in the form of a 5) ……, which is a stylized question. For example, the query SELECT ALL WHERE NAME = "SMITH" AND AGE > 35 requests all 6) …… in which the NAME 7) …… is SMITH and the AGE field is greater than 35. The set of rules for constructing queries is known as a 8) ……. Different DBMSs 9) …… different query languages, although there is a semi-standardized query language called SQL (structured query language). Sophisticated languages for managing 10) …… are called fourth-generation languages, or 4GLs for short. The information from a database can be presented in a variety of 11) ……. Most DBMSs include a 12) …… program that enables you to 13) …… data in the form of a 14) ……. Many DBMSs also include a 15) …… component that enables you to output information in the form of graphs and charts. a) b) c) d) e) database systems graphics hierarchical applications field f) g) h) i) j) report writer query language personal computers query output 58 k) l) m) n) o) formats records report support enables Reading Task 3. Match the terms with their definitions: 1. 2. 3. 4. 5. 6. logical record field physical record internal schema external schema conceptual schema a) b) c) d) e) f) the collection of data transferred as a unit the user’s permitted view of the data the logical design of the database an item of data such as a number, a name, or an address the way that the data is physically held the collection of data relating to one subject Task 4. Before reading the text, try to answer the following questions: 1. 2. How many medical uses of a database can you think of? What is the main function of DBMS? Now compare your answers with the information in the text. Database Management Systems Databases are used within a medical context for many purposes. For example, they are used to hold patient details so they can be accessed from anywhere within a hospital or network of hospitals. With the recent improvements in image compression techniques, X-rays and scan output can also be held in databases and accessed in the same way. These multi-user databases are managed by a piece of software called a database management system (DBMS). It is this which differentiates a database from an ordinary computer file. Between the physical database itself (i.e. the data as actually stored) and the users of the system is the DBMS. All requests for access to data from users – whether people at terminals or other programs running in batch – are handled by the DBMS. One general function of the DBMS is the shielding of database users from machine code (in much the same way that COBOL shields programmers from machine code). In other words, the DBMS provides a view of the data that is elevated above the hardware level, and supports user-requests such as “Get the PATIENT record for patient Smith”, written in a high-level language. 59 The DBMS also determines the amount and type of information that each user can access from a database. For, example, a surgeon and a hospital administrator will require different views of a database. When a user wishes to access a database, he makes an access request using a particular data-manipulation language understood by the DBMS. The DBMS receives the request, and checks it for syntax errors. The DBMS then inspects, in turn, the external schema, the conceptual schema, and the mapping between the conceptual schema and the internal schema. It then performs the necessary operations on the stored data. In general, fields may be required from several logical tables of data held in the database. Each logical record occurrence may, in turn, require data from more than one physical record held in the actual database. The DBMS must retrieve each of the required physical records and construct the logical view of the data requested by the user. In this way, users are protected from having to know anything about the physical layout of the database, which may be altered, say, for performance reasons, without the users having their logical view of the data structures altered. Task 5. The steps below show how a DBMS deals with an access request. Find the relevant section in the text, and then put the steps in the correct order. The DBMS: 1. 2. 3. 4. 5. 6. inspects the mapping between the conceptual schema and the internal schema checks for syntax errors inspects the external schema receives the request performs operations on the stored data inspects the conceptual schema Speaking Task 6. The diagram below represents a simplified database. In pairs, use the diagram to explain to your partner the following: Student A: what a DBMS is and how it works Student B: how an access request is processed Try not to refer to the text. Use your own words. 60 Database management system (DBMS) Listening Task 7. Listen to this extract from a programme called Science Made Simple, in which a hospital administrator answers questions about the hospital database. As you listen, choose the correct answer for each question. 1. How many characters of stored information are generated each year by the database at Grovemount Hospital? a) More than 500,000. b) More than 50,000,000. c) More than 500,000,000. d) More than 500,000,000,000. 2. What is not mentioned in the recording about the database at Grovemount Hospital? a) Medical treatment. b) Laboratory reports. c) Drugs and supplies. d) Staff records. 61 3. How is the database organized? a) Like all other databases. b) Like any hospital database. c) Differently from any other database. 4. How is information on patient stored? a) Each patient has a named file. b) Each patient has a record. c) Each patient has a number of records within a personal file. 5. The file called PATIENT does not contain: a) National Health Service number. b) A unique identifier. c) Date of birth. 6. What do fixed-format records contain? a) Types of data that cannot be changed. b) A long string of text. c) Different types of data stored separately. 7. What happens when two people try to access the same data at the same time? a) The database management system cancels both queries. b) One user has to wait until the other has finished. c) The Database Manager processes both queries at the same time and updates the database accordingly. Task 8. Read the extract from the tapescript and fill in each gap with an appropriate word. INTERVIEWER: I see. Now, can you tell us what happens when the database is 1) __________? ALEX COLLINS: Yes. Each 2) __________ 3) __________ is called a transaction. When a transaction enters the system for processing, the computer must 4) __________ related data from the database. At the end of the processing, the computer stores 5) __________ data to reflect the changes caused by the transaction. INTERVIEWER: Could you give an example? ALEX COLLINS: Yes, of course. Each time a patient is admitted to the hospital, the database must be updated to show his or her details. This is 62 obvious. However, the database must also be updated to show that there is one less bed 6) __________. This will, in turn, affect summary 7) __________ data, such as bed 8) __________ for the month, and so on. INTERVIEWER: OK. But you have lots of different people accessing the database at the same time, don’t you? ALEX COLLINS: It’s a 9) __________ system, yes. INTERVIEWER: Right. But what happens if two people access the same data at 10) __________ the same time? ALEX COLLINS: It can’t happen. In that situation, the database management system would 11) __________ access to one of the 12) __________ only. Now listen again and compare your answers. Speaking Task 9. Work in pairs and both look at the pictures on pages 107 and 108. 1. 2. Student A: You should talk about the pictures on page 107. They show different ways of storing information. You should a) describe the similarities and differences between them, and b) comment on the changes that have taken place since the first database system was developed. Talk about various uses of a database. You have about one minute. Student B: When Student A has finished, comment on what he/she has said. Say if you agree or disagree. Student B: You should talk about the pictures on page 107. They each show a way of finding the required information. a) compare and contrast them, and b) comment on what life would be like if there were not database management systems. Talk about different types of DBMS. You have about one minute. Student A: When Student B has finished, comment on what he/she has said. Say if you agree or disagree. Writing Task 10. Write an argumentative essay (120 – 180 words) on the topic below. Use the information in Unit 7 (Task 10, p. 56) to help you. 63 In the USA, DNA (deoxyribonucleic acid) records of all federal prisoners are now stored in a database for use in criminal investigations. Would it be ethical to release this information for other purposes, e.g. for genetic research? If so, for what purposes? If not, why not? Translation Task 11. Translate the following text into English. Системы управления базами данных. Базами данных называют огромные массивы данных, организованных в табличные структуры. Основными функциями систем управления базами данных являются: • создание пустой (незаполненной) структуры базы данных; • предоставление средств ее заполнения или импорта данных из таблиц другой базы: • обеспечение возможности доступа к данным, а также предоставление средств поиска и фильтрации. Многие системы управления базами данных дополнительно предоставляют возможности проведения простейшего анализа данных и их обработки. В результате возможно создание новых таблиц баз данных на основе имеющихся. В связи с широким распространением сетевых технологий к современным системам управления базами данных предъявляется также требование возможности работы с удаленными и распределенными ресурсами, находящимися на серверах всемирной компьютерной сети. 64 Unit 9. Graphical User Interface Warm-up Task 1. Answer the following questions: 1. 2. 3. 4. 5. 6. What does the GUI stand for? How do you pronounce this abbreviation? What is special about a GUI? Why were GUIs developed? What common features of the GUI do you know? Can you make a list of them? Why the GUI is popular among users? Give reasons. What other types of user interface do you know? What are their character features? Reading Task 2. Read the text and compare your answers in Task 1: Abbreviated GUI (pronounced GOO-ee). A program interface that takes advantage of the computer's graphics capabilities to make the program easier to use. Well-designed graphical user interfaces can free the user from learning complex command languages. On the other hand, many users find that they work more effectively with a command-driven interface, especially if they already know the command language. Graphical user interfaces, such as Microsoft Windows and the one used by the Apple Macintosh, feature the following basic components: • pointer: a symbol that appears on the display screen and that you move to select objects and commands. Usually, the pointer appears as a small angled arrow. Text-processing applications, however, use an I-beam pointer that is shaped like a capital I. • pointing device: a device, such as a mouse or trackball, that enables you to select objects on the display screen. • icons: small pictures that represent commands, files, or windows. By moving the pointer to the icon and pressing a mouse button, you can execute a command or convert the icon into a window. You can also move the icons around the display screen as if they were real objects on your desk. • desktop: the area on the display screen where icons are grouped is often referred to as the desktop because the icons are intended to represent real objects on a real desktop. 65 • windows: you can divide the screen into different areas. In each window, you can run a different program or display a different file. You can move windows around the display screen, and change their shape and size at will. • menus: most graphical user interfaces let you execute commands by selecting a choice from a menu. The first graphical user interface was designed by Xerox Corporation's Palo Alto Research Center in the 1970s, but it was not until the 1980s and the emergence of the Apple Macintosh that graphical user interfaces became popular. One reason for their slow acceptance was the fact that they require considerable CPU power and a high-quality monitor, which until recently were prohibitively expensive. In addition to their visual components, graphical user interfaces also make it easier to move data from one application to another. A true GUI includes standard formats for representing text and graphics. Because the formats are well-defined, different programs that run under a common GUI can share data. This makes it possible, for example, to copy a graph created by a spreadsheet program into a document created by a word processor. Many DOS programs include some features of GUIs, such as menus, but are not graphics based. Such interfaces are sometimes called graphical character-based user interfaces to distinguish them from true GUIs. Listening Task 3. You are going to hear a lecture about graphical user interfaces. Listen carefully and decide whether the following statements are true (T) or false (F) in relation to the information in the recording. 1. 2. 3. 4. 5. 6. 7. 8. Some time ago only experts could use computers. If you want to use a program easily, a good user interface is critical. You have to memorize commands in order to execute an application. From the first, Macintosh computers had a user-friendly interface based on graphics and intuitive tools. WIMP stands for Windows, Image, Mouse and Pointer. The creation of applications with a high level of consistency is impossible. You can launch the desired program by clicking its icon. GUIs stimulate users to be more creative and productive. 66 Task 4. Read the extract from the tapescript and fill in each gap with an appropriate word. Today, the most 1) __________ GUIs are the Macintosh, Microsoft Windows and IBM OS/2 Warp. These three platforms include similar 2) __________: a desktop with icons, windows and 3) __________, a printer selector, a file 4) __________, a control panel and various desk 5) __________. Doubleclicking a folder opens a window which contains programs, documents or further nested folders. At any time within a folder, you can 6) __________ the desired program or document by 7) __________ the icon, or you can 8) __________ it to another location. The three 9) __________ differ in other areas such as device installation, network 10) __________ or compatibility with application programs. Task 5. Study this diagram of a graphical user interface. Identify these features: 1. 2. window icon 3. 4. menu system tray 5. 6. 67 taskbar submenu 7. 8. desktop button Language work Verbs + object + infinitive; Verbs + object + to-infinitive New developments in computing are often designed to make something easier. These verbs are often used to describe such developments: allow let enable 3. 4. permit help Allow, enable and permit are used with this structure: Study these examples: 1. 2. The X Window System enables Unix-based computers to have a graphical look and feel. Voice recognition software helps disabled users (to) access computers. A GUI lets you point to icons and click a mouse button to execute a task. A GUI allows you to use a computer without knowing any operating system commands. verb + object + to-infinitive Let is used with this structure: verb + object + infinitive Help can be used with either structure. Task 6. Complete the gap in each sentence with the correct form of the verb in brackets. 1. 2. 3. 4. 5. 6. 7. 8. The Help facility enables users ………… (get) advice on most problems. Adding more memory lets your computer ………… (work) faster. Windows allows you ………… (display) two different folders at the same time. The operating system provides several of its own commands that help you ………… (use) the computer. The Shift key allows you …………. (type) in upper case. The MouseKeys feature enables you ………… (use) the numeric keypad to move the mouse pointer. ALT + TAB allows you ………… (switch) between programs. The StickyKeys feature helps disabled people ………… (operate) two keys simultaneously. 68 9. ALT + PRINT SCREEN lets you ………… (copy) an image of an active window to the Clipboard. 10. Trackball enables you ………… (select) objects on the display screen. 11. Most graphical user interfaces let you ………… (execute) commands by selecting a choice from a menu. 12. Computer graphics help users ………… (understand) complex information quickly by presenting it in a clear visual form. Task 7. Describe the function of these features using ‘enabling’ verbs: 1. 2. 3. 4. In a window, the vertical scroll bar The find command The Undo command Cut and paste 5. 6. 7. 8. 9. Print Screen Menus Recycle bin Tooltips Insert table Speaking Task 8. Work in groups. Complete the questionnaire for yourself. Then take turns in your group to explain how to perform each of these actions. You may need these verbs: choose right/left/double-click on drag and drop pull down Do you know how to: 1. create a new document? 2. quit a program? 3. shut down the system? 4. save a file onto a floppy disk? 5. arrange the icons? 6. display the time? 7. pull down a menu? 8. in Windows, show Tooltips? 9. download information from the Internet? 10. print out a document? 69 hover select Yes No Writing Task 9. Study these instructions for moving a file from one folder to another using Windows Explorer. Then write your own instructions for one of the actions in Task 7. To move a file 1 2 3 4 If you want to move a file that was saved in a different folder, locate and open the folder. Right-click the file you want to move; then click Cut on the shortcut menu. Locate and open the folder where you want to put the file. Right-click the folder; then click Paste on the shortcut menu. Word-play Task 10. Solve the crossword puzzle using the clues below. Across 1. a list of options displayed on a computer screen 2. drag and …… 3. a set of instructions written in a computer language that control the behaviour of a computer 4. a label that appear on the screen when the user holds the mouse pointer over an icon in a Microsoft Windows system 5. the hardware or software that connects two systems and allows them to communicate with each other 6. a Microsoft Windows desktop component that indicates what programs are currently being used and allows the user to switch between them 7. using light for reading or storing information 8. the main output device used to display the output from a computer on a screen 9. to move data from one location to another with a mouse 10. to press and release the button on a mouse 70 Down 1. 2. 3. 4. 5. 6. 7. the main graphical user interface background screen that dislays icons for other programs optical …… recognition an arrow-shaped cursor the act of identifying what something is a computer program designed to be used for a particular purpose the layout of a document including page numbers, line spaces, margins, paragraph alignment, headers and footers, etc. a stationary device that works like a mouse turned upside down 1 1 2 5 3 4 3 5 4 2 7 6 7 8 10 9 71 Task 11. Translate the following text into English. You may use the dictionary if it is necessary. Графический интерфейс пользователя Графический интерфейс пользователя в вычислительной технике - система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т. п.). При этом, в отличие от интерфейса командной строки, пользователь имеет произвольный доступ (с помощью клавиатуры или устройства координатного ввода — вроде мыши) ко всем видимым экранным объектам. Комбинация монитора и мыши обеспечивает наиболее современный тип интерфейса пользователя. Пользователь наблюдает на экране графические объекты и элементы управления. С помощью мыши он изменяет свойства объектов и приводит в действие элементы управления компьютерной системы, а с помощью монитора получает от нее отклик в графическом виде. Впервые концепция графического интерфейса пользователя (ГИП) была предложена учеными из исследовательской лаборатории Xerox PARC в 1970-х, но получила коммерческое воплощение лишь в продуктах корпорации Apple Computer. В настоящее время ГИП является стандартной составляющей большинства доступных на рынке операционных систем и приложений. 72 Unit 10. User Interface Guidelines Warm-up Task 1. Look at the pictures A and B below and discuss these questions: 1. 2. 3. 4. What is a user interface? What types of user interfaces do you know? What is the difference between them? Can you define what type the two interfaces (pictures A and B) below belong to? Can you think of any basic principles to design a user interface? Make a list. A. 73 B. Reading Task 2. Read the text and compare your answers to question 3 in Task 1. User Interface Guidelines When designing a user interface, there are some basic principles and guidelines that you should adhere to. Most of these are common sense, but some may not be so obvious. The following list summarizes the main guidelines to be aware of. Note that these are not presented in any particular order. • Meet the user’s expectations — An application that enables a user to perform a specific task should function the way the user would expect. If you meet the user’s expectations, he will be comfortable using the interface. 74 • Keep the interface clear and simple — An interface’s appearance should convey its function in an obvious manner and allow easy navigation from one part of the interface to another. Simple and clear interfaces don’t distract the user’s attention from key tasks. Group related controls together but avoid areas with a high density of controls. Also, ensure that controls that receive mouse input are of a reasonable size; this encourages error-free navigation. Similarly, don’t have very large distances between frequently used controls. Both situations will make the user tired, the first because excessive concentration is required and the second because excessive mouse movement is required. • Make the interface intuitive and familiar to use — Try to make it possible for users to figure out how to perform a task without having to be taught. Few users will be totally familiar with your interface, so you are guaranteed that at some time they will come across something unfamiliar. If this happens early in the learning process and the user cannot overcome his lack of knowledge, he may choose not to use your application. On the other hand, if you provide users with an intuitive interface, they will learn how to use it in less time and experience the more advanced capabilities of your application sooner. This is important when a user is trying to identify how powerful your application is and whether or not it is suitable for his needs. An additional consideration is to ensure that tasks in your interface are logically sequenced; in other words, your interface should function in an order that makes sense to the user. This will help make the user feel comfortable with your application. • Keep the interface friendly — If you provide the user with a friendly interface, he won’t mind spending time learning and using it. If the user spends more time doing something, he will become more accomplished at it. A willingness to spend time using an interface that is familiar and intuitive will affect the learning curve of your application, allowing productive use in as short a time as possible. • Provide the user with feedback — Providing feedback to the user can help build his confidence and reassure him of what he is doing. It can also help keep the user’s interest when mundane or long tasks are being carried out. This is a very important facet of any interface, and you should endeavor to provide feedback that is as useful and accurate as possible. Feedback can take many forms, some of which are taken for granted, such as a button that looks pressed when it is clicked. Details such as these should not be considered optional. At a more fundamental level, your whole interface is feedback for the user. By adding extra feedback, you simply enhance what the user already experiences. In some cases, additional feedback may be 75 essential, such as when the user has some form of disability (the subject of the next point). • Make your interface as accessible as possible — This means providing varied types of feedback and varied forms of input to meet the needs of users who may have difficulty with normal approaches. For example, you could provide additional audio feedback for users with impaired sight, or you could provide speech recognition–driven input for users who have difficulty manipulating the standard input devices. • Provide help — Sometimes a user will get stuck. To cope with this, you can do two things: Provide useful documentation and provide support. You should always provide some form of documentation for your application, as either online help or printed documentation. If possible, you should also provide some form of support. The kind of support you provide can range from simple email-based support to 24-hour manned support, either telephone-based or on-site. Providing at least email-based support should be considered mandatory. • Allow customization — Let the user customize the interface to his liking. Simple things such as choice of color can have a significant effect on whether a user likes an interface. The use of system colors, such as clMenu (for menus), can help your interface take on an appearance the user likes. But customization is not just letting the user move things around so the interface looks good. It is about allowing the user to access functionality that he uses frequently in a way that is most convenient for him. Not everyone will use your application in the same way. Allowing a user to modify the interface to reflect his normal usage patterns can help make your application become the user’s preferred tool. • Provide an escape route for the user — Even the most experienced user will take a misstep. Provide some form of escape to let him backtrack. In its most common form, this means providing an undo function, which is now almost a standard feature of all editing-type interfaces. • Inform the user of errors in an understandable way — No matter how foolproof you might think your interface is, some user somewhere will cause an error to occur. When that happens, the normal response is to display a message box to the user indicating what the error is and how to avoid it. Sometimes you may even give the user a second chance to complete the operation that caused the error. One of the single most annoying things to do in this situation is to display a message box that provides only a cryptic message that even the developer may not understand. From the user’s point of view, the interface will appear broken, and this is certainly not a comfortable feeling. You should therefore endeavor to provide constructive information regarding any errors that may 76 arise. In fact, if possible, try to prevent the error from affecting the user at all by catching it when it occurs. A problem with all this is that it is very difficult to identify all possible sources of errors and either insulate the user from the error or provide constructive feedback about the error. Good error handling in an interface is often an area of continual improvement. • Use symbols, images, and color to make the interface more interesting and easier to navigate — Symbols make an interface quicker to navigate because it is quicker to recognize a symbol than it is to read text. A common approach to using symbols is to provide them alongside text. Users will initially rely on the text descriptions to aid navigation, but as familiarity with the related symbols grows, the user can use them instead. Symbols must be consistent throughout an interface to achieve the maximum benefit, and they should also be carefully designed so that their meaning is obvious. Images can also be used to enhance an interface, either as graphical elements that provide a function or simply to make the interface interesting. Careful thought is required when adding images. Color can be used to group related controls, provide visual separation, or carry additional information, such as syntax highlighting in an IDE. • Make use of all input devices — Different users like to do things in different ways. Some find different methods of input more convenient than others. Your interface should respond to both pointing input (such as the mouse) and keyboard input. You should also try to adhere to common conventions. For example, if your interface provides a copy function, a user will assume that he can use the keyboard to perform the copy and will expect that the keyboard shortcut is Ctrl+C. Vocabulary to adhere – to obey sth; to hold or follow a set of principles, course of actions to be aware of – to have knowledge of sb/sth; to realize sth to enable – to make sth possible to distract – to take sb’s attention away from sth excessive – greater than what is normal or necessary; extreme to overcome – to succeed in dealing with or controlling sth accomplished – skilled mundane – ordinary and with little excitement facet – a particular part or aspect of sth to endeavor – to try to do sth to enhance – to increase or improve further the good quality, value or status of sb/sth 77 impaired - damaged or made weaker stuck – unable to find an answer or solution to sth cryptic – with a meaning that is hidden or not easily understood to insulate – to protect sb/sth from unpleasant effect of sth IDE – Integrating Development Environment Task 3. Use the table below to note down the basic principles and guidelines to design a user interface and the reason for each principle. Principle Reason 1. ___________________________ 2. ___________________________ 3. ___________________________ 4. ___________________________ 5. ___________________________ 6. ___________________________ 7. ___________________________ 8. ___________________________ 9. ___________________________ 10. __________________________ 11. __________________________ 12. __________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ Task 4. Decide whether the following statements are true (T) or false (F) in relation to the information in the text. If you think a statement is false, change it to make it true. 1. 2. 3. 4. 5. When designing a user interface, you should follow some basic principles and guidelines in a particular order. The interface should be simple, so that the user can navigate without being tired. If the interface is intuitive and tasks are logically sequenced, it will make sense to the user. Feedback is one of the most important features as it makes the user more confident and interested in what he is doing. When designing an interface, you shouldn’t forget about people with limitations of vision and mobility. 78 6. If you want your application to become the user’s preferred tool, let him customize the interface to his liking. 7. An undo function is a standard feature for all interfaces. 8. When the user causes an error, the obvious response is to display a message box that provides a cryptic message to indicate what the error is and how to avoid it. 9. If you provide constructive feedback about errors, you can insulate the user from them. 10. The interface should respond to different input devices to be used by as many users as possible. Task 5. Choose the correct word to complete each sentence. You may have to change some words slightly. 1. user, usage, use, useful, useless a. When designing a __________ interface, there are some basic principles and guidelines that you should adhere to. b. The quality ranged from acceptable to worse than __________. c. Computer __________ is predicted to increase. d. You should always provide __________ documentation and support for your application. e. Have you ever __________ this software before? 2. variable, vary, various, variety, varying a. New techniques were introduced with __________ degrees of success. b. With so many __________ to consider, it is difficult to calculate the cost. c. There is a wide __________ of patterns to choose from. d. She took the job of a computer operator for __________ reasons e. The real strength of word processors is their ability to edit and format documents, and they __________ in the strength and variety of these functions. 3. customization, customer, customized, customize a. You can __________ the software in several ways. b. But __________ is not just letting the user move things around so the interface looks good. 79 c. d. XML is extensible because it lets website developers create their own set of __________ tags for documents. They know me – I’m a regular __________. 4. access (v), access (n), accessible a. These documents are not __________ to the public. b. Each record must obviously have a unique identifier so that it can be __________ in the database. c. For __________ a server, basic PCs already suffice. d. You need a password to get __________ to the computer system. 5. design (v), design (n), designer a. This course is primarily __________ as an introduction to the subject b. Graphics can be developed for a variety of uses including presentations, desktop publishing, illustrations, architectural __________ and detailed engineering drawings. c. In cooperative environments, several __________ might work on the same project. d. XML is a set of rules for __________ text formats. Language work Phrasal Verbs A phrasal verb is a verb + preposition combination. For example, look up, take on, rely on. Phrasal verbs are common in informal, spoken English. Sometimes they have a more formal one word equivalent, for example, work out = determine. Often phrasal verbs have two meanings. One we can work out from the meaning of the two words separately: e.g. She looked up at the roof. A special meaning which does not easily relate to the separate meanings of the words: e.g. She looked up a word in the dictionary. 80 Task 6. Look back in the text, find words in italics and guess the meaning of these phrasal verbs in your own language: 1. 2. 3. 4. to figure sb/sth out to come across sb/sth to carry sth out to take sb/sth for granted 5. 6. 7. 8. to cope with sth to take on sth to rely on sb/sth to respond to sth Task 7. Match each of the phrasal verbs above with the expression that has a similar meaning: a) b) c) d) to react quickly or favourably to begin to have a particular characteristic, quality or appearance to understand sth/sb by thinking about them/it to be so familiar with sb/sth that one no longer appreciates their full value e) to need or to be dependent on sb/sth f) to do sth as required or specified; to fulfil sth g) to meet or find sb/sth by chance h) to have the capacity to deal with sth successfully Task 8. Complete the sentences using a suitable phrasal verb from the list given. Use the correct form of the verb each time: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. There was too much work for our computer …… . … you …… what’s wrong with your printer? Nowadays we … increasingly … computers to regulate the flow of traffic in the town. These insects can …… the colour of their backgrounds, so that their enemies can’t see them. We all have certain duties and jobs …… . Yesterday she …… a computer manual in a drawer. Why … you … it … that you will fail? The mechanism … well … the controls. Extensive tests …… on the patient. I can't …… how to do this. She seemed ……. that I would go with her to the computer exhibition. He wasn't able …… the stresses and strains of the job. His voice …… a more serious tone. These days we … heavily … computers to organize our work 81 15. You can rely on him …… a challenge. 16. The instructions …… (not) because of a syntax error. Speaking Task 9. Work in pairs using the information in the text above. Student A: You are interested in installing software for your PC. Describe your machine to the salesperson and ask about the various options available, prices, etc. Student B: You work for a company that sells hardware and software. Find out what your customer wants. Give him information about advantages of your operating system (more particularly about user interface) and try to persuade the customer to buy one of your products. Writing Task 10. Work in pairs. You manage a company specializing in software. Prepare a leaflet to inform companies of the potential benefits of using your operating system (especially about user interface). Invite them to contact you for a free consultation. Task 11. Write a summary of the text. You should aim to limit your summary to about 200 words. Start by underlining the important ideas in the text. Try, where possible, to combine more than one idea in each sentence. 82 Unit 11. Web Page Design Warm-up Task 1. Work in pairs and discuss the following questions: 1. 2. 3. 4. Why do people have personal websites? Have you visited anyone’s personal home page? What was it like? What sites do you usually surve? What things don’t you like or annoy you about websites. Make a list. Speaking Task 2. Look at the Top 10 List of Web page annoyances. Which ones are similar to the annoyances you talked about in Task 1? Why are they annoying? Top 10 List of Web Page Annoyances Easy navigation and usability are one of the most important aspects of creating a "user friendly" website. However, there are still a "plethora" of web-sites out there that are, to be politically correct, "functionally challenged." Does your website keep people captivated, or does it send them fleeing as soon as they get to the first page? Do you offend your visitors with the following annoyances? 1. 2. 3. 4. Music or any voice recording that automatically plays when you enter a site, without giving the option of turning it off. A page full of dead links and constant "Page Not Found" error messages. Solid blocks of text with no breaks between paragraphs. People not only want their information quick, but they also want to read it in smaller, ‘bit size’ portion of content. Pop-up ads – the horrible advertisement that suddenly appear. 83 5. Bad design – too many buttons and links on different parts of the page are confusing and make it too hard to navigate the site. 6. Blinking fonts – brightly-coloured texts are difficult to read, but fonts that blink on and off? 7. Flash – these animations are good if they download quickly, but make them relevant to the website, and not just there to make the site look pretty. 8. Cursing or using worn out phrases – it maybe an excellent marketing headline, but it’s a total turn-off. 9. Counters – it’s not interesting to know that you’re visitor number 365,765,014. 10. Downloading plug-ins – the little program that you have to download to get an audio or video message before you can enter the site. Listening Task 3. You are going to hear an interview with Nathan Ward, a web designer, describing what makes a good website. Listen to the first part of the interview and answer the following questions. 1. 2. 3. 4. 5. 6. Why do people want websites? What kind of information is distributed free? What sort of clients is a website particularly useful for? What is the first thing Nathan Ward asks from a client? What danger might a web designer face? What are the essential points to be discussed? Task 4. Listen to the second part of the interview and complete the sentences below. 1. 2. 3. 4. The first basic principle is that there should never be __________ ____________________. The second principle is to ______________________________ that have to be taken from the home page to any other page. The third principle is not ____________________ to scroll through on one page. The more multimedia features you have, the more time ______________________________. 84 5. 6. 7. Another aspect of designing pages is to ____________________ __________. It’s a big strength to _____________________________. Your website should have on the front page __________ _____________________ to attract the reader. Reading Task 5. Before reading the text, try to match the following terms with their definitions: 1. Metalanguage 2. Entity 3. Character 4. Markup 5. XML processor 6. Parse a) an item that has data stored with it b) a language that is used for describing the structure of other languages c) a software module that is used to read XML documents and provide access to their content and structure d) to separate a high-level programming language statement into parts that will be processed as individual units when it is converted into machine code e) a method of adding information to the text indicating the logical components of a document, or instructions for layout of the text on the page f) a distinctive significant mark or feature Task 6. Read the text about XML and find answers to the following questions. 1. 2. 3. 4. 5. 6. 7. 8. 9. What is SGML? What languages were derived from SGML? What does XML stand for? What is meant by the term ‘extensible’? What is a metalanguage? Name two metalanguages. What is XML intended for? Is it possible to use XML in metadata applications? What is the initial purpose of the language? What do entities contain? What is used to provide access to XML documents? What is the connection between the two modules mentioned in the text? 85 XML: Basic Concepts Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language. By construction, XML documents are conforming SGML documents. It is called extensible because it is not a fixed format like HTML (a single, predefined markup language). Instead, XML is actually a `metalanguage' - a language for describing other languages - which lets you design your own customized markup languages for limitless different types of documents. XML can do this because it's written in SGML, the international standard metalanguage for text markup systems (ISO 8879). XML is primarily intended to meet the requirements of large-scale Web content providers for industry-specific markup, vendor-neutral data exchange, media-independent publishing, one-on-one marketing, workflow management in collaborative authoring environments, and the processing of Web documents by intelligent clients. It is also expected to find use in certain metadata applications. XML is fully internationalized for both European and Asian languages, with all conforming processors required to support the Unicode character set in both its UTF-8 and UTF-16 encodings. The language is designed for the quickest possible client-side processing consistent with its primary purpose as an electronic publishing and data interchange format. XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form the character data in the document, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure. A software module called an XML processor is used to read XML documents and provide access to their content and structure. It is assumed that an XML processor is doing its work on behalf of another module, called the application. This specification describes the required behavior of an XML processor in terms of how it must read XML data and the information it must provide to the application. This summary in 10 points attempts to capture enough of the basic concepts. 86 Language work The Passive Passive are very common in technical writing where we are more interested in facts, processes, and events than in people. We form the passive by using the appropriate tense of the verb to be followed by the past participle of the verb we are using. For example: PROLOG were designed for research into Artificial Intelligence. Present Perfect: Computers and microchips have become part of our everyday lives: We visit shops and offices which have been designed with the help of computers, we read magazines which have been produced on computers. Past Perfect: By this time Microsoft made its operating system Windows 95, graphic user interface had widely been used by Macintosh. Present Continuous: BASIC enables the user to interact with the program while it is being executed, which means that data can be input while the program is running. Past Continuous: All computers were being brought to a virtual standstill by the mysterious bug. Future Simple: If the market for possible computers grows, prices will be reduced. Future Perfect: By the year 2030 human labour in industry will have been replaced by robots. Active 1. The CPU processes instructions. (simple present) 2. Charles Babbage invented the computer. (simple past) Passive 1. Instructions are processed by the CPU. (simple present) 2. The computer was invented by Charles Babbage. (simple past) Passive verb forms: Present Simple: When a particular program is run, the data is processed by the computer very rapidly. Past Simple: In the 1970s, new languages such as LISP and Task 7. Rewrite the following sentences using the Passive. 1. 2. 3. 4. Last Thursday we appointed a new system analyst. Portable PCs will be replacing desktop PCs in a few years time. They have fully computerized the factory. Smith Ltd is supplying our company with computers. 87 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Professor Niklaus Wirth and his colleagues developed the Pascal language. No-one has seen the Senior Programmer since the day of the exhibition. They program the computer to warn users before it deletes information. They are installing the new computer system next month. The computer didn’t carry out the instructions because of a syntax error. We’ll complete the testing of the new computer program by next week. Computer Services Engineer Technician has been restoring the data for several hours. She offered me the job as a hardware engineer but I refused it. We use computers to process our sales information. Local businesses have provided technical support. The CPU processes instructions. Governments can take measures against computer crime. Software manufactures will have made hundreds of new programs by this time next year. Scientists may discover new electronic components. Task 8. Here is the beginning of a report of an experiment. Rewrite it, putting verbs in the passive where appropriate and making any other necessary changes. I conducted the test in the college library to minimize noise. I took the students out of their normal lessons and I tested them in groups of four. I carried out all the tests in January 1996. The test consisted of two components. First, I showed the students a design (I presented it in Chapter 3) and I asked them to describe what they saw. I tape recorded all their answers. I then gave them a set of anagrams (words with jumbled letters) which I instructed them to solve in as short time as possible. I remained in the room while the students did this… Task 9. Fill in the gaps in the following sentences using the appropriate form of the verbs in brackets. 1. 2. The first digital computer …… (build) by the University of Pennsylvania in 1946. Instructions written in a high-level language …… (transform) into machine code. 88 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. The operating system is always present when a computer …… (use). The contractor who had developed a computerized circulation system inserted a logic bomb that would disable the system on a certain date unless the contractor …… (pay). All computer languages must …… (translate) into binary commands. A new version of TurboPascal …… (just/release). In the next century, computers …… (program) in natural languages like English or French. All the activities of the computer system …… (coordinate) by the central processing unit. By 2020, new technology …… (revolutionize) communications. Previously those business presenters who wanted to make an impression handed round copies of reports that …… (professionally/ produced). During that period, enormous advances …… (make) in computer technology. In some modern systems information ….. (hold) in optical disks. Software can …… (hold) in the memory of the computer or …… (record) on floppy disk. Microsoft …… (find) on the basis of the development of MS/DOS. As the MT systems designed for diffusion purposes are computationally very heavy, they …… (develop) on mainframes. The interface is called WIMP: Window, Icon, Mouse and Pointer and software products for the Macintosh …… (design) to take full advantage of its features using this interface. Task 10. Read the texts and match them with the headings below. 1. 2. 3. 4. XML is text, but isn’t meant to be read XML is for structuring data XML is verbose by design XML looks a bit like HTML a) _______________ Structured data includes things like spreadsheets, address books, configuration parameters, financial transactions, and technical drawings. XML is a set of rules (you may also think of them as guidelines or conventions) for designing text formats that let you structure your data. 89 XML is not a programming language, and you don't have to be a programmer to use it or learn it. XML makes it easy for a computer to generate data, read data, and ensure that the data structure is unambiguous. XML avoids common pitfalls in language design: it is extensible, platformindependent, and it supports internationalization and localization. XML is fully Unicode-compliant. b) _______________ Like HTML, XML makes use of tags (words bracketed by '<' and '>') and attributes (of the form name="value"). While HTML specifies what each tag and attribute means, and often how the text between them will look in a browser, XML uses the tags only to delimit pieces of data, and leaves the interpretation of the data completely to the application that reads it. In other words, if you see "<p>" in an XML file, do not assume it is a paragraph. Depending on the context, it may be a price, a parameter, a person, a p... (and who says it has to be a word with a "p"?). c) _______________ Programs that produce spreadsheets, address books, and other structured data often store that data on disk, using either a binary or text format. One advantage of a text format is that it allows people, if necessary, to look at the data without the program that produced it; in a pinch, you can read a text format with your favorite text editor. Text formats also allow developers to more easily debug applications. Like HTML, XML files are text files that people shouldn't have to read, but may when the need arises. Compared to HTML, the rules for XML files allow fewer variations. A forgotten tag, or an attribute without quotes makes an XML file unusable, while in HTML such practice is often explicitly allowed. The official XML specification forbids applications from trying to second-guess the creator of a broken XML file; if the file is broken, an application has to stop right there and report an error. d) _______________ Since XML is a text format and it uses tags to delimit the data, XML files are nearly always larger than comparable binary formats. That was a conscious decision by the designers of XML. The advantages of a text format are evident, and the disadvantages can usually be compensated at a different level. Disk space is less expensive than it used to be, and compression programs like zip and gzip can compress files very well and very fast. In addition, communication protocols such as modem protocols and HTTP/1.1, the core protocol of the Web, can compress data on the fly, saving bandwidth as effectively as a binary format. 90 Task 11. Read the text again and find answers to these questions: 1. 2. 3. 4. 5. What is structured data? Do you need to be a programmer to use XML? Why? What are the basic character features of XML? What are the similarities and differences between XML and HTML? What are pros and cons of using text format? Task 12. Look back in the text and find words or phrases which mean the following: 1. to put sth together in an organized way (§A) 2. clear in meaning; that can only be understood in one way (§A) 3. a danger or difficulty, especially one that is hidden or not obvious at first (§A) 4. to decide what the limits of sth are (§B) 5. the particular way in which sth is understood or explained (§B) 6. to think or accept that sth is true but without having proof of it (§B) 7. used to say that sth could be done or used in a particular situation if it is really necessary (§C) 8. clearly and exactly (§C) 9. similar to sb/sth else and able to be compared (§C) 10. using or containing more words than are needed (§D) 11. deliberate or controlled (§D) 12. to provide sth good to balance/reduce the bad effects of damage, loss, etc. (§D) Task 13. Read the text below. Use the words in the box to the right of the text, listed 1-12, to form a word that fits in the same numbered space in the text. There is an example (0). XML is a family of technologies e. g. 0) specification XML 1.0 is the 0) …… that defines what "tags" and "attributes" are. Beyond XML 1.0, "the XML family" is a 1) …… set of modules that offer 2) …… services to accomplish important and 3) …… demanded tasks. XLink 4) …… a standard way to add hyperlinks to an 91 0) SPECIFIC 1) GROWTH 2) USE XML file. XPointer is a syntax in 5) …… for pointing to parts of an XML document.An XPointer is a bit like a URL, but instead of pointing to documents on the Web, it points to pieces of data inside an XML file. CSS, the style sheet language, is 6) …… to XML as it is to HTML. XSL is the advanced language for 7) …… style sheets. It is based on XSLT, a 8) …… language used for rearranging, adding and deleting tags and attributes. The DOM is a standard set of function calls for 9) …… XML (and HTML) files from a 10) …… language. XML Schemas 1 and 2 help developers to 11) …… define the structures of their own XMLbased formats. There are several more modules and tools 12) …… or under development. Keep an eye on W3C's technical reports page. 3) FREQUENT 4) DESCRIPTIVE 5) DEVELOPER 6) APPLY 7) EXPRESSIVE 8) TRANSFORM 9) MANIPULATION 10) PROGRAMMER 11) PRECISE 12) AVAILABILITY Speaking Task 14. Work in pairs and both look at the pictures on pages 109 and 110. 1. 2. Student A: You should talk about the pictures on page 109. They show different types of user interface. You should a) describe common features of user interfaces, and b) comment on the basic principles to design a user interface. You have about one minute. Student B: When Student A has finished, comment on what he/she has said. Say if you agree or disagree. Student B: You should talk about the pictures on page 110. They show different websites. a) compare and contrast them, and b) comment on the basic principles to design a website. What features make a good website? Talk about features that annoy users. You have about one minute. Student A: When Student B has finished, comment on what he/she has said. Say if you agree or disagree. 92 Unit 12. Extensible Markup Language Warm-up Task 1. Read the explanations and write the term from the text below in the crossword puzzle. 1. a set of unambiguous rules to solve a problem in a definite number of steps 2. scientific knowledge used in practical ways in industry, for example in designing new machines 3. a unit of measurement that is officially used; an official rule used when producing sth 4. a person whose job is to decide how things such as tools, machines, etc. will look or work by making drawings, plans or patterns 5. the rules that state how words and phrases must be used in a computer language 93 6. a way of performing a task that usually does not change each time the task is performed 7. a set of instructions that can be understood by a computer and perform a certain task or function 8. a store of facts and information held in a computer 9. a program that is used by a programmer to write other programs 10. the help offered to the user by a company who makes or sells a computer Reading Task 2. Read the texts and match them with the headings below. 1. 2. 3. 4. 5. XML is the basis for RDF and the Semantic Web XML is modular XML is license-free, platform-independent and well-supported XML is new, but not that new XML leads HTML to XHTML a) _______________ Development of XML started in 1996 and it has been a W3C Recommendation since February 1998, which may make you suspect that this is rather immature technology. In fact, the technology isn't very new. Before XML there was SGML, developed in the early '80s, an ISO standard since 1986, and widely used for large documentation projects. The development of HTML started in 1990. The designers of XML simply took the best parts of SGML, guided by the experience with HTML, and produced something that is no less powerful than SGML, and vastly more regular and simple to use. Some evolutions, however, are hard to distinguish from revolutions... And it must be said that while SGML is mostly used for technical documentation and much less for other kinds of data, with XML it is exactly the opposite. b) _______________ There is an important XML application that is a document format: W3C's XHTML, the successor to HTML. XHTML has many of the same elements 94 as HTML. The syntax has been changed slightly to conform to the rules of XML. A format that is "XML-based" inherits the syntax from XML and restricts it in certain ways (e.g, XHTML allows "<p>", but not "<r>"); it also adds meaning to that syntax (XHTML says that "<p>" stands for "paragraph", and not for "price", "person", or anything else). c) _______________ XML allows you to define a new document format by combining and reusing other formats. Since two formats developed independently may have elements or attributes with the same name, care must be taken when combining those formats (does "<p>" mean "paragraph" from this format or "person" from that one?). To eliminate name confusion when combining formats, XML provides a namespace mechanism. XSL and RDF are good examples of XML-based formats that use namespaces. XML Schema is designed to mirror this support for modularity at the level of defining XML document structures, by making it easy to combine two schemas to produce a third which covers a merged document structure. d) _______________ W3C's Resource Description Framework (RDF) is an XML text format that supports resource description and metadata applications, such as music playlists, photo collections, and bibliographies. For example, RDF might let you identify people in a Web photo album using information from a personal contact list; then your mail client could automatically start a message to those people stating that their photos are on the Web. Just as HTML integrated documents, images, menu systems, and forms applications to launch the original Web, RDF provides tools to integrate even more, to make the Web a little bit more into a Semantic Web. Just like people need to have agreement on the meanings of the words they employ in their communication, computers need mechanisms for agreeing on the meanings of terms in order to communicate effectively. Formal descriptions of terms in a certain area (shopping or manufacturing, for example) are called ontologies and are a necessary part of the Semantic Web. RDF, ontologies, and the representation of meaning so that computers can help people do work are all topics of the Semantic Web Activity. e) _______________ By choosing XML as the basis for a project, you gain access to a large and growing community of tools (one of which may already do what you need!) and engineers experienced in the technology. Opting for XML is a bit like choosing SQL for databases: you still have to build your own database and 95 your own programs and procedures that manipulate it, but there are many tools available and many people who can help you. And since XML is license-free, you can build your own software around it without paying anybody anything. The large and growing support means that you are also not tied to a single vendor. XML isn't always the best solution, but it is always worth considering. Task 3. Decide whether the following statements are true (T) or false (F) in relation to the information in the text. If you think a statement is false, change it to make it true. 1. 2. 3. 4. 5. 6. 7. 8. XML is an immature technology. SGML is a precursor of XML. XML is hardly ever used for technical documentation. Document format is the major application of HTML. One should be careful when combining formats because of name confusion. RDF stands for Research Description Framework. There must be mechanisms to agree on the meaning of terms for computers to interact effectively. You have to pay money to use XML. Task 4. Look back at the text and find the English equivalents for: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. новая технология (§ A) преемник чего/кого-либо (§ B) подчиняться/ соответствовать правилам чего-либо (§ B) наследовать; перенять что-либо (§ B) исключать путаницу по совпадению имен (§ C) механизм пространства имен (§ C) отражать/показывать поддержку модульности (§ C) совмещенная структура документа (§ C) структура/основа описания ресурсов (§ D) использование метаданных (§ D) запускать первоначальный Web (§ D) применять/ употреблять в общении (§ D) растущая группа инструментальных средств (§ E) опытный/ сведущий в чем-либо (§ E) 96 Language work Gerunds 5. We can use the –ing form of the verb as a noun. It can be the subject, object or complement of a sentence. For example: 1. Opting for XML is a bit like choosing SQL for databases. 2. The operating system starts running the user interface as soon as the PC is switched on. 3. His favourite pastime is playing computer games. The –ing form is also used after prepositions. This include to when it is a preposition and not part of the infinitive. For example: 4. You can build your own software around it without paying anybody anything. You gain access to a large and growing community of tools and engineers experienced in the technology by choosing XML as the basis for a project. We can use the – ing form after the certain expressions. For example: 6. There is nothing you can do about the situation, so it’s no use worrying about it. 7. There is no point in having a computer if you never use it. 8. XML isn't always the best solution, but it is always worth considering. 9. I had difficulty in writing this program. Task 5. Rewrite each of these sentences like this: An important function of the operating system is to manage the computer’s resources. Managing the computer’s resources is an important function of the operating system. 1. 2. 3. 4. One task of the supervisor program is to load into memory nonresident program as required. The role of the operating system is to communicate directly with the hardware. One of the key functions of the operating system is to establish a user interface. An additional role is to provide services for application software. 97 5. 6. 7. 8. 9. Part of the work of mainframe operating system is to support multiple programs and users. The task in most cases is to facilitate interaction between a single user and a PC. One of the most important functions of a computer is to process large amounts of data quickly. The main reason for installing more memory is to allow the computer to process data faster. The last step in computer program development is to complete the documentation for the program. Task 6. Complete the following sentences with the correct form of the verb: infinitive or –ing form. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Do not switch off without (close down) your PC. You can find information on the Internet by (use) a search engine. I would like (upgrade) my computer. How old were you when you learn (use) a computer? She had no difficulty (get) a job. XML Schema is designed (mirror) the support for modularity by (make) it easy to combine two schemas to produce a third which covers a merged document structure. You need not learn how to (program) in HTML before (design) webpages. How do you make this machine (work)? – I’m not sure. Try (press) that button and see what happens. Since two formats may have elements or attributes with the same name, care must be taken when (combine) those formats. I look forward to (input) data by voice instead of (use) a keyboard. Before (print) a document, the user should decide on the layout. It would cost too much money to repair this printer. It is not worth (repair). XML allows you to define a new document format by (combine) and (reuse) other formats. The hard disk needs (repaire). The speed of a microprocessor is important in (process) information. CAD programs are very fast at (perform) drawing functions. 98 Speaking Task 7. You are planning to create webpages for a personal website. Work in pairs and discuss all pros and cons of using XML. What features make a good website? You can discuss the following points: 1. 2. 3. 4. 5. 6. 7. Design Navigation Ease of use Accuracy Up to date Helpful graphics Compatibility Translation Task 8. Translate the text into English. XML - это язык разметки, описывающий целый класс объектов данных, называемых XMLдокументами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, у разработчиков появляется уникальная возможность определять собственные команды, позволяющие им наиболее эффективно определять данные, содержащиеся в документе. Автор документа создает его структуру, строит необходимые связи между элементами, используя те команды, которые удовлетворяют его требованиям, и добивается такого типа 99 разметки, которое необходимо ему для выполнения операций просмотра, поиска, анализа документа. Еще одним из очевидных достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации. XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. 100 Pairwork: Student A Java Java is a high-level language which has been developed specifically for the Web and is well suited to networked applications. It is based on C++ and was originally developed by Sun Microsystems in the mid-1990s. Java is widely used for developing interactive applications for the Internet. Ada Ada (named after Countess Ada Lovelace - one of the first programmers) was developed from the foundation of Pascal, and is primarily used in the defense industry for developing weapons systems and in industrial environments for controlling real-time systems and automation. Ada is very highly structured, which forces programmers to use a standard procedural approach for program design. This programming language is still primarily used in the defense industry, with its larger computer systems. Because of its highly structured approach, however, it is gaining popularity in other areas. Logo It is an easy-to-use language designed for use in schools to encourage children to experiment with programming. Logo is flexible – that is, it can do maths, make lists, construct graphs, etc. Also, its drawing capabilities allow children to construct simple graphics programs. LISP Stands for LISt Processor; LISP is designed to process nonnumeric data – that is, symbols such as characters or words. It is primarily used for artificial intelligence research and the development of expert systems. It is also used for some commercial applications, such as databases. LISP has not become very popular on microcomputers yet, but that may change as the hardware becomes increasingly sophisticated and thus better able to handle the processing demands of the language. FORTRAN Stands for FORmula TRANslator; FORTRAN was designed by scientists in 1954 and is oriented toward manipulating formulas for scientific, mathematical, and engineering problem-solving applications. FORTRAN has gone through several stages of standardized revision since its creation, keeping it up-to-date with advances in programming techniques and hardware development. HTML Stands for HyperText Markup Language; HTML is used to create hypertext documents that can be displayed on the Web. HTML codes control the use of fonts and images on a webpage and specify the links to 101 other Internet sites. HTML files are viewed with a client program called a ‘browser’. It is a language that is all about the presentation of your information, not what the actual data is. You can, therefore, say that HTML is a presentation language. Perl Its name comes from Practical Report and Extraction Language. It first appeared in 1987 as a Unix-based tool for producing reports but is now widely used for creating interactive webpages. Delphi It is similar to Visual Basic. It is also a programming environment for developing programs for the Windows operating system. It has predefined objects that can be chosen from a toolbox. In Delphi, however, the code attached to the objects is written in a form of Pascal. You can think of Delphi as a kind of ‘Visual Pascal’. Like Visual Basic, it is often used for general purpose programs. 102 Pairwork: Student B Prolog Stands for PROgramming LOGic; Prolog is used to develop applications in the field of artificial intelligence. It is a popular tool for natural-language programming. XML Stands for eXtensible Markup Language; XML is a metalanguge for creating webpages with meaningful data that can be used by a variety of programs. In fact, because XML is an extensible language, you don’t even have to have a browser to interpret the page. Applications can parse the XML document and read the information without any human intervention. C++ C++ is an object-oriented superset of C which combines the best features of a structured high-level language and an assembly language – that is, it’s relatively easy to code and uses computer resources efficiently. C was originally designed to write systems software but is now considered a general-purpose language. Visual Basic BASIC stands for Beginners’ All-purpose Symbolic Instruction Code; Visual Basic is a simple-to-use language that has a graphical interface. It makes it particularly easy for an inexperienced programmer to create database programs. It is also used in educational and multimedia packages. Pascal Pascal, named after the French mathematician Blaise Pascal, was created in the late 1960s and early 1970s primarily to fill the need for a teaching vehicle that would encourage structured programming. It has algorithmic features designed for fast execution of the object program. It is often used in colleges and universities to teach programming. It is commonly used to write programs for a wide variety of applications, including programs for numeric scientific calculations, for business data processing, and for text editing, as well as to write various systems programs, including compilers. COBOL Stands for Common Business-Oriented Language; it is used for business applications such as accounting, inventory control, payroll, and banking systems. Initially developed in 1959 by a panel of government and business experts, COBOL was designed around the needs of common business reporting. It has been around for a long number of years but is still an important transaction-processing language used to process the records of large organisations on mainframe computers. 103 SQL Stands for Structured Query Language; it was introduced by Oracle Corp. in 1979. It is designed to instruct the computer to retrieve and manipulate database information and can be used to develop specific applications based on databases, such as database publishing and project management. It is also supports databases, which run on several computer systems. It allows various users on a LAN to access the same database at the same time. JavaScript It is a scripting language. It is powerful and easy to use. Scripts are small programs that can be used to perform simple tasks or tie other programs together. JavaScript is designed for use inside webpages. It can enable a webpage to respond to a mouse click or input on a form. It can also provide a way of moving through webpages and produce simple animation. 104 Visuals for Speaking Unit 3. Focus on Speaking Task 9 (page 25) Student A 105 Unit 3. Focus on Speaking Task 9 (page 25) Student B 106 107 A. Student A B. Unit 8. Focus on Speaking Task 9 (page 63) 108 A. Student B Unit 8. Focus on Speaking Task 9 (page 63) B. Unit 11. Focus on Speaking Task 14 (page 92) Student A A. B. 109 Unit 11. Focus on Speaking Task 14 (page 92) Student B A. B. 110 Progress Check 1 Units 1- 6 I. Choose the correct variant 1. The system analyst …… communicate the computer program requirements to the programmer. a) need b) must c) can 2. Iteration is the process of a computer …… a command or statement again and again until a result is obtained. a) execute b) executed c) executing 3. Page-description language uses tags …… the layout of a document. a) to define b) defining c) define 4. A program which processes images of documents is a …… . a) document processing image program b) process image document program c) document image processing program 5. You …… be an expert in hardware to become a programmer. a) needn’t b) mustn’t c) shouldn’t 6. A class is a template used …… multiple objects with similar features. a) create b) creating c) to create 7. …… is a feature that allows one interface to be used for a general class of actions. a) Polymorphism b) Encapsulation c) Inheritance 8. …… is a person who designs or modifies information systems to meet users’ requirements. a) IT engineer b) system analyst c) software developer 9. The program produced after the source program has been converted into machine code is referred to as an …… . a) linkage editor b) load module c) object program 111 10. There are only three necessary control structures needed to write programs in structured programming. Which of the following does not belong here? a) sequence b) compilation c) selection II. Read the text and fill in the gaps using the list of words below. Object Oriented Programming The object oriented programming 1) …… entails the development of active program units called objects, each of which contains 2) …… describing how that object should respond to various stimuli. These internal procedures are called 3) …… (or member functions in the C++ vernacular). The object oriented approach to a problem is to identify the objects involved and describe them and their associated methods as self-contained units. In turn, object oriented programming languages provide 4) …… for expressing these ideas. To simplify the description of objects with similar yet different characteristics, most object oriented languages allow one class to encompass the properties of another trough a system as 5) ……. The existence of a variety of objects with similar yet different characteristics leads to a phenomenon reminiscent of 6) ……, which is the use of a single symbol, such as +, for representing different operations depending on the type of its operands. Suppose that an object oriented 7) …… package consists of a variety of objects, each representing a shape (circle, rectangle, triangle, etc.). A 8) …… image consists of a collection of these objects. Each object knows its size, location, and colour as well as how to respond to 9) …… telling it, for example, to move to a new location or to draw itself on the monitor screen. To draw an image, we merely send a ‘draw yourself’ message to each object in the image. However, the routine used to draw an object varies according to the 10) …… of the object – drawing a squire is not the same process as drawing a circle. This customized interpretation of a message is known as 11) ……; the message is said to be polymorphic. Another 12) …… associated with object oriented programming is 13) ……, which refers to restricting access to an object’s internal 14) ……. To say that certain features of an object are encapsulated means that only the object itself is able to access them. Features that are encapsulated are 112 said to be private. Features that are 15) …… from outside the object are said to be public. a. b. c. d. e. polymorphism encapsulation inheritance characteristic overloading III. f. g. h. i. j. procedures accessible messages statements paradigm k. l. m. n. o. particular properties methods graphics shape Mark if the following definitions or explanations of the terms are correct (T) or not (F): 1. Structured programming is a programming technique that combines data, abstraction, inheritance, and dynamic type binding. 2. Object module is the program which is directly executable by the computer. 3. Assembly language is a human-readable representation of machinecode programs. 4. Inheritance is a key feature of object-oriented programming by which different objects can receive the same instructions but deal with them in different ways 5. Platform is a type of computer or program used as a standard for a particular computer system 6. Source program is a computer program written in a high-level language, designed to perform a specific function 7. Systems analyst is a person who designs or modifies information systems to meet users’ requirements. This includes investigating feasibility and cost-producing documentation and testing prototypes of the system. 8. Support is the help offered to a company by the user who makes or sells a computer 9. Selection is the control structure allowing choice among different directions 10. Flowchart is a kind of diagram used by programmers to show the logical steps in a program or by systems analysts to show logical steps in the design of a system IV. Read the text below. Use the words in the box to the right of the text, listed 1-10, to form a word that fits in the same numbered space in the text. 113 Structured Programming Back in the 1960s, computer programs were e. g. 0) assembly difficult to read. The primitive languages (FORTRAN and often even 0) …… languages) frequently used if and goto statements, 1) …… in 0) ASSEMBLE "spaghetti-like" code. Programs were 2) …… 1) RESULT networks of statements, where the 3) …… could 2) ESSENTIAL jump freely from one statement to another, using 3) EXECUTE 4) …… or unconditional jump statements. 4) CONDITION This situation led the entire 5) …… to use flow charts. 5) INDUSTRIAL The flow chart was a diagram which 6) …… 6) REPRESENT the program as a directed 7) …… that connected 7) GRAPHIC 8) …… sections of the code. The execution could 8) SEQUENCE branch at the if statements, or could jump to any other 9) USE section of the code, 9) …… the goto statement. Flow 10) PROGRAM charts helped 10) …… understand the logic of their code. V. Translate the text about object-oriented programming into Russian. You may use the dictionary if it is necessary. Object-oriented programming (OOP) One of the principal motivations for using OOP is to handle multimedia applications in which such diverse data types as sound and video can be packaged together into executable modules. Another is writing program code that’s more intuitive and reusable; in other words, code that shortens program-development time. Perhaps the key feature of OOP is encapsulation – bundling data and program instructions into modules called ‘objects’. Many industry observers feel that the encapsulation feature of OOP is the natural tool for complex applications in which speech and images are integrated with text and graphics. With moving images and voice built into the objects themselves, program developers avoid the sticky problem of deciding how each separate type of data is to be integrated and synchronized into a working whole. A second feature of OOP is inheritance. This allows OOP developers to define one class of objects and a specific instance of this class. Inheritance is a useful property in rapidly processing business data. For instance, consider a business that has a class called ‘Employees at the Dearborn Plant’ and a specific instance of this class, ‘Welders’. If employees at the Dearborn Plant are eligible for a specific benefits package, 114 welders automatically qualify for the package. If a welder named John Smith is later relocated from Dearborn to Birmingham, Alabama, where a different benefits package is available, revision is simple. An icon representing John Smith – such as John Smith’s face – can be selected on the screen and dragged with a mouse to an icon representing the Birmingham plant. He then automatically ‘inherits’ the Birmingham benefit package. 115 Progress Check 2 Units 7 - 12 I. Choose the correct variant 1. Most graphical user interfaces let you …… commands by selecting a choice from a menu. a) execute b) executing c) to execute 2. The instructions …… because of a syntax error. a) were not relied on b) were not taken on c) were not carried out 3. By the time Microsoft made its operating system Windows 95, graphic user interface … widely …by Macintosh. a) has been used b) had been used c) was used 4. XML isn't always the best solution, but it is always worth ……. a) to consider b) considering c) consider 5. If the market for possible computers grows, prices …… . a) would reduce b) will reduce c) will be reduced 6. Yesterday she …… a computer manual in a drawer. a) took for granted b) came across c) coped with 7. A distinctive significant mark or feature is called …… . a) character b) markup c) sign 8. The use of system colors can help your interface …… an appearance the user likes. a) rely on b) take on c) respond to 9. The data …… by Computer Services Engineer Technician for several hours. a) have been restored b) are being restored c) has been restored 116 10. There is nothing you can do about the situation, so it’s no use …… about it. a) to worry b) worrying c) worry 11. It would cost too much money …… this printer. a) to repair b) repair c) repairing 12. BASIC enables the user to interact with the program while it …… a) is being executed b) is executed c) has been executed II. Read the text and fill in the gaps using the list of words below. The Graphical User Interface Problem Graphical User Interfaces (GUIs) use icons, 1) ……, windows and other non-textual devices to enhance communication between 2) …… and the people who are using them. 3) ……, such as the mouse, are an integral part of the GUI. Such interfaces, as found on Macintoshes, PCs running Windows and OS/2 and almost all of the more 4) …… workstations, have proven to be a boon for many computer users including those with many types of 5) ……. Blind users, however, are an exception. For them, rather than improving access, the GUI has made computers less 6) …… than they were before. Screen reading programs for 7) …… computers are mature products which do a good job of automatically transcribing text from the screen into 8) …… or Braille. Similar screen access programs for Windows-based computers are still in the early stages of 9) …… and are not yet able to provide comparable performance or ease of use. Screen reading programs for Windows 3.1 took more than four years to develop. Soon after they became 10) ……, many businesses moved to Windows 95, requiring another lengthy round of development to catch up. While there are many 11) …… for translating text-based screens into alternative sound or tactile 12) ……, strategies for representing GUI screens are still quite primitive and difficult to use, and keeping up with GUI innovations is a never-ending cycle. The scope of the GUI problem for blind computer users increases as 13) …… become standard not only for computers, but for 14) …… of all sorts, video access to telephones, the Internet and interactive 15) ……. 117 a. b. c. d. e. f. g. h. III. successful systems cable television synthesized speech pull-down menus pointing devices representations GUI interfaces development i. j. k. l. m. n. o. appliances disabilities computers accessible available powerful text-based Mark if the following definitions or explanations of the terms are correct (T) or not (F): 1. Automated teller machine is a machine which you connect to your telephone to answer your calls and record any message left by the person calling. 2. Command line interface is a method of interaction with a computer whereby the user types specific commands in order to achieve his requirements. 3. Desktop is the main graphical user interface background screen that displays icons for other programs. 4. Database management system refers to software that allows the user to store, update and retrieve information held in a computer. 5. XML is a programming language that allows developers to create their own set of customized tags that identify the meaning and structure of data. 6. External schema concerns the way that the data is physically held. 7. Metalanguage is a language that is used for describing the structure of other languages 8. Pop-up menu is a list of choices that appear below a menu title on a display screen when the user clicks on the menu title using a mouse 9. XML processor is a software module that is used to read XML documents and provide access to their content and structure 10. SQL is a language used for searching databases. IV. Read the text below. Use the words in the box to the right of the text, listed 1-10, to form a word that fits in the same numbered space in the text. 118 A database is 1) …… to a data file in that it is a 2) ……place for data. Like a data file, a database does not 3) ……information 4) …… to a user; the user runs an application that accesses data from the database and presents it to the user in an 5) …… format. Database systems are more 6) …… than data files in that data is more highly 7) ……. In a well-designed database, there are no 8) …… pieces of data that the user or 9) …… must update at the same time. Related pieces of data are grouped 10) ……together in a single or record, and relationships can be defined between these structures and records. V. 1. SIMILARITY 2. STORE 3. PRESENTATION 4. DIRECTOR 5. UNDERSTAND 6. POWER 7. ORGANIZER 8. DUPLICATION 9. APPLY 10. STRUCTURAL Translate the text about XML into Russian. You may use the dictionary if it is necessary. XML Takes on HTML Standard Generalized Markup Language (SGML) is the language that spawned both HTML (HyperText Markup Language) and XML (eXtensible Markup Language). SGML is not a true language, it is a metalanguage, which is a language from which you can create other languages. In this case, it is the creation of a markup language (a system of encoded instructions for structuring and formatting electronic document elements). HTML is an application-specific derivation of SGML. It is a set of codes, generally used for webpages, that creates electronic documents according to rules established by SGML. HTML is a language that is all about the presentation of your information, not what the actual data is. You can, therefore, say that HTML is a presentation language. XML is a subset of SGML, but it is also, like SGML, a metalanguage. XML defines a specific method for creating text formats for data so that files are program independent, platform independent, and support internationalization (able to read different languages, etc.) In fact, because XML is an extensible language, you don’t even have to have a browser to interpret the page. Applications can parse the XML document and read the information without any human intervention. XML, unlike HTML, is concerned with the identity, meaning and structure of data. XML is extensible because it lets website developers create their own set of customized tags for documents. This ability to define 119 your own tags is the main feature of XML, and it is what gives developers more flexibility. XML will do to the Web and e-commerce what HTML originally did to the Internet. XML and its associated applications have the potential to blow the roof off the Internet and how we do business. 120 Listening Script Unit 1. Computer Programming. Task 2. The circle is a CONNECTOR symbol. It appears when two separate paths through a process come together. It is always empty. You don’t find any text, numbers, or symbols in it. Just the circle. The parallelogram is the INPUT or OUTPUT symbol. It looks like a rectangle with two sloping sides. We use it when data has to be input or output. It contains words like Input or Print. The ellipse is the START or STOP symbol. It looks like a rounded rectangle. It’s used at the beginning and end of a flowchart, so it will contain the word Start or the word Stop. The diamond shape is the DECISION symbol. It’s used whenever a decision has to be made. Often it contains comparison functions such as less than or greater than. It has a Yes or True branch at one corner and a No or False branch at another. The ordinary rectangle is the OPERATION or PROCESS symbol. It indicates the kind of operation. It will contain words like add, subtract, multiply, divide or make equal to. Unit 1. Computer Programming. Task 7. INTERVIEWER: Is programming quite stressful? COLIN: Very. But I’m often asked to fix something on the network. So that gives me a break. We never spend a whole day, 9 to 5, programming. It’s impossible. INTERVIEWER: Do you work on paper at all? COLIN: Yes, at the design stage it’s better to get as far away from computers as you can. We’ve got a canteen and we go through to the canteen with a pad of paper and cup of coffee and work it out. INTERVIEWER: You say ‘we’. Do you work as part of a team? COLIN: Yes, there’s myself and three developers, and two who work on graphics. Dante would have been impossible for one person to write. It took us six months to develop it properly. It was quite a good project because it was easy to divide up the work. There were the modules to do, the database design, and the database access. There was the client interface and the students interface so people were assigned to different sections. INTERVIEWER: How many computer languages do you normally work in? 121 COLIN: Normally? C plus plus, we’re using Active Server pages which involves HTML and JavaScript. You can use VB, Visual Basic, but if you use Visual Basic you’re tying yourself to Microsoft and we want anybody to be able to run our programs. And Dante was written in Delphi. INTERVIEWER: How do you keep up? Things are changing amazingly quickly. COLIN: Well, I subscribe to two magazines, PCPro and Byte. I also pick up Dr Dobb’s Journal when I can. Oh, and at work we subscribe to Microsoft Developer. We get two CDs from them four times a year. It’s basically an electronic library with manuals, articles, and everything you need. INTERVIEWER: This must take up your free time as well as work time. COLIN: Yeah, it does, but I enjoy it, especially at the end of the day when things are beginning to go well. I hate it when you’ve got to go home, because you might lose it the next day. Unit 2. Program Design. Task 10. Dictation. First of all, you have to understand exactly what the problem is, and define it clearly. This means you have to decide in a general way how to solve the problem. The next step is to design an algorithm, which is a step-by-step plan of instructions used to solve the problem. You do this in a flowchart. You use special symbols to show how the computer works through your program – where it makes decisions, where it starts and ends, and things like that. Then you translate the steps in the flowchart into instructions written in a computer language. You usually write these in a high-level language like BASIC or Pascal. You have to then use something called a compiler which translates the instructions into machine code, which is the only language understood by the processor. Once you’ve written your program you have to test it with sample data to see if there are any bugs or errors. Usually there are, so the program has to be cleared of them or ‘debugged’. And then last of all you have to write instructions explaining to people how to use it. A great program is not much use unless people know how to use it. Unit 3. Programming Languages. Task 4. Good day! Today I am going to talk about programming languages – in particular, those which are known as High Level Languages. 122 In this talk several programming languages will be named, Assembly Language, FORTRAN, COBOL, and BASIC. In each case the attributes of the language will be identified, advantages and disadvantages of each will be given and some typical uses of the languages will be suggested. Complete the worksheet as you listen. First we must understand the basic features of a computer program. A computer program is a sequence of instructions which are carried out one after the other. These instructions may cause data to be either input or output, carry out some arithmetic operation, control the sequence in which the instructions are obeyed, move data around the computer’s store, carry out comparisons or format the input or output. The instructions executed by the computer must be in a form called machine code. However, this form of coding is difficult to understand and so the computer scientists have developed languages which enable users to write their own programs in a form which is as far as possible independent of the computer they are using and may be ‘read’ by another programmer or user. Such languages are said to be high-level. Before discussing some high-level languages I will give an example of a low-level language. Most computers have a language which uses symbolic notation to represent machine code instructions. These languages, known as assemblers, are closely related to the machine language and the hardware of the computer. An assembly language is very efficient in term of execution time and memory requirements. However, it is machine dependent, requires a lot of instructions to carry out a given task and is more difficult to write, read and modify than a program written in a high-level language. Assembly languages are used when fast execution times are required. For example, when graphics are required in an interactive package such as a computer game. Let us now discuss three high level languages – one scientific, one business and one general purpose. The FORTRAN language developed by IBM in 1955 was designed to be used by mathematicians, scientists and engineers. The language is particular suitable for processing mathematical expressions. A single FORTRAN statement can cause many machine code commands to be executed and the program can be read by another user fairly easily. In its origin form it was not possible to write structured programs in FORTRAN but over the years the language has been developed and the form most commonly implemented today, FORTRAN-77, allows highly-structured programs to be written. 123 FORTRAN does not have the flexibility or speed of an assembly language in the manipulation of data characters. Nor is it suited to the type of applications required in a business environment. COBOL, the first language designed specifically for business, was introduced in 1959. COBOL statements are close to the written form of the first English language but with a very precisely defined set of words. It is self-documenting and machine independent. COBOL has very good filehandling capabilities and is easily understood by other programmers, enabling modifications to be made by someone other than the originator of the program. COBOL instructions are longer than the equivalent code in FORTRAN and the language is not suited to complicated mathematical expressions. The BASIC language was developed in 1965 for use in education. It is a language which can be learned quickly and students can write programs after only a short course of instructions. When micro-computers were introduced in the 1970s, nearly all manufacturers chose BASIC as the highlevel language provided with the computer and it is now probably the most widely used language in the world. Over the years the language has been extended and a modern BASIC will include extensive file-handling capabilities as well as a full set of mathematical and text functions. Recently versions of BASIC which encourage structured programming have become available. However, most of these extensions have been developed by manufacturers and so programs tend to be machine- or at least manufacturer-dependent. Unit 6. Object Oriented Programming. Task 10. Java is a Class based language that was originally designed for programming embedded systems. Because of this, the ideas of speed, platform independence, and run time safety are crucial in its design. In one of their early papers about the language, Java is described as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language. Sun acknowledges that this is quite a string of buzzwords, but in fact is that, for the most part, they aptly describe the language. In order to understand why Java is so interesting, let’s take a look at the languages features behind the buzzwords. Java is an object-oriented programming language. As a programmer, this means that you focus on the data in your application and methods that manipulate that data, rather than thinking strictly in terms of procedures. If you’re accustomed to procedure-based programming in C, you may find 124 that you need to change how you design your programs when you use Java. Once you see how powerful this new paradigm is, however, you’ll quickly adjust to it. In an object-oriented system, a class is a collection of data and methods that operate on that data. Taken together, the data and methods describe the state and behavior of an object. Classes are arranged in a hierarchy, so that a subclass can inherit behavior from its superclass. A class hierarchy always has a root class; this is a class with very general behavior. Java comes with an extensive set of classes, arranged in packages, that you can use in your programs. For example, Java provides classes that create graphical user interface components (the java.awt package), classes that handle input and output (the java.io package), and classes that support networking functionality (the java.net package). The Object class (in the java.lang package) serves as the root of the Java class hierarchy. Unlike C++, Java was designed to be object-oriented from the ground up. Most things in Java are objects; the primitive numeric, character, and Boolean types are the only exceptions. Strings are represented by objects in Java, as are other important language constructs like threads. A class is the basic unit of compilations and of execution in Java; all Java programs are classes. While Java is designed to look like C++, you’ll find that Java removes many of the complexities of that language. If you are a C++ programmer, you’ll want to study the object-oriented constructs in Java carefully. Although the syntax is often similar to C++, the behavior is not nearly so analogous. Java is an interpreted language: the Java compiler generates bytecodes for the Java Virtual Machine (JVM), rather than native machine code. To actually run a Java program, you use the Java interpreter to execute the compiled byte-codes. Because Java byte-codes are platform-independent, Java programs can run on any platform that the JVM (the interpreter and run-time system) has been ported to. One of the most highly touted aspects of Java is that it’s a secure language. This is especially important because of the distributed nature of Java. Without an assurance of security, you certainly wouldn’t want to download code from a random site on the Internet and let it run on you computer. Yet this is exactly what people do with Java applets every day. Java was designed with security in mind, and provides several layers of security controls that protect against malicious code, and allow users to comfortably run untrusted programs such as applets. At the lowest level, security goes hand-in-hand with robustness. As we’re already seen, Java programs cannot forge pointers to memory, or 125 overflow arrays, or read memory outside of the bounds of an array or string. These features are one of Java’s main defenses against malicious code. By totally disallowing any direct access to memory, an entire huge, messy class of security attacks is ruled out. The second line of defense against malicious code is the byte-code verification process that the Java interpreter performs on any untrusted code it loads. These verification steps ensure that the code is well-formed – that it doesn’t overflow or underflow the stack or contain illegal byte-codes, for example. If the byte-code verification step was skipped, inadvertently corrupted or maliciously crafted byte-codes might be able to take advantage of implementation weaknesses in a Java interpreter. Unit 7. Databases. Task 4. A database is an electronic filing system that allows you to keep files and records on a computer. The advantages of such a system are that a great deal of data and information can be stored, collected and manipulated automatically. Many of the labourious procedures often associated with card indexing and filing cabinet storage are thus eliminated. There are many different levels of program available. The easier-touse products emulate a card system and don’t require any specialist knowledge to set up and operate. At the other end of the scale are very comprehensive data managers that often form the basis of dedicated or customized packages sold by other software houses. Such programs often incorporate their own query language. This is used by the programmer to set up the package, but is invisible to the eventual end user. The ability to quickly scan stored information and produce reports, either to screen or print, is one of the main features of any database. For example, imagine a doctor wished to find out how many of his patients had received a particular type of inoculation. It would probably take his secretary days to look at the hundreds of record cards and produce an appropriate list or report. A computer-based database could simply be instructed to look at each patient record for the required information, collate this data and print out the requested report. Totally, unattended! When setting up the database, most programs allow you to design the screen layout and decide on the text to be displayed. Let us imagine that you wished to catalogue a collection of books. One screen of information for each book might contain the book title, the author, the subject matter, the date printed and the ISBN number. Each of these individual pieces of information is referred to as a field, the screen of information is called a 126 record and the complete catalogue is called a file. The file is usually given an appropriate name. In this case, it could be called ‘books’. A working database may contain more than one file. The person that created the books catalogue may have done so to assist with the running of a mail order rare-book business. He would also be likely to keep a file of his customers and their purchasing inquiries, possibly called ‘customer’. The fields could contain information such as surname, initial or Christian name, title, address lines, telephone number and subject matter requested. It would also be possible to include a field titled miscellaneous. As the name implies, this could include any other useful items of information. To make a simultaneous search through a number of different files requires the capabilities of what is known as a relational database. This would allow our fictional character who’d just acquired a rare book on flora to request a report or print-out of all customers who had expressed an interest in this subject. The print-out could be in the form of an address list printed directly onto self-adhesive labels to be stuck onto envelopes ready for mailing. Stationary designed to fit onto the sprockets of a printed tractor feed is known as continuous or fan fold. Large companies would probably use continuous envelopes and print directly onto them, this would eliminate the cost of employing personnel to stick printed address labels onto the envelopes. Finally, many database programs would allow the export of data into other programs such as word processors, spreadsheets and graphics programs. The ability to represent data in a graphical way is a great advantage when making statistical presentations, thus data from a database may be illustrated in a form of a line graph, bar chart or pie chart with some utilities allowing three-dimensional bar charts and exploded pie charts. Unit 8. Database Management Systems. Task 7. INTERVIEWER: What size is the database at Grovemount Hospital? ALEX COLLINS: Pretty big! To give you some idea: over a five-day period of care for one patient, somewhere in the region of 25,000 characters of data might be generated. That would include matters relating to the patient’s medical history, laboratory reports, medical treatment, invoices, and so on. Now, if we have an average of, say, 300 occupied beds, that means well in excess of 500 million characters of stored data per year. INTERVIEWER: And that is presumably only data relating to patients? ALEX COLLINS: Precisely. We also have data relating to the administration of the hospital – em, for example, information on staff, bed occupancy, that sort of thing. 127 INTERVIEWER: So how exactly is the database organized? ALEX COLLINS: Well, our database is organized in the same way that any other database is organized. The basic component is a named collection of data called a file. The file called PATIENT, for example, contains the name, address, date of birth, National Health Service number, etc. of each patient. Within each file there is a collection of records of the same type. So, in the case of the patient file, each record relates to a single patient. Each record must obviously have a unique identifier so that it can be accessed in the database. INTERVIEWER: You mean a name or number? ALEX COLLINS: Yes, usually a combination of the two. INTERVIEWER: Right. So each file contains an organized collection of records. Does that mean that each individual record has an internal structure, too? ALEX COLLINS: No, not necessarily. I’ve already said that all records in a given file must be of the same type. Well, all the patient records do have an internal structure – or fixed format, as we call it. This means that each component – name, date of birth, etc. – is stored separately and can be accessed separately. However, some files contain free-format records, and in those cases each record simply contains a long string of text. INTERVIEWER: You mean letters, reports, that kind of things? ALEX COLLINS: Yes. INTERVIEWER: I see. Now, can you tell us what happens when the database is updated? ALEX COLLINS: Yes. Each input message is called a transaction. When a transaction enters the system for processing, the computer must retrieve related data from the database. At the end of the processing, the computer stores updated data to reflect the changes caused by the transaction. INTERVIEWER: Could you give an example? ALEX COLLINS: Yes, of course. Each time a patient is admitted to the hospital, the database must be updated to show his or her details. This is obvious. However, the database must also be updated to show that there is one less bed available. This will, in turn, affect summary operational data, such as bed occupancy for the month, and so on. INTERVIEWER: OK. But you have lots of different people accessing the database at the same time, don’t you? ALEX COLLINS: It’s a multi-access system, yes. INTERVIEWER: Right. But what happens if two people access the same data at exactly the same time? ALEX COLLINS: It can’t happen. In that situation, the database management system would grant access to one of the users only. The other 128 user would have to wait until the first transaction was processed and the data updated. Unit 9. Graphical User Interface. Task 3. The term user interface refers to the standard procedures the user follows to interact with a particular computer. A few years ago, the way in which users had access to a computer system was quite complex. They had to memorize and type a lot of commands just to see the content of a disk, to copy files or to respond to a single prompt. In fact, only experts used computers, so there was no need for a user-friendly interface. Now, however, computers are used by all kinds of people and as a result there is a growing emphasis on the user interface. A good user interface is important because when you buy a program you want to use it easily. Moreover, a graphical user interface saves a lot of time: you don't need to memorize commands in order to execute an application; you only have to point and click so that its content appears on the screen. Macintosh computers - with a user interface based on graphics and intuitive tools - were designed with a single clear aim: to facilitate interaction with the computer. Their interface is called WIMP: Window, Icon, Mouse and Pointer and software products for the Macintosh have been designed to take full advantage of its features using this interface. In addition, the ROM chips of a Macintosh contain libraries that provide program developers with routines for generating windows, dialog boxes, icons and pop-up menus. This ensures the creation of applications with a high level of consistency. Today, the most innovative GUIs are the Macintosh, Microsoft Windows and IBM OS/2 Warp. These three platforms include similar features: a desktop with icons, windows and folders, a printer selector, a file finder, a control panel and various desk accessories. Double-clicking a folder opens a window which contains programs, documents or further nested folders. At any time within a folder, you can launch the desired program or document by double-clicking the icon, or you can drag it to another location. The three platforms differ in other areas such as device installation, network connectivity or compatibility with application programs. These interfaces have been so successful because they are extremely easy to use. It is well known that computers running under an attractive interface stimulate users to be more creative and produce high quality results, which has a major impact on the general public. 129 Unit 11. Website Design. Task 3. INTERVIEWER: What kind of people want websites and why do they want websites? NATHAN WARD: People who feel they have to be on the Web because competitors are on the Web. They feel that not having a website is a sign of being behind the times. INTERVIEWER: So other people have got a website and therefore they have to have one, too? NATHAN WARD: Yes. The better reason is people who have information they would normally provide free – like brochures, application forms, anything that would normally be sent out by mail. INTERVIEWER: So it saves fax, postage… NATHAN WARD: Printing costs. I think it’s particularly useful for colleges and universities. INTERVIEWER: Why is that? NATHAN WARD: Because they tend to have a large amount of information to distribute. INTERVIEWER: If a client comes to you and asks you for a webpage, how do you set about designing a page for a client? NATHAN WARD: The first thing I would ask for is all the printed promotional material. I would look at all that material and then discuss with the client how much of it to put on the Web. The most important thing is to decide who is the audience for this website, who’s it aimed at. INTERVIEWER: Is there a danger of putting too much on? NATHAN WARD N: There’s certainly a danger of putting too much on it. Also, the client has to make a clear decision about how much time or money they are going to keep the pages updated. INTERVIEWER: Aha, so it’s not enough simply to have a page, you need regular maintenance of that page. NATHAN WARD: Right, so these are the first two questions – who is it aimed at and how often will it be updated? Unit 11. Website Design. Task 4. NATHAN WARD: Once we’ve decided what materials should be put on, there are a couple of basic principles to follow. One is that there should never be any dead ends, you should never reach a page which has no… INTERVIEWER: Ah, which doesn’t go anywhere? NATHAN WARD: …Which has no links to take you back to somewhere else. So, that’s one principle. And the other principle is to try to limit the 130 number of steps that have to be taken from the main home page to any other page. I would normally aim for a maximum of four steps. INTERVIEWER: Do people give up if there more than two or three links, they simply give up, is that a problem? NATHAN WARD: Some people will give up. Others will just never find the information, there too many diversions. Another principle is not to have too many links to scroll through on one page. If you have a page which has 150 links and you have to keep scrolling through them, people will give up … they’ll never find the links at the bottom. INTERVIEWER: What about graphics, sound and animations, and all these multimedia features? What’s your feeling about these? NATHAN WARD: Always ask why is it there? That’s the first thing. And if it’s there simply because it makes the page look nicer, think quite carefully about whether to put it there or not. The more of that sort of thing you have, the more time it will take to download the pages. Another factor to bear in mind is that there are still a lot of users with less sophisticated browsers than Netscape or Microsoft Explorer, and if you make the use of the page dependent on graphics and so on, you’ll exclude these users. INTERVIEWER: So no dead-ends, no more than four steps from home, and pictures have to serve a serious purpose. NATHAN WARD: Another aspect of designing pages is to break the information into relatively small sections. INTERVIEWER: Is that just because of the size of the screen, what you can see at one time? NATHAN WARD N: It’s partly that, but it’s also to do with download time and printing. People can find they’re printing forty pages of a document, most of which they don’t want. INTERVIEWER: Is it a big temptation to add links to similar organizations? Is there strength in that, or is there a danger in that? NATHAN WARD N: In most cases it’s a big strength. Browsers who come across your page, if they discover that your page is a very good gateway to all sorts of interesting sites, will bookmark your page because they know it’s a good way to get to all the other sites. If they’re coming back to it, they’re exposed to your message every time. One final point: it is useful to have on the front page something brief which catches the reader, which says ‘that is who we are’. 131 Glossary A algorithm – a set of unambiguous rules to solve a problem in a definite number of steps analyst programmer – a person whose job is a combination of systems analysis and computer programming applet – a very small self-contained computer program application (program) – a computer program written in a high-level language, designed to perform a specific function assembly language – a human-readable representation of machine-code programs asynchronous – not synchronized, i.e. occurring at irregular intervals automated teller machines (ATM) – the type of machines used by banks for enabling customers to withdraw money from their bank accounts B backup – 1. the process of storing a copy of data on a storage device to keep it safe; 2. the term used for the copied data BASIC – acronym for Beginners’ All-purpose Symbolic Instruction Code binary – a number system that only uses two digits, i.e. 1 and 0 (data) block – a collection of data stored together and treated as a single unit browse – to move from webpage to webpage using a Web browser program browser – a program used for displaying webpages bug – a problem or error in a computer program or system C character – a distinctive significant mark or feature class – 1. a facility introduced in the programming language SIMULA. It provides a form of abstract data type; 2. the prototype for an object in an object-oriented language, analogous to a derived type in a procedural language. A class may also be considered to be a set of objects which share a common structure and behaviour. The structure of a class is determined by the class variables which represent the state of an object of that class and the behaviour is given by a set of methods associated with the class. COBOL – acronym for Common Business-Oriented Language code – a general term for computer programming instructions command line interface – a method of interaction with a computer whereby the user types specific commands in order to achieve his 132 requirements. This is generally regarded as not very user-friendly, although it is often the most efficient way of communicating with the computer comment – a computer programming language statement or part of a statement that the computer does not use. This allows the programmer to add an explanation of the program to the statement that will be executed Common Business-Oriented Language – a high-level computer programming language. It is the principal transaction processing language used to process the records of large organisations on mainframe computers. compatible – able to operate on the same type of system or run the same software compilation – the rate of translating a high-level language into machine code compile – to translate a high-level computer language into machine code so that it can be understood by the computer compiler – a program that converts source programs into machine code. Each high-level language has its own compiler compress – to reduce to a much smaller size compression – the process used for reducing a file to a much smaller size computer – a general purpose machine that can be programmed to process data in a variety of ways computer consultant – a person who is paid to advise on computing system issues computer engineer – a person who designs and develops computer systems computerized – changed so that it can be operated or controlled using a computer computer language – a language used for writing computer programs computer program – a set of instructions that can be understood by a computer and perform a certain task or function computer programming – the process of writing and testing programs for computers computer science – the study of computers and their use computing – the theory and practice of computers conceptual schema – the logical design of the database cursor – a symbol on the monitor screen that indicates the point on the screen that is being used cut and paste – to remove some data from a file and temporarily store it in the computer’s memory then insert a copy of the data in another position in the same or in another file cycle – one of the basic steps in a process that repeats over and over again 133 D data – the information processed by a computer database – a store of facts and information held in a computer database management system – software that allows the user to store, update and retrieve information held in database data flow diagram – a graphical notation used to describe how data flows between processes in a system. Data flow diagrams are an important tool of most structured analysis techniques. data model – the product of the database design process which aims to identify and organize the required data logically and physically debugging – the process of correcting errors in a program or system decision table – a type of grid used in computer program design to show what actions should be taken by the programmer under different conditions declaration statement – a statement in a computer programming language that tells the software translator how much storage the data will need, the data structures used, or the type of data held in named variables dedicated – (of software and hardware) that is only used for one particular task or purpose description – a statement that explains what something looks like, or how it behaves desktop – the main graphical user interface background screen that displays icons for other programs developer – a person or organization that designs or improves hardware or software development life cycle – the phases a software product goes through from when it is first thought of until it becomes obsolete. This typically includes: requirements analysis, design construction, testing (validation), installation, operation, maintenance and retirement. digital – an electronic system that has only two states, e.g. off or on directory – a storage area used for grouping files so that they can be easily located. A directory is sometimes called a folder. documentation – the information that explains how to use software or hardware drag and drop – to move data from one location to another with a mouse. Holding down the mouse button while moving the mouse moves the selected data. Releasing the mouse button drops the data in the new location. E encapsulation – 1. a restriction on access to an object’s internal properties; 2. the technique of keeping together data structures and the methods 134 (procedures) which act on them; 3. the ability to provide users with a welldefined interface to a set of functions in a way which hides their internal workings encode – to write information in a coded form entity – in programming, any item, such as data item or statement, that can be named or denoted in a program executable – containing instructions that can be run or executed by the processor execute – to run a program in a computer expert system – an artificial intelligence program that collects and uses human expertise to allow non-experts to solve specialized problems extensible – able to be added to, e.g. in an extensible language a developer can add their own terms extensible markup language – a metalanguage that allows developers to create their own set of customized tags that identify the meaning and structure of data. It is used for creating files that are program-independent, platform-independent and able to be used with different languages. external schema – the user’s permitted view of the data F fetch – to go and get the next instruction or piece of data from memory field – an item of data such as a number, a name, or an address file – a collection of data in electronically recorded form, which is the basic unit of storage in a computer system. A file can be a program, a document created by a user or data used by a program, etc. flowchart – a kind of diagram used by programmers to show the logical steps in a program or by systems analysts to show logical steps in the design of a system format – the layout of a document, including page numbers, line spaces, margins, paragraph alignment, headers and footers, etc. formula – a series of letters, numbers or symbols that represent a rule or law FORTRAN – acronym for Formula Translator. A high-level computing language that was designed by scientists in 1954 and is oriented toward manipulating formulas for scientific, mathematical and engineering problem-solving applications. freeware – computer programs that are made available to anyone who wants to use them at no cost to the user G general-purpose language – a computer language that can be used to write different types of programs 135 graphical user interface – a style of interaction between the user and the computer involving a graphics screen, icons, and some form of pointing device such as a mouse H hierarchical database – a kind of database management system that links records together like a family tree such that each record type has only one owner, e.g. an order is owned by only one customer. Hierarchical structures were widely used in the first mainframe database management systems. However, due to their restrictions, they often cannot be used to relate structures that exist in the real world high-level language – a language in which each instruction represents several machine code instructions, making the notation more easily readable by the programmer hover – to hold a cursor over an icon for a short period of time HTML – abbreviation for hypertext markup language. A page description language that uses a system of tags for creating web pages. hypertext markup language – a page description language that can be inserted into a document to make it act as a webpage. The tags determine how the document is displayed on the screen and marks the position of hyperlinks. I icon – a visual symbol or a picture on a screen that represents a program, an option or a file implementation – the act of starting to use a plan or computer system inheritance – a key feature of object-oriented programming that allows specific instances of a class to inherit all the properties of the class input – data put into a system instruction – part of a computer program, which tells the computer what to do at that stage interface – 1. the equipment including hardware and software that allows two devices to be connected so that they can operate together; 2. a common boundary between systems, devices and programs internal schema – the way that the data is physically held iteration – a process that is repeated as long as certain conditions remain true K keyboard – the main electronic input device that has keys arranged in a similar layout to a typewriter 136 L library – a collection of subroutines and functions stored in one or more files, usually in compiled form, for linking with other programs. Libraries are one of the earliest forms of organised code reuse. They are often supplied by the operating system or software development environment developer to be used in many different programs. The routines in a library may be general purpose or designed for some specific function such as three dimensional animated graphics. link – to combine two separate programs, etc. to make a single executable program linkage editor – a system program which fetches required systems routines and links them to the application program object module load module – the program which is directly executable by the computer logical record – the collection of data relating to one subject low-level language – a language such as assembly language in which each instruction has one corresponding instruction in machine code M machine code – the 0s and 1s (binary-coded command) that are loaded and executed by a computer. Machine code is the only language the computer understands, and it is obtained by compiling assembly language or any high-level language markup – a method of adding information to the text indicating the logical components of a document, or instructions for layout of the text on the page markup language – a set of tags that can be inserted into a document to indicate its layout and appearance menu – a list of program commands. The user can select a command by clicking on it, or by using keys on the keyboard metadata – data about data in a document metalanguage – a language that is used for describing the structure of other languages mouse – a common cursor control input device used with a graphical user interface. It commonly has two or three button switches on top and a ball underneath that is rolled on a flat surface. multiprogramming – a way of executing two or more programs together. Each program is executed for a short amount of time N namespace – a set of names in which all names are unique 137 network database – a kind of database management system in which each record type can have multiple owners, e.g. orders are owned by both customers and products. This contrasts with a hierarchical database (one owner) or relational database (no explicit owner). O object module – see object program object-oriented programming – a programming technique that combines data, abstraction, inheritance, and dynamic type binding object program – the result of converting source code into machine code using a compiler output – the processed data or signals that come out of a computer system P package – an application program or collection of programs that can be used in different ways page-description language – a type of programming language that uses tags to define the layout of a document, e.g. HTML is a page-description language used to design webpages paradigm – a type of smth, a model parameter – information, which is passed to a program subroutine parse – to separate a high-level programming language statement into parts that will be processed as individual units when it is converted into machine code physical record – the collection of data transferred as a unit platform – a type of computer or program used as a standard for a particular computer system pointer – a symbol on a screen, such as an arrow, that is controlled by a pointing device polymorphism – a key feature of object-oriented programming by which different objects can receive the same instructions but deal with them in different ways portability – the ability to use hardware in different places or software on different types of computer portable – describing programs which can run on a variety of hardware or under a variety of operating systems procedural language – a computer programming language that enables programs to be written using sections of code known as procedures. Each procedure performs a specific task. procedure – a way of performing a task that usually does not change each time the task is performed 138 program – a set of instructions that can be understood by a computer and perform a certain task or function programmer – a person who writes or designs programs for a computer programming – the process of writing and testing programs for computers programming language – a language that can be used for writing instructions that a computer can process and execute property – a quality or characteristic that something has pseudocode – a code that contains a combination of a programming language such as C, and natural language such as English pull-down menu – a list of choices that appear below a menu title on a display screen when the user clicks on the menu title using a mouse Q query – a request that is made by a user to a database asking it to provide a list of the records that match certain conditions query language – a language in which users of a database can interactively formulate requests and generate reports. The best known is SQL. R record – a part of a data file that holds related data about one item RDF – acronym for Resource Description Framework relational database – a database based on the relational model developed by E.F. Codd. A relational database allows the definition of data structures, storage and retrieval operations and integrity constraints. In such a database the data and relations between them are organised in tables. A table is a collection of rows or records and each row in a table contains the same fields. Certain fields may be designated as keys, which means that searches for specific values of that field will use indexing to speed them up. Resource Description Framework – an XML text format that supports resource description and metadata applications runtime – the period of time during which a program is executed S scroll – to move the information displayed on a screen in a vertical or horizontal direction scrollbar – the part of a graphical user interface window that allows the user to move through a document by clicking or dragging with the mouse selection – the control structure allowing choice among different directions sequence – the control structure that refers to the line-by-line execution as used in your programs so far. SGML – abbreviation for Standard Generalised Markup Language 139 software house – a company that invents, writes and sells computer programs source code – a computer program written in a high-level language that must be translated into object code before it can be executed specification – a detailed description of how something is, or should be, designed or made SQL – abbreviation for structured query language. A language used for searching databases. Standard Generalised Markup Language – the complex metalanguage from which both HTML and XML were created statement – the smallest executable part of a program structured language – a computer programming language that requires the programmer to write programs made up of self-contained units or procedures structured programming – a method of designing a computer program so that it is easy to understand, change and maintain. This is usually done by making each part of the program an individual procedure, which is programmed separately subdirectory – a directory that is inside another directory submenu – a list of choices that is displayed when the user clicks on an item in a menu support – the help offered to the user by a company who makes or sells a computer syntax – the rules that state how words and phrases must be used in a computer language system tray – a section at the far right of a Microsoft Windows task bar that holds icons for the clock and other programs that run constantly in the background systems analyst – a person who designs or modifies information systems to meet users’ requirements. This includes investigating feasibility and costproducing documentation and testing prototypes of the system. systems programmer – a person who specializes in writing systems software such as operating system programs T tag – a label used in a markup language such as HTML. It is attached to a piece of text to mark the start or the end of a particular function. taskbar – a Microsoft Windows desktop component that indicates what programs are currently being used and allows the used to switch between them 140 teller machine – a machine used for taking payments in large shops and supermarkets terminal – a network device used to input and output data (usually a basic computer) token – a code used in a high-level language for reserved words or other program statements tool – a program that is used by a programmer to write other programs toolbar – a panel that contains different tools tooltip – a label that appear on the screen when the user holds the mouse pointer over an icon in a Microsoft Windows system transaction – 1. a single item of data that can be processed on its own; 2. any single activity inside a computer or system U undo – to restore a file to the condition it was in before the last change was made update – to bring up to date, i.e. to change into the latest version upgrade – to add components to improve the features or performance of a system URL – abbreviation for uniform (or universal) resource locator user – the person using a computer user interface – the boundary between a user and a computer or a program user-friendly – connected with a program, computer or system, etc. that is easy to use, especially for someone with little technical knowledge V variable – the name used in a programming language for a set of locations in the computer's memory, which can hold one data item. Data is stored in a variable by using an assignment statement verify – to check for accuracy W walkthrough – a product review performed by a formal team. A number of such reviews may be held during the lifetime of a software project, covering, for example, requirements specification, program specifications, design, and implementation. webpage – a hyperlinked document in a web network system website – a set of related pages on the World Wide Web window – a rectangular screen area containing a program folder or file in a WIMP system 141 (Microsoft) Windows – a graphical user interface operating system frontend to MS-DOS developed by the Microsoft Corporation. It has been gradually developed into a full operating system. Windows Explorer – a Microsoft Windows program that allows the user to see the files and folders on all the disks attached to the computer. It can be used for general housekeeping such as moving or deleting files. workstation – a powerful desktop computer used by power users for work that requires a lot of processing, e.g. graphic design World Wide Web – an information service on the Internet that allows document pages to be accessed using hyperlinks X XML – abbreviation for extensible markup language XML processor – a software module that is used to read XML documents and provide access to their content and structure 142 Bibliography 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Boeckner K., Brown P.Ch. Oxford English for Computing. – Oxford: Oxford University Press, 1997. Boeckner K., Brown P.Ch. Oxford English for Computing. Answer Book with Teaching Notes. – Oxford: Oxford University Press, 1997. Brookshear J. G. Computer Science: an overview. – New York: Addison-Wesley, 2000. Demetriades D. Information Technology Workshop. – Oxford: Oxford University Press, 2003. Erickson F.J. Computers Concepts, Implications and Applications. America: Brown Communications, 1995. Esteras S.R. Infotech. English for Computer Users. Student’s Book. – Cambridge: Cambridge University Press, 2001. Esteras S.R. Infotech. English for Computer Users. Teacher’s Book. – Cambridge: Cambridge University Press, 2001. Evans V., Dooley J. Enterprise 4. Course book. – Express Publishing, 2001. Glendinning E.H., McEwan J. Basic English for Computing. – Oxford: Oxford University Press, 2002. Glendinning E.H., McEwan J. Basic English for Computing. Teacher’s Guide. – Oxford: Oxford University Press, 2002. Glendinning E.H., McEwan J. Oxford English for Information Technology. – Oxford: Oxford University Press, 2002. Glendinning E.H., McEwan J. Oxford English for Information Technology. Teacher’s Guide. – Oxford: Oxford University Press, 2002. Hewings M. Advanced Grammar in Use. – Cambridge: Cambridge University Press, 1999. Murphy R. English Grammar in Use. – Cambridge: Cambridge University Press, 1994. Pyne S., Tuck A. Oxford Dictionary of Computing for Learners of English. – Oxford: Oxford University Press, 1996. Side R., Wellman G. Grammar and Vocabulary for Cambridge Advanced and Proficiency. – Longman, 2002. Walker T. Computer Science. – Oxford: Prentice Hall, 1995. Walker T. Computer Science. Teacher’s Book. – Oxford: Prentice Hall, 1995. Леонтьев В.П. Новейшая энциклопедия персонального компьютера 2003. – М.: ОЛМА-ПРЕСС, 2003. 143 20. Орлов С.Б. Современный англо-русский словарь по вычислительной технике. – М.: РадиоСофт, 2000. 21. Симонович С.В. Информатика. Базовый курс. – Санкт-Петербург: Питер, 2002. 22. Смирнова Т.В., Юдельсон М.В. English for Computer Science Students. Учебное пособие. – М.: Флинта: Наука, 2001. 23. Oxford Advanced Learner’s CD-ROM Dictionary 24. http://foldoc.doc. 25. http://popdagger.narod.ru/Raznoe/USER.HTML 26. http://www.sinor.ru/~xml/docs/part1.htm 144