|To divide, to be used, to be written; to be coded, to encompass, to provide|
1. It to describe a collection of computer programs. 2. These
applications .industrial automation, business software, educational
software, medical software and etc. 3. Computer systems software
systems into three major classes. 4. Programming software usually
tools to assist a programmer in writing computer programs. 5.
Programs, video games by programming languages. 6. Software
usually in high-level programming languages.
Answer the following questions.
What is computer software? 2. What does software encompass? 3. What does hardware include? 4. What are high level languages oriented to?
What major classes are software systems divided into? Characterize them shortly.
Give a brief summary of the above text.
Lesson 4. Software engineering
Pronounce the following words and word-combinations, try to memorize them. You’ll come across these words while reading the text.
debugging — нахождение и устранение дефектов
maintaining — поддерживание
to exhibit — показывать
desired — требуемый
customization — настройка
application domain — область применения
numeric value — числовое значение
preference — предпочтение
consideration — обсуждение
availability — наличие
trade-offs — компромисс
property — свойство, качество
relevant — соответствующий
efficiency — эффективность, кпд
reliability — надежность
consumption — потребление
to imply — означать
error propagation — распространение ошибки prevention — предотвращение overflow — переполнение
underflow — исчезновение (значащих) разрядов, потеря значимости; опустошение (напр., буфера данных при обмене) zero division — деление на ноль robustness — запас прочности portability — мобильность to anticipate — предупреждать incompatibilities — несовместимость readability — удобочитаемость variable — переменная
Read and translate the text.
Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language. The code may be a modification of an existing source or something completely new, the purpose being to create a program that exhibits a certain desired behavior (customization). The process of writing source codes requires
expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.
Within software engineering, programming is regarded as one phase in a software development process.
In some specialist applications or extreme situations a program may be written or modified (known as patching) by directly storing the numeric values of the machine code instructions to be executed into memory.
There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline. Good programming is generally considered to be the measured application of all three, with the goal of producing an efficient and maintainable software solution (the criteria for “efficient” and “maintainable” vary considerably). The discipline differs from many other technical professions in that programmers generally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves “programmers” or even “software engineers”.
Another ongoing debate is the extent to which the programming language used in writing programs affects the form that the final program takes.
Different programming languages support different styles of programming (called programming paradigms). The choice of language used is subject to many considerations, such as company policy, suitability to task or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute.
Allen Downey, in his book How To Think Like A Computer Scientist
“The details look different in different languages, but a few basic instructions appear in just about every language. Input: Get data from the keyboard, a file, or some other device. Output: Display data on the screen or send data to a file or other device. Math: Perform basic mathematical operations like addition and multiplication. Conditional execution: Check for certain conditions and execute the appropriate sequence of statements. Repetition: Perform some action repeatedly, usually with some variation.”
Although quality programming can be achieved in a number of ways, following five properties are among the most relevant:
Efficiency/ performance: it is referred to the system resource consumption (computer processor, memory, slow devices, networks and to some extent even user interaction) which must be the lowest possible.
Reliability: the results of the program must be correct, which not only implies a correct code implementation but also reduction of error propagation (e.g. resulting from data conversion) and prevention of typical errors (overflow, underflow or zero division).
Robustness: a program must anticipate situations of data type conflict and all other incompatibilities which result in run time errors and break the program. The focus of this aspect is the interaction with the user and the handling of error messages.
Portability: it should work as it is in any software and hardware environment, or at least without relevant reprogramming.
Readability: the purpose of the main program and of each subroutine must be clearly defined with appropriate comments and self explanatory choice of symbolic names (constants, variables, function names, classes, and methods).
efficiency/ performance - эффективность, практичность программы; robustness - выносливость (к нежелательным, но возможным воздействиям); робастность; portability - взаимозаменяемость, мобильность, переносимость; buffer overflows/underflows - переполнение приёмного буфера/ отрицательное переполнение буфера
Sort out all international words from the text and translate them.
Turn the verbs into nouns using the suffix -tion and translate into Russian:
To operate - operation, to execute, to implement, to prevent, to propagate, to consume, to instruct, to add, to multiply, to vary, to apply, to reduce, to modify, customize.
Turn the verbs into gerunds using -ing and translate them into Russian:
to write - writing, to program, to code, to test, to produce, to handle, to reprogram.
Translate Allen Downey’s statement from his book in writing.
Answer the following questions.
What is computer programming? 2. What is written in a programming language? 3. What field of knowledge does the process of writing source codes require expertise in? 4. What debates are mentioned in the text? 5. What does the choice of programming language depend on? 6. How many fundamental properties must the program finally satisfy? 7. Can you add your own quality requirements?
Match phrases (1-5) to (A-E) to make up sentences.
1 . The process of writing source codes requires...
A program may be written.
Good programming has.
Different programming languages support.
Quality programming can be achieved.
A the goal of producing an
efficient and maintainable software solution.
_in a number of ways
D expertise in many
E by directly storing the
numeric values of the machine code instructions.
Choose the proper word for the sentences given below.