Section 2: Problem Solving and Theory of Computation Flashcards

1
Q

Chapter 7:

What are the 5 Stages in Software Development?

A
Analysis,
Design,
Implementation,
Testing,
Evaluation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Chapter 7:

What is the Analysis stage of Software Development about?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Chapter 7:

What is the Design stage of Software Development about?

A

Data Structures specified.

Algorithms, Interfaces, Visuals are designed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Chapter 7:

What is the Implementation stage of Software Development about?

A

This is where the Program is written.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Chapter 7:

What is the Testing stage of Software Development about?

A

The system must be tested for errors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Chapter 7:

What is the Evaluation stage of Software Development about?

A

The system is evaluated according to given criteria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Chapter 7:

What does Exhaustive Search mean?

A

Every possible combination is tried and tested.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Chapter 7:

What does Divide-and-Conquer mean?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Chapter 8:

What is the aim of Structured Programming?

A

To improve the Clarity and Maintainability of Programs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Chapter 8:

In Block-Structured Languages, what is a Block?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Chapter 8:

What is a Top-down design?

A

Where you break the task into large chunks, then break the chunks into smaller chunks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Chapter 8:

What is another name for Structured Programming?

A

Modular Programming.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Chapter 8:

What are the advantages of Structured Programming?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Chapter 8:

What is a Hierarchy Chart?

A

A tool for representing the structure of a program.

It shows modules and how they connect to each other.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Chapter 8:

What are the limitations of a Hierarchy Chart?

A

The detail is limited, as the module names and their direct interactions are all that’s shown.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Chapter 9:

What is an Algorithm?

A

A set of steps used to solve a problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Chapter 9:

What features must a good Algorithm have?

A

It should be efficient.

It should be easy to understand and modify.

18
Q

Chapter 9:

What are some of the different types of Algorithm?

A

Internet-Related,

Route-Finding,

Compression,

Sorting,

Encryption.

19
Q

Chapter 9:

What is the name of the most common Sorting Algorithm?

A

Bubble Sort.

20
Q

Chapter 9:
How does the Bubble sort Algorithm work?
(largest to smallest)

A

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.

21
Q

Chapter 9:

What makes a good Program or Subroutine?

A

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.

22
Q

Chapter 10:

What are the 3 types of data input testing?

A

Normal Data,
Boundary Data,
Erroneous Data.

23
Q

Chapter 10:

In Testing, what is normal data?

A

Data within the expected range.

For example, if you should accept an integer between 0 and 100, 1 and 99 should be tested.

24
Q

Chapter 10:

In Testing, what is boundary data?

A

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.

25
Q

Chapter 10:

In Testing, what is Erroneous data?

A

Data that is outside the expected range, or of the wrong data type.
For example, if you should accept an integer between 0 and 100, 5.5, 200, and “Hello, World!” should be tested.

26
Q

Chapter 10:

What is Dry-Running a program?

A

When looking for errors, run the program and see where the problem happens to improve understanding of the problem.

Used complementary to searching through the source code.

27
Q

Chapter 10:

What are some of the Evaluation checks for a computer system?

A

Can it handle the amount of users that it needs to in a live environment?

Is the speed satisfactory?

Does the system work consistently?

Is the system easy to use?

Is the interface pleasant to work with, and free of spelling mistakes?

Has all of the intended functionality been implemented?

Has it been well documented?

Will it the system be easy to maintain?

Has it been sufficiently future-proofed?

Is the system cost effective?

28
Q

Chapter 11:

What is Computational Thinking?

A

Thinking about how you can break down a problem.

Using an algorithm to solve the problem.

29
Q

Chapter 11:

What is Abstraction?

A

Representing a complex idea, layout, or system by removing the details that don’t impact the solution.

30
Q

Chapter 11:

What is Decomposition?

A

Breaking down the problem into smaller steps that can be implemented separately and joined together.
(The joining together is Composition).

31
Q

Chapter 11:

What is Automation?

A

Building, Testing, and Observing models to solve real life problems.

32
Q

Chapter 12:

What is a Finite State Machine?

A

An abstract model of how a machine reacts to an external event.

33
Q

Chapter 12:

What is it called when an FSM changes state?

A

A transition.

Happens when a Transition Condition is met.

34
Q

Chapter 12:

What is a regular State in FSM notation?

A

Plain circle.

35
Q

Chapter 12:

What is a Start State in FSM notation?

A

Plain circle with a short arrow pointing into it.

36
Q

Chapter 12:

What is an Accept State in FSM notation?

A

A Plain circle with another smaller circle inside it.

37
Q

Chapter 12:

What is a Transition in FSM notation?

A

An arrow.

38
Q

Chapter 12:

What is another name for a FSM that doesn’t give an output?

A

Finite State Automation.

39
Q

Chapter 12:

What is the name for an FSM that accepts or rejects a string of inputs based on if the final state is an accept state?

A

Deterministic Finite State Machine.

40
Q

Chapter 12:

What is the name of a state that does not have a path to the accept node?

A

A dead state.

41
Q

Chapter 12:

What is the name for the table that represents all of the Transitions in an FSM.

A

State Transition Table.

format:
Current state, Input, next state