Вы находитесь на странице: 1из 145

Федеральное агентство по образованию Российской Федерации Томский политехнический университет

И.Л. Пичугова

ПРОФЕССИОНАЛЬНЫЙ АНГЛИЙСКИЙ ЯЗЫК ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Учебное пособие

Издательство ТПУ Томск 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

Title

Vocabulary

Grammar

1.

Computer programming

Program, algorithm, process, operation, connector, input, output, decision, flowchart, system/syntax/logic errors

 

2.

Program design

Flowchart, documentation, testing, debugging, program, machine code, programming tools, compilation, coding

General and special questions

3.

Programming languages

Source code, object module, compiler, instructions, machine code, load module, linkage editor, algorithm

Modal verbs

4.

Comparing programming languages

Library, compilation speed, portability, development time, implementation, popularity, safety, runtime

Compound nouns

5.

Structured programming

Sequential execution, loop, spaghetti code, control structure, sequence, selection, iteration, function

Relative clauses with a participle

6.

Object oriented programming

Inheritance, class, entity, procedure, property, value, intelligence encapsulation, library, property, attribute

The Infinitive of purpose

7.

Databases

Database, file, record, field, data model, hierarchical, network and relational approaches, sort, update

 

8.

Database management systems

Logical record, field, physical record, internal schema, external schema, conceptual schema, query

 

9.

Graphical user interface

Pointer, desktop, windows, icon, menus, system tray, buttons, commands, tooltips, GUI, multimodal interface, recognition, hover, select

Constructions:

verb + object + infinitive, verb + object + to-infinitive with such verbs as allow, permit, let, enable, help

10.

User interface guidelines

Appearance, density of controls, capabilities, error- free navigation, intuitive, application, feedback

Phrasal verbs

11.

Web page design

Metalanguage, character, markup, XML processor, parse, customized, authoring environment, entity, HTML

The Passive

12.

Extensible Markup Language

Algorithm, technology, standard, designer, syntax, procedure, namespace mechanism, tool, support

The Gerund

3

Map of the Book

Listening

Reading

Speaking

Writing

Matching flowchart symbols and spoken output; listening for detail

Scanning; reading and note-taking

Talking about computer programming, different types of errors

Drawing a flowchart

Writing a dictation

Scanning

Talking about computer program design, its main steps

Describing a process; Translating sentences

Listening for specific information; noting specific information

Reading for main ideas

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 information; noting specific information

Reading for specific information

Talking about basic features of object oriented programming; developing a software package

Translating the text about object oriented programming

Noting specific

Reading for main ideas and for specific information

Talking about databases, structuring data model

Writing an argumentative essay

information

Listening for specific information

Reading for main ideas and for specific information

Talking about database management systems; describing a process

Writing an argumentative essay; translating the text about database management systems

Listening for specific information, noting specific information

Reading diagrams; reading for main ideas and for specific information

Talking about common features of graphical user interface; providing explanation of different actions

Writing instructions

 

Reading for specific information

Talking about the basic principles to design a user interface

Completing a table with relevant information; preparing a leaflet; writing a summary

Listening for specific information, noting specific information

Reading for main ideas and for specific information

Talking about top 10 web page annoyances; basic concepts of XML

 
 

Reading for main ideas

Exchanging information

Translating the text about XML

4

Unit 1. Computer Programming

Unit 1. Computer Programming Warm-up Task 1. What do you know about programming? Answer the Internet

Warm-up

Task 1. What do you know about programming? Answer the Internet Quiz.

1. Programmers use algorithms when writing programs.

T

/ F

2. Programmers write programs using the numbers 1 and 0.

T

/ F

3. We can only find computer programs in computers.

T

/ F

4. Any given program, if running, is obsolete.

T

/ F

5. Any given program costs more, and takes longer.

T

/ F

6. The most harmful error of any program will not be discovered until the program has been in production for at least six months.

T

/ F

7. Profanity is the one language that all programmers know the syntax of.

T

/ F

8. There is always one more bug.

T

/ F

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.

T

/ F

10. It is easier to change the specification to fit the program than vice versa.

T

/ F

5

11. Any program will expand and fill all of available memory – plus one byte.

T

/ F

12. Disk errors occur only after you've done several hours of work without making a backup.

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.

symbols used in flowcharts. One symbol is not mentioned. a) b) d) e) c) f) Task

a)

symbols used in flowcharts. One symbol is not mentioned. a) b) d) e) c) f) Task

b)

used in flowcharts. One symbol is not mentioned. a) b) d) e) c) f) Task 3.

d)

e)

used in flowcharts. One symbol is not mentioned. a) b) d) e) c) f) Task 3.

c)

in flowcharts. One symbol is not mentioned. a) b) d) e) c) f) Task 3. Listen

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. Which computer commands does it show?

2. How many decisions does the computer make?

3. After the user clicks Save, how many times does the user input data?

4. How many ways of developing the events are possible here?

Now describe this algorithmic flowchart.

6

User clicks Save.

User clicks Save. The program reads the file name, format and location. YES Is there an

The program reads the file name, format and location.

YES Is there an existing file with the same file name, format and location? Save
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? A
YES
Is there an existing file
with the same file
name, format and
location?
A dialog box appears
with the message,
‘The file already
exists. Do you want
to replace it?’
NO
Save file.
END

7

Task 5. Read the text about computer programming. Write the number of the paragraph that gives you the information.

a. why high-level languages are easy to learn

b. a description of machine language

c. the greatest problem for computer programmers

d. the names of three high-level computer languages

e. a description of an algorithm

f. different uses of computers in our lives

g. a description of a computer program

h. what computers do with code

i. 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. Have you ever

Speaking

Task. 6. Work in groups and discuss the following questions.

1. Have you ever had any problems with the computer?

2. What kind of errors do you make with computers?

3. 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. Is programming stressful?

2. What does Colin do as a break from programming?

3. Where do the team do much of the design work?

4. How many people are there in the team?

5. What do they do?

6. How long did Dante take to write?

7. Why was it easy to split?

8. What languages does he mention?

9. How does he keep up with developments in his field?

10. 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//

Message

20

PRINT ‘Hello’

30

CLS

40

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. The process of writing and testing programs for computers.

2. 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.

3. The act of writing a computer program.

4. 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) Design a solution

b) Code the program

c) Document and maintain the program

d) Clarify the problem

e) Test the program

Task 3. To which stage does each of these steps belong?

1. Clarify objectives and users

2. Debug the program

3. Write programmer documentation

4. Do a structured walkthrough

5. 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.

test and debug the program; 5. complete the documentation. Although the programmer is responsible for writing

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. There are five main steps in the computer program development.

2. For writing the computer program.

3. It is developed in program planning.

4. As formulas, decision tables, or narratives.

5. Yes, it is the actual writing of computer instructions.

6. No, programmers usually are not given a choice of languages.

7. It is called compilation.

8. When the results of testing are not correct.

9. To obtain correct results.

10. 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

b) A source program cannot be directly processed by the

the new customer database.

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

c) Most computer

the VCR to come on at eight.

make a plan of the program

before they write it. This plan is called a flowchart.

d) It is unusual for a time it is tested.

3. bug, debug, debugger debugging

to work correctly the first

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

or

with sample data to see if there are any errors.

4. instruction, instruct, instructed, instructor

a) The next step is to design an algorithm, which is a step-

by-step plan of

b) We have been

that a decision will not be

used to solve the problem.

made before the end of the week.

c) Our maths

binary arithmetic.

explained to us the principles of

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

Specification Development
Specification
Development
Validation
Validation
Initial version
Initial
version
Outline description
Outline
description
Intermediate versions
Intermediate
versions
Final version
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

REM Program to compute integer sum

20

MAXINT% = 32767

30

TOTAL# = 0#

40

PRINT This program calculates the sum of all integers

50

PRINT from 1 to whatever integer you specify.

60

PRINT Enter any positive integer up to MAXINT%”:”;

70

INPUT NUMBER

80

IF (NUMBER > 0) AND (NUMBER <= MAXINT) THEN GOTO 90 ELSE GOTO 150

90

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

100

110

120

130

140

150

160

B.

C.

/*numbercount.c*/ #include <stdio.h> #define MAXINT 32767

Program Number Count (input, output);

var count,

 

number: integer;

main ()

total: real;

{

begin

int count, number; long int total;

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”);

}

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.

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. programming paradigms

2. assembly language

20

3. high-level languages

4. source program

5.

6.

7.

8.

linkage editor

machine code

object program

load module

Listening

9.

10.

11.

12.

programmer

manufacturer

instructions

compiler

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. All languages discussed are high level languages.

2. 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

Type

Advantages

Disadvantages

introduction

FORTRAN

   

1.

1.

2.

2.

3.

COBOL

   

1.

1.

2.

2.

BASIC

   

1.

1.

2.

3.

4.

21

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. A schoolteacher wants his young pupils to learn some basic mathematics by controlling a simple robot.

2. The owner of a small business wants to create a simple database program to keep track of his stock.

3. A professional programmer wants his software to run on any type of computer system.

4. An engineer wants to develop a program for calculating the stresses in a mechanical device.

5. A student wants to create webpages for a personal website.

6. A systems programmer wants to add some new modules to an operating system.

7. A website designer wants to include simple animation in a site.

8. A programmer working for the US army wants to create a program for controlling a new type of weapon.

9. A finance company needs to process data from its branch offices on its mainframe computer.

10. A website designer wants to enable the data on his website to be easily processed by a number of different programs.

11. A student studying artificial intelligence wants to write some programs for a course project.

12. A college lecturer wants his students to learn the principles of programming.

13. A professional programmer wants to create and sell a program for use in language learning.

14. A website designer wants to password-protect a section of a website.

15. 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

sentences in this passage. One, two or all of them may be possible.

verbs that complete each of the

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. Before you start to make a web site, you …

organize the content.

decide how to

2. A source program …… be directly processed by the computer until it has been compiled.

3. 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.

4. …… I use your laptop? I need to print out this report.

5. With a web page editor you …… create a web document easily.

6. If I knew the Java language, I …… include some attractive banners on my web page.

7. I …… to make a back-up copy.

8. The logical structure of the data …… be different from the way it is physically represented on backing store media.

9. No goto statements …… to be used in writing code.

10. 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.

11. The instructions …… follow the steps of the program logic plan.

12. Organizations using data base management systems …… choose to generate programs using the query language of the DBMS.

13. Computer consultants …… specialize in too narrow a field.

14. Programmers …… to know a range of up-to-date languages.

24

15.

Before IBM set the standard for PCs, software houses …… write

16.

different versions of their programs for every make of computer. 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. What types of programming languages do you know?

2. How does one compare programming languages?

3. What are the main criteria? Make a list.

Reading

3. What are the main criteria? Make a list. Reading Task 2. Before reading the text,

Task 2. Before reading the text, match the terms with the correct definition or explanation.

a. Debugging

b. Compilation

c. Portability

d. Platform

e. Support

f. Library

1. the ability to use hardware in different places or software on different types of computer

2. a type of computer or program used as a standard for a particular computer system

3. the rate of translating a high-level language into machine code

4. a collection of subroutines and functions stored in one or more files, usually in compiled form, for linking with other programs.

5. the process of correcting errors in a program or system

6. 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

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

server CGI programs, and system

for

text

processing,

HTTP

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 well-

supported 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:

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)

Simplicity

of

language

constructs,

which

relates

to

ease

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. Each language should be suitable for a particular application.

2. Perl relates well to operating system development.

3. Execution platforms for programs are changing all the time.

4. The more popular the language is the more often it is used.

5. 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

over the lifetime

development cost and effort of the program.

b) Hardware control always

some kind of special-

purpose 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

d) The iterative approach allows

in a

particular language?

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

support for those buying our

d) We offer free

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:

language syntax machine architecture development cost program development

Sometimes there are more than two nouns together. For example:

user interface development system administration work freeware development community

Sometimes a noun+noun is not appropriate and instead we use noun+’s+noun. For example:

 

The

first

noun

is

like

an

adjective

it

tells

us

what

the

a language’s feature

second noun is made of, what it is

a language’s compiler

for,

or

what

it

is

part

of.

For

an application’s design

example:

 

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

Box B

machine

application’s

design

requirement

analyzer

program

tool

support

implementation

development

language’s

tools

effort

support

language

application

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

answering

breathing

cutting

losing

mailing

making

recording

selling

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

following questions:

1.

Answer

the

1. What is structured programming?

2. What structured programming languages do you know?

3. What are the main rules of structured programming?

Reading

the text

below to find answers

to

questions:

Task 2. Read

the following

to find answers to questions: Task 2. Read the following 1. What was the approach to

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-by-

34

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

primitive

code

diagram

logic

conditional

sequential

goto

section

jump

Language work

Relative clauses with a participle

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:

a noun using as few words as possible. We often use –ing and –ed clauses after
a noun using as few words as possible. We often use –ing and –ed clauses after

There are only three necessary control structures needed to write programs: sequence, selection, and iteration.

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

We

can

use

the

passive

participle as in examples 3 and 4.

participle as in examples 1 and 2.

1. Function main() consisted of a sequence of lines = function which is consisted

3.

A control structure using the break statement = structure which uses the break

statement

 

2. The most common control

4.

The control structure allowing

structures used in C++ code = control structures which are used

choice among different directions = structure which allows choice among different directions

Task 4. Complete these definitions with the correct participle of the verb given in brackets.

1. Software engineering is the processes (involve) in writing computer software such as designing, coding and testing programs.

2. Programming standards are rules (follow) by computer programmers who are working in a team so that their work can be understood by other programmers.

3. Iteration is the process of a computer (execute) a command or statement again and again until a result is obtained.

4. GOTO instruction is a high-level programming language instruction (cause) a jump to another place in the program.

5. 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.

6. 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. The software company sent me a brochure. The brochure contained all the information I needed.

2. 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.

3. 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

explanation:

6.

Match

the

terms

with

the

correct

definition

or

a. Structured

1.

a set of unambiguous rules to solve a

programming

problem in a definite number of steps

 

2.

code that contains a combination of a

b. Implementation

programming language such as C, and natural language such as English

c. Algorithm

3.

a directory that is inside another directory

4.

the act of starting to use a plan or computer

d. Description

system

 

5.

a

general term for computer programming

e. Pseudocode

instructions

 

6.

a

statement that explains what something

f. Subdirectory

looks like, or how it behaves

 

7.

a

method of designing a computer program

g. Computer

so that it is easy to understand, change and

program

maintain

 

8.

a set of instructions that can be understood by

h. Code

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.

the information that explains how to use software or hardware

9. 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.

10. …… 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

11. part of a computer program, which tells the computer what to do at that stage

12. a set of rules that must be followed when solving a particular problem

13. a way of writing a description of a computer program using a mixture of natural language and computer language code

14. the period of time during which a program is executed

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
1
15
2
3
4
5
6
7
8
9
10
11
12
13
14

40

Unit 6. Object Oriented Programming

Unit 6. Object Oriented Programming Warm-up Task 1. Answer the following questions: 1. What is object

Warm-up

Task 1. Answer the following questions:

1. What is object oriented programming?

2. What are the basic features of object oriented programming?

3. What are object oriented languages? Give any examples.

4. 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 self- contained 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

explanation:

4.

Match

a) Object-oriented

programming

b) Inheritance

c) Class

d) Entity

e) Procedure

f) Property

g) Encapsulation

h) Library

i) Attribute

the

terms

with

the

correct

definition

or

1. a set of programmed functions that are made available for use by any program

2. a quality or characteristic that something has

3. in programming, any item, such as data item or statement, that can be named or denoted in a

program

4. a means by which characteristics of objects can be replaced and instantiated in other objects

5. a programming technique that combines data, abstraction, inheritance, and dynamic type binding

6. a facility introduced in the programming

language SIMULA. It provides a form of abstract data type

7. a way of performing a task that usually does not change each time the task is performed

8. a restriction on access to an object’s internal properties

9. 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

The Infinitive of Purpose

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:

a concrete computer program . We use to … to say why something exists or why
a concrete computer program . We use to … to say why something exists or why

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:

… to say what can be done or must be done with something: e.g. In program

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.

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. Algorithms are sets of rules or instructions used ……

2. Extensible markup language is used …… that are program- independent, 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 general- purpose language.

Task 8. Complete these sentences using a suitable verb.

1. Bill Gates has a team of bodyguards ………. him.

2. I did not have enough time ………. the program today.

3. I came home by taxi. I did not have the energy

4. Would you like something ……….? Yes, please. A cup of coffee.

5. We need a box ………. these devices in.

6. There will be a meeting next week ………. the problem.

7. I wish we had enough money ………. the computer.

8. 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.

Do you have much opportunity ………. your English?

12. We need more time ………. a decision.

13. You need a lot of experience ………. this job.

14. 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

Listening 47

47

Task 10. You are going to hear a lecture about Java, an object- oriented 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