Unit 8. Computer programming
Text A
Pre-reading task. Match the meaning of the following English words with their Russian definitions.
1. assumption a) программа - отладчик
2. event driven b) сетка, таблица
3. gridc) предположение, допущение
4. paradigm d) управляемое событием
5. debugger e) система понятий, модель
6. flowchart f) постановка задачи
7. problem statement g) графическая схема программы
Reading. Read the text and try to guess the meaning of the words in bold. Check your variants in the dictionary.
PROGRAM PLANNING
The programming process begins with a problem statement that helps you clearly define the purpose of a computer program. In the context of programming, a problem statement defines certain elements that must be manipulated to achieve a result or goal. A good problem statement for a computer program has three characteristics:
1. It specifies any assumptions that define the scope of the problem.
2. It clearly specifies the known information.
3. It specifies when the problem has been solved.
In a problem statement an assumption is something you accept as true in order to proceed with program planning. The “known information” is the information that you supply to the computer to help it solve a problem. There are also variables (values that can change) and constants (factors that remain the same) in computer programs.
Formulating a problem statement provides a minimal amount of planning, which is sufficient for only the simplest programs. A typical commercial application requires far more extensive planning, which includes detailed program outlines, job assignments, and schedules. To some extent, program planning depends on the language and paradigm used to code a computer program. The phrase programming paradigm refers to a way of conceptualizing and structuring the tasks a computer performs. For example, whereas one programmer might focus on the steps required to complete a specific computation, another one might focus on the data that forms the basis for the computation. Quite a number of programming paradigms exist, and a programmer might use techniques from multiple paradigms while planning and coding a program.
There are different program planning tools, such as flowcharts, structured English, pseudocode, UML diagrams, and decision tables, which are used to provide sufficient planning.
Regardless of the tools used, when planning is complete, programmers can begin coding, testing, and documenting. The process of coding a computer program depends on programming language you use, the programming tools you select, and the programming paradigm that best fits the problem you are trying to solve. Programmers typically use a text editor, a program editor, or a VDE to code computer programs.
A text editor is any word processor that can be used for basic editing tasks, such as writing e-mail, creating documents, or coding computer programs. When using a text editor to code a computer program, you simply type in each instruction.
A program editor is a type of text editor specially designed for entering code for computer programs.
A VDE(visual development environment) provides programmers with tools to build substantial sections of a program by pointing and clicking rather than typing lines of code. A typical VDE is based on a form design grid that a programmer manipulates to design the user interface for a program. By using various tools provided by the VDE, a programmer can add objects, such as controls and graphics, to the form design grid. In the context of a VDE, a control is a screen-based object whose behavior can be defined by a programmer.
In visual development environment, each control comes with predefined set of events. Within the context of programming, anevent is defined as an action, such as click, drag, or key press, associated with the form or control. A programmer can select the events that apply to each control. An event usually requires the computer to make some response. Programmers write event-handling code for the procedures that specify how the computer responds to each event.
A programmer’s choice of development tools depends on what is available for a particular programming language and the nature of the programming project. Text editors and program editors provide a fine tool set for programs with minimal user interfaces. A visual development environment is a powerful tool for programming software applications for GUI environments, such as Windows. Most GUI applications are “event-driven”, which means that when launched, the program’s interface appears on the screen and waits for the user to initiate an event.
A computer program must be tested to ensure that it works correctly. Testing often consists of running the program and entering test data to see whether the program produces correct results.
When a program doesn’t work correctly, it is usually the result of an error made by the programmer. Asyntax error occurs when an instruction doesn’t follow the syntax rules, or grammar of the programming language. Syntax errors are easy to make, but they are usually also easy to detect and correct.
Another type of program bug is a runtime error,which, as its name indicates, shows up when you run a program. Some runtime errors result from instructions that the computer can’t execute.
Some runtime errors are classified as logic errors. A logic error is an error in the logic or design of a program. It can be caused by an inadequate definition of the problem or an incorrect formula for a calculation, and they are usually more difficult to identify than syntax errors.
Programmers can locate errors in a program by reading through lines of code, much like a proofreader. They can also use a tool called debuggerto step through a program and monitor the status of variables, input, and output. A debugger is sometimes packaged with a programming language or can be obtained as an add-on.
Anyone who uses computers is familiar with program documentation in the form of user manuals and help files. Programmers also insert documentation calledremarksor “comments” into the programming code. Remarks are identified by language-specific symbols.
A well-documented program contains initial remarks that explain its purpose and additional remarks in any sections of a program where the purpose of the code is not immediately clear.
Comprehension сheck. Mark the following statements as True or False.
1. The programming process begins with coding.
2. A typical commercial application requires a minimal amount of planning.
3. A programmer might use techniques from multiple paradigms while planning and coding.
4. Programmers typically use a program editor to code computer programs.
5. A visual development environment provides programmers with tools to build substantial sections of a program by pointing and clicking.
6. Text editors and program editors provide a fine tool for programming software interfaces.
7. Syntax errors result from instructions that the computer can’t execute.
Vocabulary practice
1. Match up the words that are similar in meaning.
computation medium
bug scheme
to execute error, mistake
environment calculation
outline carry out
to launch instrument
tool to start (up)
2. Fill in the blanks choosing from the variants given.
1. Microsoft Visual Basic was one of the first programming languages to feature a visual development … .
a) medium b) environment c) tool
2. If program testing doesn’t produce the expected results, the program contains a (an) …, sometimes called a “...”.
a) mistake b) error c) problem d) bug
3. Program planning ... depend on the language and paradigm used to code a computer program.
a) instruments b) options c) tools
4. When the user … GUI application, the program interface appears on the screen and waits for the user to initiate an event by clicking a menu, dragging an object, or typing text.
a) starts up b) begins c) launches
5. A typical commercial program requires extensive planning, which includes detailed program … .
a) plans b) outlines c) schemes
6. Some runtime errors result from instructions that computer can’t ... .
a) execute b) make c) carry out
7. Programmers approach problems in different ways: while one programmer might focus on the steps to complete specific …, another programmer might focus on the data that forms the basis for the … .
a) tasks b) calculations c) computations
3. Make two-word combinations using the words in columns and then fill in the following sentences.
A: a) programming B: planning
b) problem error
c) runtime statement
d) structured manual
e) event driven
f) program paradigm
g) user English
1. Anyone who uses computers is familiar with program documentation in the form of ... and help files.
2 The process of coding a computer program depends on programming language you use, the programming tools you select, and the … that best fits the problem you are trying to solve.
3. The programming process begins with a … that helps you clearly define the purpose of a computer program.
4. Most GUI applications are …, which means that when launched, the program’s interface appears on the screen and waits for the user to initiate an event.
5. An assumption is something you accept as true in order to proceed with … .
6. There are different program planning tools, such as flowcharts, … pseudocode, UML diagrams, and decision tables.
7. … shows up when you run a program.
4. Fill in the gaps in the text.
Computer programmers focus on _1_ computer programs, but also plan, test, and document computer programs. Before program code can be written, a programmer needs a clear problem _2_, which includes a list of assumptions, a description of known information, and a specification for what constitutes a solution. With a clear plan, a programmer can begin coding using a generic text editor, a program editor, or a _3_ development environment. A program is not complete until it has been tested to ensure that it contains no _4_ errors or runtime errors. Programmers can use software called a _5_ to step through a program. All computer programs should include internal documentation in the form of _6_, which are explanatory comments inserted into a computer program along with lines of code.
Speaking. Discuss the following questions.
1. What is a problem statement?
2. What is an assumption?
3. Does the problem statement provide sufficient planning to begin coding?
4. How does a programmer code a computer program?
5. What is a text editor and a program editor?
6. What is a VDE?
7. How does a programmer know if a program works?
8. What can cause program errors?
9. How do programmers find errors?
10. Do computer programs contain any special documentation?
Text B
Pre-reading. Match the English words with their Russian equivalents.
1. sequence a) образец, шаблон
2. walkthrough b) последовательность
3. pattern, sample c) цикл, повтор
4. loop, iteration d) сквозной контроль
5. notational e) применять
6. implement f) цифровая запись
Reading. Read the text and try to guess the meaning of the words in bold. Check your variants in the dictionary.
PROCEDURAL PROGRAMMING
1. The traditional approach to programming uses a procedural paradigm (sometimes called “imperative paradigm”) to conceptualize the solution to a problem as a sequence of steps. A program written in a procedural language typically consists of self-contained instructions in a sequence that indicates how a task is to be performed or a problem is to be solved.
2. A programming language that supports the procedural paradigm is called a procedural language. Procedural languages are well suited for problems that can be easily solved with a linear, or step–by-step, algorithm. Programs created with procedural languages have a starting point and an ending point. The flow of execution from the beginning to the end of the program is essentially linear – that is, the computer begins at the first instruction and carries out the prescribed series of instructions until it reaches the end of the program.
3. Analgorithm is a set of steps for carrying out a task that can be written down and implemented. An algorithm for a computer program is a set of steps that explains how to begin with known information specified in a problem statement and how to manipulate that information to arrive a solution. In a later phase of the softwaredevelopment process, the algorithm is coded into instructions written in a programming language so that a computer can implement it.
4. To design an algorithm, you might begin by recording the steps you take to solve the problem manually. The computer also needs the initial information, so the part of your algorithm must specify how the computer gets it. Next, your algorithm should also specify how to manipulate this information and, finally, how the computer decides what to display as the solution.
5. You can express an algorithm in several different ways, including structured English, pseudocode, and flowcharts. These tools are not programming languages, and they cannot be processed by a computer. Their purpose is to give you a way to document your ideas for program design.
6. Structured English is a subset of the English language with a limited selection of sentence structures that reflects processing activities. Another way to express an algorithm is with pseudocode. Pseudocode is a notational system for algorithms that has been described as a mixture of English and your favorite programming language.
7. A third way to express an algorithm is to use a flowchart. Aflowchart is a graphical representation of the way a computer should progress from one instruction to the next when it performs a task.
8. Before finalizing the algorithm for a computer program, you should perform a walkthroughtoverify that your algorithm works.To perform a walkthrough for a simple program, you can use a calculator, paper, and pencil to step through a sample problem using realistic “test” data.
9. For more complex programs, a walkthrough might consist of a verbal presentation to a group of programmers who can help identify logical errors in the algorithm and suggest ways to make the algorithm more efficient.
10.The algorithm specifies the order in which program instructions are performed by the computer. Unless you do otherwise, sequential execution is the normal pattern of program execution. During sequential execution,the computer performs each instruction in the order it appears – the first instruction in the program is executed first, then the second instruction, and so on, to the last instruction in the program.
11. Some algorithms specify that a program must execute instructions in an order different from the sequence in which they are listed, skip some instructions under certain circumstances, or repeat instructions. Control structures are instructions that specify the sequence in which program is executed. Most programming languages have three types of control structures: sequence controls, selection controls, and repetition controls.
12. A sequence control structure changes the order in which instructions are carried out by directing the computer to execute an instruction elsewhere in the program. A sequence control structuredirects the computer to the statements they contain, but when these statements have been executed, the computer neatly returns to the main program.
13. A selection control structure, also referred to as a “decision structure” or “branch”, tells a computer what to do, based on whether a condition is true or false. A simple example of a selection control structure is the IF…THEN…ELSE command.A repetition control structure directs the computer to repeat one or more instructions until certain condition is met. The section of code that repeats is usually referred to as aloop or “iteration”. Some of the most frequently used repetition commands are FOR…NEXT, DO…WHILE, DO…UNTIL, and WHILE…WEND (which means “while ends”).
14. All the first programming languages were procedural. The first widely used standardized computer language, FORTRAN, with its procedural paradigm set the pattern for other popular procedural languages, such as COBOL, APL, ALGOL, PL/1, PASCAL, C, ADA, and BASIC.
15. The procedural approach is best suited for problems that can be solved by following a step-by-step algorithm. It has been widely used for transaction processing, which is characterized by the use of a single algorithm applied to many different sets of data. For example, in banking industry, the algorithm for calculating checking account balances is the same, regardless of the amounts deposited and withdrawn. Many problems in math and science also lend themselves to the procedural approach. The procedural approach and procedural languages tend to produce programs that run quickly and use system resources efficiently. It is a classic approach understood by many programmers, software engineers, and system analysts. The procedural paradigm is quite flexible and powerful, which allows programmers to apply it to many types of problems.
16. The downside of the procedural paradigm is that it does not fit gracefully with certain types of problems – those that are unstructured or those with very complex algorithms. The procedural paradigm has also been criticized because it forces programmers to view problems as a series of steps, whereas some problems might better be visualized as interacting objects or as interrelated words, concepts, and ideas.
Comprehension check. Indicate the paragraph where the following ideas are found in the text.
1. A program written in a procedural language contains the prescribed series of instructions.
2. An algorithm shows the steps how to manipulate the information to arrive at a solution.
3. There are different tools to express an algorithm.
4. To make sure that your algorithm works, you should verify it.
5. Program instructions can be executed in order they are listed or some instructions can be skipped or repeated.
6. Many problems in banking industry lend themselves to the procedural approach.
Vocabulary practice
1. Match up the words that are opposite in meaning.
sequential parallel algorithm
downside problem
to focus written
solution advantage
to deposit to distract
linear algorithm random
verbal to withdraw
2. Fill in the blanks choosing from the variants given.
1. During … execution,the computer performs each instruction in the order it appears – the first instruction in the program is executed first, then the second instruction, and so on, to the last instruction in the program.
a) random b) sequential c) direct d) reverse
2. The main ... of procedural paradigm is that it forces programmers to view problems as a series of steps, whereas some problems might better be visualized as interacting objects or as interrelated words, concepts, and ideas.
a) benefit b) advantage c) drawback d) downside
3. The fact that algorithms are usually written in a format that is not specific to a particular programming language allows you … on formulating a correct algorithm.
a) to concentrate b) to focus c) to distract
4. The traditional approach to programming uses a procedural paradigm to conceptualize the … a problem as a sequence of steps.
a) problem b) decision c) solution
5. The algorithm for calculating checking account balances is the same, regardless of the amounts … and.... .
a) invested, placed, deposited b) drawn out, withdrawn, taken away
6. Procedural languages are well suited for problems that can be easily solved with … algorithm.
a) chain b) linear c) parallel
7. For complex programs, a walkthrough might consist of a... presentation to a group of programmers who can help identify logical errors in the algorithm and suggest ways to make the algorithm more efficient.
a) written b) graphical c) verbal
3. Make three-word combinations using the words in columns and then fill in the gaps in the following sentences.
A: a) selection B: account C: instruction
b) self step-by-step algorithm
c) software computer balances
d) standardized development language
e) checking control process
f) linear contained structure
1. The procedural approach is best suited for problems that can be solved by following a … .
2. A …, also referred to as a “decision structure” or “branch”, tells a computer what to do, based on whether a condition is true or false.
3. The first widely used …, FORTRAN, with its procedural paradigm set the pattern for other popular procedural languages.
4. In banking industry, the algorithm for calculating … is the same.
5. A program written in a procedural language typically consists of ... in a sequence that indicates how a task is to be performed or a problem is to be solved.
6. The algorithm is coded into instructions written in a programming language which a computer can implement in a later phase of the … .
4. Fill in the gaps in the text.
Languages such as COBOL and FORTRAN support a traditional approach to programming called the _1_ paradigm, which is based on a step-by-step _2_. Procedural languages provide a variety of _3_ structures that allow programmers to specify the order of program execution. A _4_ control structure directs the computer to execute instructions, not coded as a simple succession of steps. A _5_ control provides a choice of paths, based on whether a condition is true or false. A _6_ control, or “loop”, repeats one or more instructions until a certain condition is met. Procedural languages produce programs that run quickly and use _7_ resources efficiently.
Speaking. Discuss the following questions.
1. What is proceduralprogramming?
2. What is an algorithm?
3. How do you write an algorithm?
4. What is the best way to express an algorithm?
5. How do you know if your algorithm is correct?
6. In what order does a computer perform program instructions?
7. Can the computer make decisions while it executes a program?
8. What are the most popular procedural languages?
9. What kinds of problems are best suited to the procedural approach?
10. What are the advantages and disadvantages of the procedural paradigm?
Text C
Reading. Read the text and try to guess the meaning of the words in bold. Check your variants in the dictionary.