Computer Science Chapter 9
What is the fifth step, coding, which people try to skip to and then get a poorer result?
The process of converting detailed designs into computer code
What is the fourth step, algorithm selection/development/analysis?
The programmer determining or creating the most suitable and efficient algorithm for the task
What does the IDE allow?
The programmer to perform a number of tasks within one application program, instead of several
What is an executable module?
The resulting object code
What is syntax?
The rules for how statements must be written
What is a test suite?
The set of test cases
What is the task of the programmer?
To devise step-by-step commands than when carried out by computer, accomplish desired task
Both internal and external documentation exist.
True
Each user's machine must have a Python interpreter.
True
Testing occurs simulatenously with the development of code.
True
What testing takes place on each module as it is completed?
Unit testing
What kind of documentation helps people run the program, like an online tutorial?
User documentation
What is the sequential process where one step must be completed before moving to the next, and old steps are never revisited?
Waterfall model
What is written in the algorithm selection document?
What algorithm was chosen, how it is efficient and most suitable, and rationale for the choice
What is object-oriented program approach?
When objects are identified and perform together with their data and subtasks
A compiler translates high-level language program to _______, and then an assembler translates it to _______ in machine language
assembly language, object code
Testing, verification, and benchmarking, the 7th step, make sure that...
A program is 100% correct and will work on all data
What does completion of testing and benchmarking signify?
A program should be correct, efficient, and ready for delivery
What is the last (9th) step, maintenance?
Adapting and improving existing software product to meet changing needs
What is the agile software development?
An approach that recognizes that there are bound to be changes
When transitioning from machine to assembly language, what was needed to "translate" instructions?
An assembler
Why is the job of a compiler much more difficult than the assembler?
Because an assembler corresponds to at most one machine language instruction, a one-for-one translation
Why should costs and benefits of pair programming be weighed?
Because it is more effective, but more expensive
Why are there strict syntax rules about punctuation, keywords, etc. for high-level program language?
Because it must be translated
Why is documentation for debugging useful in the future?
Because the problems found are written and it explains how the code was changed to solve it
What is running the program on many data sets to be sure its performance falls within required limits?
Benchmarking
Object code is in the form of ________
Binary numbers
If compiler cannot understand, it cannot translate to machine language, and therefore, the instructions ________
Cannot be executed
Where is the object code for a task stored?
Code library
What is the new translator needed to convert high-level language instruction?
Compiler
What is the sixth step, which is the process of locating and correct program errors?
Debugging
A document for problem specification exists to...
Describe how the program is to behave in all circumstances
If the project is feasible, problem specification takes place second, which is...
Developing a concise statement of the exact problem the software is to solve
What is the traditional approach where tasks are broken down from tasks to subtasks until they're small enough to code?
Divide and conquer, or top-down
What is the 8th step, which is comprised of the written and online material that makes a program understandable?
Documentation
What is a testing approach where a special set of test cases is designed and you run the program using it?
Empirical Testing
What occurs if a program fails to follow syntax rules, which is ultimately why debugging is necessary?
Error
Documentation is not involved in every step.
False
Empirical Testing is always feasible.
False
Many beginning students believe the bulk of the effort should be devoted to implementation, which is true.
False
Successful programs are only used for a short period of time.
False
Syntax, runtime, and logic errors will receive an error message to help detect the cause.
False
The programmer does not direct changes in the value of a memory location.
False
To overcome the deficiencies of assembly language, what was created?
High-level programming languages
What is the restating of an algorithm in terms of computer code and ridding the code of all syntax errors?
Implementation
How do Ada, C++, Java, and Python differ?
In syntax
What environment do must programmers work within?
Integrated Development Environment
What testing is done to see that the modules communicate necessary data and all work together smoothly?
Integration testing
The Python program is ________, not compiled
Interpreted
What is one principle of agile software development, called pair programming?
Involves two programmers at a single station. One writes code, the other observes to look for error and they take turns
These are two disadvantages of assembly language, what are two others? -Programmer must manually manage movement of data items between memory locations and registers -Programmer must take microscopic view of a task and break it into tiny subtasks
It is machine specific and statements are not natural-language like
Why is the waterfall model not typically used?
It is not a flexible approach
What happens every time Python is executed?
It is translated from source code to object code
What is a piece of system software that inserts requested object code from code libraries into the object code for the requesting program?
Linker
What are the most subtle errors that are in the algorithm used to solve the problem, like an incorrect step?
Logic errors
Languages moved from 1st generation _____ languages, 2nd generation _____ languages, to 3rd generation _______ lanaguages
Machine, assembly, high-level
The first step of the software development life cycle is the feasibility study, which is...
Making all program stakeholders aware of the costs, benefits, and risks of development paths so they can decide which approach to use
What is binary machine language instruction called?
Object code
What philosophical family do most of today's popular high-level programming languages fall into?
Procedural language
What is the second testing method that uses mathematical logical to determine if a program is correct?
Program verification
What is the third step, which revolves around planning how it is to be done?
Program-design phase
What have no functionality, but give prospective users an idea of what a final software package will look like?
Prototypes
What allows misunderstandings to be identified early on?
Rapid prototyping process
What are errors that occur when the program is run using certain sets of data that result in illegal operation?
Runtime errors
What is the meaning of correctly written statements?
Semantics
What does a program written in procedural language consist of?
Sequences of statements that manipulate data items
What is the overall sequence of steps needed to complete a large-scale software project?
Software Development Life Cycle
What is high-level language instructions?
Source code
What is the most fundamental operation of a procedural language?
Storing and receiving data values
What kind of documentation enables programs who must later modify the program to understand the code?
Technical
What is regression testing?
Testing that exists if anything changes in already tested module, to be sure the change hasn't caused new error to previously correct code
What is open source program language based on?
The belief that better software is developed if a large group of people can examine and modify the code
What does the program design document describe?
The breaking of the problem into subtasks
What phase should be carefully paid attention to to make debugging easier?
The design phase