Section 2: Problem Solving and Theory of Computation Flashcards
Chapter 7:
What are the 5 Stages in Software Development?
Analysis, Design, Implementation, Testing, Evaluation.
Chapter 7:
What is the Analysis stage of Software Development about?
Establish the requirements and goals of the project.
Create a Data Model.
End users and alternative solutions are considered.
Conduct research on similar products, audience, and methods.
Chapter 7:
What is the Design stage of Software Development about?
Data Structures specified.
Algorithms, Interfaces, Visuals are designed.
Chapter 7:
What is the Implementation stage of Software Development about?
This is where the Program is written.
Chapter 7:
What is the Testing stage of Software Development about?
The system must be tested for errors.
Chapter 7:
What is the Evaluation stage of Software Development about?
The system is evaluated according to given criteria.
Chapter 7:
What does Exhaustive Search mean?
Every possible combination is tried and tested.
Chapter 7:
What does Divide-and-Conquer mean?
When you are searching through an ordered list, you can go to the midpoint and compare the value to the target and consider the sublist left or right of the middle value accordingly.
Chapter 8:
What is the aim of Structured Programming?
To improve the Clarity and Maintainability of Programs.
Chapter 8:
In Block-Structured Languages, what is a Block?
A section of code consisting of one or more statements.
A block may be a subroutine (function or procedure) where the block can be called by an identifier.
Chapter 8:
What is a Top-down design?
Where you break the task into large chunks, then break the chunks into smaller chunks.
Chapter 8:
What is another name for Structured Programming?
Modular Programming.
Chapter 8:
What are the advantages of Structured Programming?
Individual modules can be tested separately.
Modules can be kept in a module library and reused in other programs.
Large programs can be split into modules that are easier to read, debug, and maintain.
Several Programmers in a team can work on separate modules, thus shortening development time for a large project.
Chapter 8:
What is a Hierarchy Chart?
A tool for representing the structure of a program.
It shows modules and how they connect to each other.
Chapter 8:
What are the limitations of a Hierarchy Chart?
The detail is limited, as the module names and their direct interactions are all that’s shown.
Chapter 9:
What is an Algorithm?
A set of steps used to solve a problem.
Chapter 9:
What features must a good Algorithm have?
It should be efficient.
It should be easy to understand and modify.
Chapter 9:
What are some of the different types of Algorithm?
Internet-Related,
Route-Finding,
Compression,
Sorting,
Encryption.
Chapter 9:
What is the name of the most common Sorting Algorithm?
Bubble Sort.
Chapter 9:
How does the Bubble sort Algorithm work?
(largest to smallest)
Search through a list of data that can be sorted.
Compare the first two items.
If the second is (larger), switch the position of the two.
Compare the second and the third.
If the third is (larger), switch the positions.
Repeat until the end of the list.
Repeat until you search through the whole list without making a change.
Chapter 9:
What makes a good Program or Subroutine?
Variable names should be descriptive.
Comments should help clear up cryptic steps.
Statements should achieve the intended task in an efficient way.
Should be dynamic, allowing for other programmers to easily make adaptations.
Chapter 10:
What are the 3 types of data input testing?
Normal Data,
Boundary Data,
Erroneous Data.
Chapter 10:
In Testing, what is normal data?
Data within the expected range.
For example, if you should accept an integer between 0 and 100, 1 and 99 should be tested.
Chapter 10:
In Testing, what is boundary data?
Data at the end of the expected range, and either side.
For example, if you should accept an integer between 0 and 100, -1, 0, 1, 99, 100, and 101 should be tested.