75 2 393KB
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, CDROM 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 ` Defollow Cupcake Webcam Netbook Premaster BCA CGMS Encode De-friend
Bluetooth washing Green networking SaaS Decode Demoware CGO Encoder
Green E-vampire Spam Sexting BlackBerry Gopher 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. 2.
public relations monitors web traffic
3.
newly coined
4. 5.
tighter criteria constitutes
6. 7.
quantify obscure
8. restrict inclusion of specialist slang 9. small wonder 10. tongue
a) not widely known b) (refers to language only) recently invented or used for the first time c) checks and keeps records of which websites people are visiting d) measure or count e) stricter standards by which something is judged or decided f) language g) the activity of keeping good relationships between an organization and the people outside it - sometimes abbreviated to 'PR' h) not surprising i) limit the addition of informal language 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. 2. 3. 4. 5.
a) sloppy d) general a) flow d) flaw a) grants d) confirmations a) cut a long story short a) beat d) knock
b) cautious b) floe
c) considerate c) floor
b) disclaimers b) cut and paste c) cut corners b) kick
c) claimants
d) cut up rough c) hit
6.
a) intersecting d) internal 7. a) error-prone correcting 8. a) failure d) qualification
b) intern b) error alert
c) interim c) error loading b) solution
d) errorc) approach
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 userdefined 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. 2. 3. 4. 5. 6. 7. 8. 9. 10.
There are many variations on the life cycle. The analysis consists of careful testing of the software once it is created. Minor details of coding have to be dealt with first. Only mathematical proof techniques can be applied to try to verify the correctness of the algorithms. A prototype is a rough working version that the users can try out. Maintenance involves fixing errors, adding new features, changing to faster algorithms, etc. Documentation is not complicated and can be done last. The software life cycle is a sequence of steps which are easy to go through in order and be done. In developing large programs coding might be done by a team of programmers. 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. 2. 3. 4. 5. 6. 7. 8. 9. 10.
outline approach overall handle execution deliberate in particular validate trivial coincide
a) b) c) d) e) f) g) h) i) j)
deal with general method, technique define concur insignificant prove specifically intentional performance
Task 6. Match the following phrases. 1.
to better understand the needs
a)
of the algorithms by hand
2. 3. 4.
to trace the execution to apply mathematical to get a sense for the overall
5. 6. 7. 8.
to write out to test all paths to use stubs to go back to an earlier step due to 9. to try out a rough 10. to test as many different
b) feel of the program c) of the intended users d) an overall description for each function e) proof techniques f) for subsidiary functions g) cases as possible h) through the software i) j)
working version 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 notable error compiler, compilation deliberation refinement validation, validity correctness, correction verification procedure separation
verb
adjective
adverb
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. outside world and only those functions which are stored in the class can access it.
ACCESS)
to the
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 Fortran/FORTRAN
Meaning 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
Areas of application
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.