Download - 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.
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
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
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
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.
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
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.
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
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,
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
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?
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)
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
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.