Top Banner
ENGLISH FOR STUDENTS OF COMPUTER SCIENCE INTRODUCTION TO COMPUTER TERMINOLOGY Every language is an organic system that is always changing, with new words coming in and going out all the time. Besides, the meanings of already existing words are evolving. This is especially true of English because of its role as an international language. Spoken around the globe as a primary, auxiliary or business language by 1.53 billion people, it has already become the first truly global language. According to the Global Language Monitor (http://www.languagemonitor.com/), the English language has already passed the "million word" mark. Moreover, to quote GLM president and chief word analyst Paul JJ Payack, one of the “momentous trends occurring in the English language today” is “an explosion in word creation -- English words are being added to the language at the rate of some 14.7 words a day. The last time words were being added to the language at this rate was during Shakespeare's time”. Therefore, language is evolving and its lexicon is being added very quickly. Technological change is the factor that influences this process mostly. Technical terminology is the specialised vocabulary of a field. It exists in a continuum of formality. Precise technical terms and their definitions are formally recognized and documented. Other terms are more colloquial, coined and used by practitioners in the field, and are similar to slang. The boundaries between formal and slang jargon are quite fluid. This is especially true in the rapidly developing world of computers. For instance, the term firewall was at first technical slang. As these devices became more important and the term became widely understood, the word was adopted as formal terminology. However, activities aimed at standardizing computer terminology are very rare and numerous glossaries of computer terms usually present no clear distinction between slang and jargon. If terms undergo long standardization processes in other fields, there is no time for this in the computer world. Clearly, Information Technology is that specialized field where new terms seem to be popping up every day. For instance, Webopedia, claiming itself the #1 online encyclopedia dedicated to computer technology, provides from 1 to 5 new entries in its section “New Terms” every day. Thus, it can be assumed that the increase of new terms related to Information Technology possibly outnumber all other subjects. Glossaries on the Internet provide lists of thousands of computer terms, some of them advertising more than 20.000 terms in their databases. Moreover, Information Technology presents not only the great increase of new terms but also quick changes in its terminology. For instance, some terms become obsolete, such as floppy disk or diskette. The other terms, which are commonly used, become stabilized and find their translations in other languages. However, the majority of terms are more or less adopted directly from English. Not surprisingly, the increasing number of new terms in every field presents more and more confusion for us. Happily for us, present terminology of Information Technology exhibits some general features: Many computer words probably have similar forms in every language (for example, words computer and information). A lot of these words are lively and colourful (for example, snail mail, hotspot and clickjacking). Young people engaged in the computer industry avoid heavy scientific-sounding language in favour of words that are simple, fresh and playful, even humorous (for example, last mile, spit, facebook and cookies). Unfortunately, this may sometimes result in a term coined in a nonchalant and casual manner. Every culture promotes user-friendliness in everything, including their languages. This means it is more common to use simple words to describe technical concepts (for example, it is surely nicer to use mouse, rather than an X-Y position indicator, which is what it was originally called). Many computer words are metaphors, which are words or phrases used in an imaginative way to describe sb/sth else, in order to show that the two things have the same qualities. For example, a computer firewall allows limited access to an internal network from the Net which prevents intruders from stealing or destroying confidential data in the same way as firewall stops fire spreading from one area to another. The computer’s memory holds information, just like the fact that people remember information. Similarly, cloud computing gives the idea that you store your information on the clouds. More examples of metaphors frequent use in IT are: notebook, cut, paste, virus, bug, mouse, voicemail, etc.
15

English for Students of Computer Science

Oct 28, 2015

Download

Documents

English for Students of Computer Science
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: English for Students of Computer Science

ENGLISH FOR STUDENTS OF COMPUTER SCIENCE

INTRODUCTION TO COMPUTER TERMINOLOGY

Every language is an organic system that is always changing, with new words coming in and going out all

the time. Besides, the meanings of already existing words are evolving. This is especially true of English

because of its role as an international language. Spoken around the globe as a primary, auxiliary or business

language by 1.53 billion people, it has already become the first truly global language.

According to the Global Language Monitor (http://www.languagemonitor.com/), the English language has

already passed the "million word" mark. Moreover, to quote GLM president and chief word analyst Paul JJ

Payack, one of the “momentous trends occurring in the English language today” is “an explosion in word

creation -- English words are being added to the language at the rate of some 14.7 words a day. The last

time words were being added to the language at this rate was during Shakespeare's time”. Therefore,

language is evolving and its lexicon is being added very quickly. Technological change is the factor that

influences this process mostly.

Technical terminology is the specialised vocabulary of a field. It exists in a continuum of formality. Precise

technical terms and their definitions are formally recognized and documented. Other terms are more

colloquial, coined and used by practitioners in the field, and are similar to slang. The boundaries between

formal and slang jargon are quite fluid. This is especially true in the rapidly developing world of

computers. For instance, the term firewall was at first technical slang. As these devices became more

important and the term became widely understood, the word was adopted as formal terminology. However,

activities aimed at standardizing computer terminology are very rare and numerous glossaries of computer

terms usually present no clear distinction between slang and jargon. If terms undergo long standardization

processes in other fields, there is no time for this in the computer world.

Clearly, Information Technology is that specialized field where new terms seem to be popping up every

day. For instance, Webopedia, claiming itself the #1 online encyclopedia dedicated to computer technology,

provides from 1 to 5 new entries in its section “New Terms” every day. Thus, it can be assumed that the

increase of new terms related to Information Technology possibly outnumber all other subjects. Glossaries

on the Internet provide lists of thousands of computer terms, some of them advertising more than 20.000

terms in their databases.

Moreover, Information Technology presents not only the great increase of new terms but also quick

changes in its terminology. For instance, some terms become obsolete, such as floppy disk or diskette. The

other terms, which are commonly used, become stabilized and find their translations in other languages.

However, the majority of terms are more or less adopted directly from English.

Not surprisingly, the increasing number of new terms in every field presents more and more confusion for

us. Happily for us, present terminology of Information Technology exhibits some general features:

Many computer words probably have similar forms in every language (for example, words

computer and information).

A lot of these words are lively and colourful (for example, snail mail, hotspot and clickjacking).

Young people engaged in the computer industry avoid heavy scientific-sounding language in

favour of words that are simple, fresh and playful, even humorous (for example, last mile, spit, facebook

and cookies). Unfortunately, this may sometimes result in a term coined in a nonchalant and casual manner.

Every culture promotes user-friendliness in everything, including their languages. This means it is

more common to use simple words to describe technical concepts (for example, it is surely nicer to use

mouse, rather than an X-Y position indicator, which is what it was originally called).

Many computer words are metaphors, which are words or phrases used in an imaginative way to

describe sb/sth else, in order to show that the two things have the same qualities. For example, a computer

firewall allows limited access to an internal network from the Net which prevents intruders from stealing or

destroying confidential data in the same way as firewall stops fire spreading from one area to another. The

computer’s memory holds information, just like the fact that people remember information. Similarly, cloud

computing gives the idea that you store your information on the clouds. More examples of metaphors

frequent use in IT are: notebook, cut, paste, virus, bug, mouse, voicemail, etc.

Page 2: English for Students of Computer Science

Computer words tend to have some word patterns (forms) that continue to occur again and again.

Some of these forms contain frequently used prefixes and suffixes. For example, web- (webcam, webcast,

weblog, webmaster); e- (e-pal, e-commerce, e-tailer, e-signature, e-cycle); cyber- (cyberculture,

cybercriminal, cyberslacker); -ware (firmware, freeware, shareware); techno- (technobabble,

technophobia, techno geek) and – log (weblog, keylog, splog).

Most computer words are usually not only short but abbreviated using the first letters of each word

(for example, DVD, IT, LAN and RAM). Moreover, some words are usually simply shortened, such as the

Net (the Internet).

Many computer words appear by giving new meanings and uses to already existing words in

general language (for example, mouse, apple, crash and keyboard). In addition, language changes can also

happen in the opposite direction when computing words are used in general language (for example, the

word bug appears in other contexts as well).

Most of the language on the Internet is colloquial which makes simpler computing words more

welcomed.

From the linguistic point of view, it could be interesting to find out how new words come about in

Information Technology. In addition, the awareness of word formation can be a powerful way to generate

new words and thereby to extend your vocabulary. These are not all but the most common processes listed

in no particular order:

1. Through blends which are also called portmanteau words (words formed from parts of two other

words), such as podcast (Ipod broadcast) or satnav (satellite navigation)

2. By forming compounds, which are made from two or more words. Such words are written in three

ways: as two separate words (address bus), as two words joined with a hyphen (stand-alone) or as one

word (keypad). To make compound nouns, the two parts may be: noun+noun (mail merge), adjective+noun

(high-speed), verb+noun (scrollbar) and verb+particle (plug-in). To form compound adjectives (normally

with a hyphen between two words), past participle is used as the second part (computer-aided) or

noun+present participle (space-saving) and noun+adjective (hands-free).

3. By using prefixes (debug: de+bug, telemarketing: tele+marketing and supersite: super+site)

4. By using suffixes (ripper: ripper, spyware: spyware or compression: compression)

5. By using neologisms (use of new words or phrases or new meaning for old words). New words, for

example, are: netiquette and phishing. Another example of giving a new meaning to the existing word can

be the word computer from the old word compute or giving a new meaning to the word virus.

6. By forming a new part of speech (to spam or to google)

7. From proper names (from introduced new products, especially if the type of product becomes

particularly associated with one brand). This has happened, for example, with Apple and Palmcorder.

8. By clipping (the reduction of a word to one of its parts such as, mike from microphone or synch from

synchronize).

9. By using initialisms (terms formed from the initial letter or letters of several words or parts of words,

and pronounced letter by letter). Examples of initialisms are: HTML, DNS, LCD, OS and CD.

10. By using acronyms (also formed from the initial letter or letters of several words or parts of words, but

pronounced as one word). Examples of acronyms are: CAD, CAT, BASIC, WAN and MIDI.

Finally, some of the terms may experience more than one process of word formation. For instance, CD-

ROM undergoes multiple processes from initialism to acronym.

To conclude, a better understanding of computer terminology and word formation processes will help you

to follow the extremely rapid progress in Information Technology.

Task 1. Match the IT terms with the number of the process listed in the second part of the article above

(some of the terms may undergo multiple processes).

Glog ` De-

follow

Cupcake Webcam

Netbook

Premaster

BCA CGMS

Encode De-friend

Page 3: English for Students of Computer Science

Bluetooth Green

washing

Green networking E-vampire

SaaS Spam

Decode Sexting

Demoware BlackBerry

CGO Gopher

Encoder Folksonomy

Task 2. Listen and summarize the ideas about the English Language (01:37).

Task 3. Match the words and phrases with their definitions.

1. public relations a) not widely known

2. monitors web traffic b) (refers to language only) recently invented or used for

the first time

3. newly coined c) checks and keeps records of which websites people are

visiting

4. tighter criteria d) measure or count

5. constitutes e) stricter standards by which something is judged or

decided

6. quantify f) language

7. obscure g) the activity of keeping good relationships between an

organization and the people outside it - sometimes

abbreviated to 'PR'

8. restrict inclusion of specialist slang h) not surprising

9. small wonder i) limit the addition of informal language

10. tongue j) is considered as

Page 4: English for Students of Computer Science

UNIT 1. SOFTWARE ENGINEERING

Discuss what you think programming is. What is a program?

Key words: disclaimer (n), error-prone (adj), overall (adj), refine (v), outline (v), input (n), output (n),

procedural (adj), verify(v), algorithm (n), value (n), validate (v), stub (n), debugger (n) , prompt (n), float

(n), variable (n), integer (n), loop (n), coincide (v), deliberate (adj), interface (n)

INTRODUCTION TO SOFTWARE ENGINEERING

Who can detect all his errors? From hidden faults protect me.

(from Psalm 19)

Let us first ask why we should be concerned about the engineering of software. In part the answer is that

there have been some notable software failures, many due to (1) … program design and implementation.

To make matters worse, there is often little documentation, or poorly written documentation, so that

maintenance programmers who try to fix problems with the software waste untold hours and sometimes

have to simply give up.

Large computer programs are very likely to contain errors. As software engineer John Shore put it in his

book The Sachertorte Algorithm (Viking, 1985), "the typical large computer program is considerably more

likely to have a major, crash-resulting (2) … than is the typical car, airplane, or elevator." For example, a

few patients were killed by a cancer treatment machine, the Therac-25, whose faulty software on rare

occasions delivered massive overdoses of radiation. Then there are reports of stealth aircraft that crashed

during testing due to software error.

Software companies usually include (3) … with their products stating that they will not pay for any

damages caused by their software. Some companies (4) … in the rush to (5) … the competition in getting a

product to market. Most commercial PC software is known to contain errors. Often one can search through

a long list at a software company's Web site for known bugs and possible solutions. In addition, many

companies commonly fix errors by sending out an "(6) … release" or "maintenance release" of their

software.

The two major types of software errors are design errors and coding errors. A design error means that the

plan created for producing the software did not include how to handle a certain situation or that the plan

was incorrect. A coding error means that errors were made when the plan was transformed into a program

written in a computer language. (Other types of errors include data entry errors and hardware errors. There

are also the trivial syntax errors that compilers find for you.)

This situation has been termed the software crisis. In general, it refers to poorly written, hard to read, (7) …

software that often lacks good documentation. Companies generally spend more money on software

maintenance than on any other aspect of software development. Thus it makes good sense to try to do a

better job the first time. This includes taking an engineering (8) … that begins with an overall abstract

model that is refined as more and more detail is added, careful testing of the software once it is created,

and writing good documentation (both that for the end-user and that intended for other programmers). Note

that testing does not guarantee correctness, however! In a large piece of software it is usually impossible to

test all cases. Thus one does not know if all of the errors have yet been found. Many companies release new

software when the rate at which new errors are found drops below some arbitrary level.

Task 1. Put the correct words from the list below in the above article.

1. a) sloppy b) cautious c) considerate

d) general

2. a) flow b) floe c) floor

d) flaw

3. a) grants b) disclaimers c) claimants

d) confirmations

4. a) cut a long story short b) cut and paste c) cut corners d) cut up rough

5. a) beat b) kick c) hit

d) knock

Page 5: English for Students of Computer Science

6. a) intersecting b) intern c) interim

d) internal

7. a) error-prone b) error alert c) error loading d) error-

correcting

8. a) failure b) solution c) approach

d) qualification

THE SOFTWARE DEVELOPMENT LIFE CYCLE

This life cycle outlines a careful, engineering approach to the development of software. There are many

variations on this cycle, some of which are better than others. The following, however, is fairly typical.

Analysis

This step consists of understanding the problem and developing precise specifications (of the input,

output, and processing). This step may involve interviewing the intended users of the software in order to

better understand their needs.

Top-down Design

Do the overall steps first, then the details. (There are rare occasions when a bottom-up approach or some

other method might be used.) Decisions on classes and data structures are made at this point. Typically one

asks what kind of data the program will have to handle, what one will use to hold this data, and what

functions might be needed to process this data. Charts and diagrams are commonly used. For example, one

might make drawings of the classes that will be used. If procedural programming is used (that is, no user-

defined classes), a structure chart might be used to picture the overall decomposition of the problem into

functions. An overall description for each function may be written out, perhaps using the "given, task,

return" style recommended elsewhere in these Web pages. Rough pseudocode algorithms for the functions

may be written out. (Pseudocode is a loosely-defined combination of English and programming language.

It allows one to write the algorithm for a function without worrying about minor details of coding.) One

may trace the execution of the algorithms by hand or apply mathematical proof techniques to try to verify

the correctness of the algorithms.

Prototyping

A prototype stage might be included at this point. A prototype is a rough working version that the users can

try out. In fact, it has been suggested that if you do not deliberately create a prototype, your program will

not be quite what you want, so that you will have to begin again anyway and your first attempt becomes a

prototype after all. The prototype may leave out a number of features and may even not try to compute

correct answers. Part of the goal is to allow the potential users to see the data input screens and output

screens, as well as to get a sense for the overall feel of the program.

Coding

Write the complete program out in C++. Too many beginning programmers try to start with this step. For

anything non-trivial this is a formula for disaster, or at least for wasting a lot of time! This is the step

where one worries about all of the details of C++ programming. If good design work has already been

done, the coding stage can be relatively easy.

Testing and Debugging

Test as many different cases as possible. With large software, however, it is probably not possible to test all

paths through the software. Test boundary values (such as grades of 0 and 100 in a grading program) and

invalid data (such as grades of -1 and 101 in the same grading program) in particular. Modular testing is

helpful (that is, test and validate each function separately, often by writing a test program that simply calls

this one function). Stubs can be used for subsidiary functions so that the main function can be tested by

itself. (A stub is a function that contains no code or something trivial like an output statement to say that

the function has been called. A stub may also assign some nonsense values to any answers that the function

is supposed to produce. Essentially the stub is a function whose real code has not yet been written.)

Another good way to check a program is to include output commands at strategic spots to write out

intermediate values. The debugger can also assist in finding where something is getting a wrong value. Be

sure that you know how to use it.

Page 6: English for Students of Computer Science

Maintenance

This involves fixing errors that show up after the software is in use, adding new features, changing to faster

algorithms, etc. This is where companies tend to waste

Page 7: English for Students of Computer Science

a lot of time and money, mostly because the previous steps where not done as well as they should have

been.

Documentation

This step coincides with all the other steps; it should not be done last. At each stage of the software

development cycle, important information is written down. Roughly speaking, documentation can be

divided up as follows:

For users:

tutorial

reference manual

For the programming team and maintenance programmers:

internal documentation (the given, task, return style is recommended)

external documentation

o specifications

o pseudocode algorithms

o various object-oriented design diagrams

o structure chart

o data flow diagram

o record of testing

o record of maintenance changes

Note that the software life cycle is not really a sequence of steps. It is a cycle in that at any step you may

realize that you need to go back to an earlier step due to an error or incomplete information. Do not expect

to go through the steps in order and be done. Expect to have to go back to previous steps, to have to make

changes to what you have already done, etc.

Note too that in developing large programs, one person would probably not do all of these steps. The first

two might be done by a systems analyst. Coding might be done by a team of programmers, where each

programmer is responsible for certain classes and/or functions (hence the need for good documentation

even at this point to aid in coordination). There may be a separate testing team and a separate maintenance

group. There may also be a program librarian when there are a large number of source code and other files

involved, specialized people to write documentation, etc.

Note that software users typically expect more than mere correctness of the programs that they use. They

also want the software to be easy to use. This can be handled by developing a clear, consistent user

interface, by including code to handle bad input data, etc.

Page 8: English for Students of Computer Science

Task 2. Decide whether these sentences are true (T) or false (F).

1. There are many variations on the life cycle.

2. The analysis consists of careful testing of the software once it is created.

3. Minor details of coding have to be dealt with first.

4. Only mathematical proof techniques can be applied to try to verify the correctness of the algorithms.

5. A prototype is a rough working version that the users can try out.

6. Maintenance involves fixing errors, adding new features, changing to faster algorithms, etc.

7. Documentation is not complicated and can be done last.

8. The software life cycle is a sequence of steps which are easy to go through in order and be done.

9. In developing large programs coding might be done by a team of programmers.

10. Correctness of the programs is what users typically expect.

Task 3. Arrange the stages of the software life cycle in the correct order.

1. The project starts with a client's requirement for a system.

2. Once testing is successfully completed the software is delivered and installed.

3. The software is developed according to the Design Specification.

4. A Functional Specification is produced for the client. This states what the system will do, but not how.

It lists the requirements of the system that must be satisfied.

5. Once the customer accepts the Functional Specification then the Design Specification is produced.

This defines how it will be developed.

6. The software is tested to check it matches the Design Specification.

7. The software is supported with maintenance contract to fix minor bugs when they are reported by the

client.

8. The software is tested against the Functional Specification. Does it satisfy all of the requirements?

Task 4. Match the words with the definitions.

a) compiler, b) debugger, c) float, d) integer, e) loop, f) prompt, g) software lifecycle, h) validation, i)

variable

1. in interactive display systems, a message on the display surface of a display device to help the user to

plan and execute subsequent operations

2. a software program that takes source code from a programming language such as C++, and converts it

into machine readable, executable code to be run on a computer

3. an application that helps find programming errors

4. a series of stages in the development of an application and is often used in Software Engineering

5. a fundamental (i.e. built into the compiler) type used to define numbers with fractional parts

6. a fundamental (i.e. built into the compiler) type used to define numeric variables holding whole numbers

7. a set of operations in a computer program that are continuously repeated

8. tests to determine whether an implemented system fulfills its requirements

9. a named item of data that represents a value that can change

Task 5. Match the following synonyms.

1. outline a) deal with

2. approach b) general

3. overall c) method, technique

4. handle d) define

5. execution e) concur

6. deliberate f) insignificant

7. in particular g) prove

8. validate h) specifically

9. trivial i) intentional

10. coincide j) performance

Task 6. Match the following phrases.

1. to better understand the needs a) of the algorithms by hand

Page 9: English for Students of Computer Science

2. to trace the execution b) feel of the program

3. to apply mathematical c) of the intended users

4. to get a sense for the overall d) an overall description for each

function

5. to write out e) proof techniques

6. to test all paths f) for subsidiary functions

7. to use stubs g) cases as possible

8. to go back to an earlier step

due to

h) through the software

9. to try out a rough i) working version

10. to test as many different j) an error or incomplete information

EXAMPLE

Let us consider a simple example to illustrate the use of the software development life cycle. Suppose that

we want an interactive program to help in figuring costs of purchases. Specifically, given the cost of an

item and the quantity purchased, the program should calculate the total cost. Then it should allow us to

figure out the cost of another purchase in the same manner, etc. At the end of a string of purchases the

grand total cost of all of the purchases should be produced.

The previous paragraph gives a rough description of what the software should do. If we can nail down

better the inputs and outputs we will have the analysis step pretty much completed. Suppose that we have

the program prompt the user for the quantity and unit cost, then print the total cost, and ask the user

whether or not to do another. If a yes answer, indicated by 'y', is given then the process should be repeated.

If a no answer, indicated by a 'n', is given then the grand total cost of all purchases should be printed and

then the program should end. This sums up the inputs, the processing, and the outputs.

In the design step, let's focus for a moment on the data. There is no need to save a lot of data. The only item

to be kept track of throughout the program is the grand total of all of the costs. That can be kept in a simple

float variable. The quantity, unit cost, and cost of an individual purchase can all be stored in simple

variables. All will be floats except for the quantity, which can be an integer.

Now let us focus on the processing. This will help us to figure out what functions to use. The one chunk of

processing that gets used over and over is that concerned with making one purchase. So let's consider

making a function to handle this, perhaps called OnePurchase. Since there is little else in this program that

is about all that we need other than a main function. The OnePurchase function will need to receive the

current grand total and will update it and send it back out. A reference parameter will then be used for the

grand total. The function will need to ask the user for the quantity and unit cost, so we will use local

variables for these. We can now write out the documentation on our proposed function as follows:

/* Given: GrandTotal The total cost of all purchases made thus far.

Task: To prompt the user for the info needed to make one purchase, printing

the cost of the purchase on the screen, and updating GrandTotal.

Return: GrandTotal The updated total cost of all purchases made.

*/

We might then write out pseudocode for what the function is to do, but this example is so simple that it is

not worth the effort. We might also draw a structure chart to show what function calls what other

function(s), but our program has OnePurchase called from main, and that is it. Thus that drawing is also not

worth writing down in this case.

Let us proceed to the coding step. Our first attempt gives us the purchase.cpp program. We remove any

syntax errors and then test the program to see that it produces correct output. (It appears that this program

does so.)

At this point we put the program into use and the maintenance phase begins. You might think that a simple

program like this has no need of maintenance. Probably there are no errors in the program. However, the

users soon start complaining that it is easy to make mistakes with the program because it doesn't check that

the numbers entered are reasonable. For example, the user could enter zero or even a negative number for

the quantity or unit cost. Essentially we are being asked to add new features to the software. In this case,

Page 10: English for Students of Computer Science

what is needed is input checking. We should add input-checking while loops to force the user to enter

positive numbers for quantity and unit price. This is left as an exercise for the reader.

Even this might not be enough. Maybe some users are horrible typists and even make mistakes with the y/n

question about whether to do another purchase. So we might need to do input checking there as well. Also,

the user might enter a 'y' or 'n' by mistake when a number should have been entered. That would cause our

current version of the program to do strange things. (Try it.) Thus we might need to add code to check for

this. (You will learn later that there is a fail function that can be used to tell you if the last input operation

failed. We might be able to use it to detect such a problem. Whenever the problem occurs we could print an

error message and prompt for a new value.)

What about the documentation "step" that takes place throughout all of the other steps of the software

development life cycle? Well, we obviously have internal documentation inside of purchase.cpp itself.

There is the comment section at the top of the file describing the overall operation of the program, and

there is the comment section for the OnePurchase function. We also have external documentation in the

form of an analysis and design document, essentially the paragraphs above on that subject. We may also

have a record of testing and a record of any changes that were made (such as the addition of input

checking).

Author: Br. David Carlson

Last updated: January 28, 2009

(Source: http://cis.stvincent.edu/html/tutorials/swd/softeng/softeng.html#Cycle, access date 2009 03 25)

Task 7. Complete the table with the correct form of the word.

noun verb adjective adverb

notable

error

compiler, compilation

deliberation

refinement

validation, validity

correctness, correction

verification

procedure

separation

Page 11: English for Students of Computer Science

Task 8. Place the given words under the correct prefix.

Accurate, approachable, common, complete, consistent, correct, exact, erring, essential, possible, precise,

predictable, probable, refined, separable, specific, standard, structural, supported, typical, trivial, valid,

verified

im - in- non- un-

Task 9. Complete the sentences with words from the article.

1. His written reports are incredibly s…. (lacking care or effort)

2. Despite all of the security it offers, quantum cryptology also has a few fundamental f….

(shortcomings)

3. TV commercial d… are expressed in fine print at the bottom of the screen or in a voice-over. (a formal

statement saying that you are not legally responsible for something)

4. An i… government was set up for the period before the country's first free election. (temporary and

intended to be used or accepted until something permanent exists)

5. The company has been the subject of an a… take-over. (unfair)

6. A message will appear which will p… you for certain information. (ask)

7. Can you f… … the answer to question 5? (find the solution to a problem after a lot of thought)

8. The rent takes a large c… out of my monthly salary. (part)

9. 6 is an i…, but 6.4 is not. (a whole number and not a fraction)

10. Two days isn't enough time to n… … the details of an agreement. (to understand something

completely)

11. It's difficult to k… … of all the new discoveries in genetics. ( to make certain that you know what is

happening)

What is a phrasal verb?

It's a verb + a particle (preposition or adverb) that changes the meaning to make a

new verb.

Examples: She's looking after the kids.

I've decided to give up smoking.

What will she say when she finds out?

Page 12: English for Students of Computer Science

Task 10. Fill in the blanks using the prepositions in the box below to form phrasal verbs.

down out back through up

1. Maintenance programmers who try to fix problems with the software waste untold hours and

sometimes have to simply give ….

2. The prototype may leave … a number of features and may even not try to compute correct answers.

3. Maintenance involves fixing errors that show … after the software is in use, adding new features,

changing to faster algorithms, etc.

4. In some cases errors are not worth writing ….

5. At any step of this cycle you may realize that you need to go … to an earlier step due to an error or

incomplete information.

6. If we can nail … better the inputs and outputs we will have the analysis step pretty much completed.

7. Do not expect to go … the steps in order and be done.

8. The program should allow us to figure … the cost of another purchase in the same manner, etc.

9. This sums … the inputs, the processing, and the outputs.

10. A prototype is a rough working version that the users can try ….

Task 11. Match the phrasal verbs from the sentences above with their meanings.

a. to not include someone or something

b. to become clear or apparent

c. to logically find the answer to a problem

d. to stop trying to do something

e. to understand fully

f. to test something such as a method or a piece of equipment to see if it is effective or works properly to

experience a particular process

g. to describe something using only a few words

h. to experience a particular process

i. to return to, start doing something again

j. to make notes

Task 12. Choose the most appropriate word to fill in the blanks.

OBJECT-ORIENTED PROGRAMMING

A major factor in the invention of Object-Oriented approach is to (1)… some of the flaws encountered with

the (2) … approach. In OOP, data is treated as a (3) … element and does not allow it to flow freely. It

bounds data closely to the functions that operate on it and protects it from (4) … modification from outside

functions. OOP allows (5) … of a problem into a number of entities called (6) … and then builds data and

functions around these objects. A major (7) … of OOP is code reusability.

1. a) add b) remove c) analyze

d) execute

2. a) different b) positive c) procedural d)

interactive

3. a) critical b) useful c) trivial d)

insignificant

4. a) expected b) abstract c) defined

d) accidental

5. a) insertion b) burst c) disappearance d)decomposition

6. a) objects b) goals c) classes

d) objectives

7. a) problem b) advantage c) drawback d) aim

Some important features of Object Oriented programming are as follows:

Emphasis … data rather than procedure ( at, over, on)

Programs are divided … objects ( into, in, over)

Data is hidden and cannot be accessed … external functions (over, by, to)

Objects can communicate with each other … functions (through, within, around)

New data and functions can be … added whenever necessary (easy, easily, with ease)

Page 13: English for Students of Computer Science

Follows … approach (bottom-up, bottom out, from top to bottom)

Task 13. Write the correct form of the word to complete the gaps.

BRIEFLY ON CONCEPTS OF OBJECT ORIENTED PROGRAMMING

Objects are the basic run-time entities in an object-oriented system. Programming problem is …

(1.ANALYSIS) in terms of objects and nature of communication between them. When a program is …

(2.EXECUTION), objects interact with each other by sending messages. Different objects can also interact

with each other without knowing the details of their data or code.

A class is a … (3. COLLECT) of objects of similar type. Once a class is… (4. DEFINITION), any number of

objects can be created which belong to that class.

Data abstraction refers to the act of representing essential features without including the background

details or … (5. EXPLAIN). Classes use the concept of abstraction and are defined as a list of abstract

attributes.

Storing data and functions in a single unit (class) is encapsulation. Data cannot be … (6. ACCESS) to the

outside world and only those functions which are stored in the class can access it.

Inheritance is the process by which objects can … (7. ACQUISITION) the properties of objects of other

class. In OOP, inheritance provides … (8. REUSE), like, adding additional features to an existing class

without modifying it. This is achieved by … (9. DERIVE) a new class from the existing one. The new class

will have … (10.COMBINATION) features of both the classes.

Polymorphism means the ability to take more than one form. An operation may exhibit different … (11.

BEHAVE) in different instances. The behavior depends on the data types used in the operation.

Polymorphism is extensively used in implementing Inheritance.

Task 14. Write a question for the underlined part of the sentences.

ADVANTAGES OF OOP

Object-Oriented Programming has the following advantages over conventional approaches:

OOP provides a clear modular structure for programs, which makes it good for defining abstract datatypes

where implementation details are hidden and the unit has a clearly defined interface.

OOP makes it easy to maintain and modify existing code as new objects can be created with small

differences to existing ones.

OOP provides a good framework for code libraries where supplied software components can be easily

adapted and modified by the programmer. This is particularly useful for developing graphical user

interfaces.

Task 15. Activity task. Go to the Webopedia website at www.webopedia.com. Look up the computer

languages in the table below and then complete the table.

Computer language Meaning Areas of application

Fortran/FORTRAN

Formula translator

COBOL

Pascal Named in honour of the scientist

Blaise Pascal

BASIC

C++ Adds object-oriented features to its

predecessor, C

Prolog

Ada Named after Augusta Ada Byron;

considered to be the world's first

programmer

Page 14: English for Students of Computer Science

LISP

(Source: http://www.cambridge.org/elt/ict/youandcomputers.htm#unit2)

Task 16. Speaking/writing.

Prepare a short presentation on one of the computer languages provided in “The Language Guide”

(http://www.engin.umd.umich.edu/CIS/course.des/cis400/) or any other website.

Page 15: English for Students of Computer Science