Computational Theory flashcards, diagrams and study guides
Study Computational Theory sets on Quizlet for free. Learn what you need to get good grades in your classes. Memorize important Computational Theory terms, definitions and concepts. Prepare for homework and exams with Quizlet’s free online flashcards, diagrams, study guides and practice tests. Discover Computational Theory and other Computer Science sets on Quizlet.
Top 15 sets of about 2,200
A set of steps used to define a problem, determine its cause, propose a solution, and verify a fix.
Attempt to resolve the issue by either confirming the theory and learning what needs to be done to fix the problem, or by not confirming the theory and forming a new one or escalating. (Step 3 of 6 in the CompTIA troubleshooting theory).
The first step in the troubleshooting method that identifies the affected problem area.
Deterministic Finite Automata
Non Deterministic Finite Automata
For DFA every state, symbol there exists a path and it is unique. For NFA every state, symbol there exists no path or multiple paths
Ability to do something successfully
a series of steps followed to solve a problem
Removing unnececessary details from a problem to generate or create a ,model of a physical object or process
-a collection of data that is unordered and does not include repeated items
notation that contains strings of characters that can be matched to the contents of a set
-any language that can be described using regular expressions
The ability to think logically about a problem and apply techniques for solving it.
A set of rules/instructions to be followed to solve a problem.
A puzzle in which the answer can be deduced from a given set of data.
Programming Computers effectively is largely dependent upon our ability to solve problems Programs essentially set out to resolve some problem Essentially we want to come up with a specific & efficient set of steps that can be repeated to solve our problem ● This set of steps is called an algorithm ● For example, if we want to find out the largest of 3 numbers what is the process we employ to achieve this result Once we come up with our algorithms then we convert it to code so it can solve that problem repeatedly ● Programs are usually consist of many algorithms
1 - Analyze the problem 2 - Solve & Define the algorithm 3 - Test the algorithm 4 - Refine the algorithm
1- Analyze the problem ● Try to gain a greater understanding of it ● Break the problem down into smaller parts ◘ AKA Divide and Conquer big problems can be overwhelming! ● use one of the methods we'll discuss later 2 - Solve & Define the algorithm ● If can solve it once, then we can start to figure out what steps we employed. ● Define these so we can solve it again.
A Turing machine is a finite state machine (FSM) with the ability to read and write data to an unlimited tape. It is a theoretical and can carry out any algorithm and produce a model of what is computable.
A Turing Machine consists of: 1. The tape, which is unlimited and can be written to or read from. Each cell can have a value of 0, 1, or blank. 2. The controller (the program), which determines what happens at each cell. 3. The read/write head, which can read from and write symbols to the tape.
1. Read the symbol on the tape 2. Erase or write a new symbol on the tape 3. Move the head left or right by a single space
Learning how to use a set of problem-solving skills and techniques that are used by computer programmers to write programs.
Breaking the problem into a number of sub-programs, so that each sub-problem accomplishes an identifiable task, which might itself be subdivided.
The process of removing unnecessary detail from a problem.
finite set of fundamental units out of which we build structures. (Σ)
a certain specified set of strings of characters from the alphabet (L)
Strings which are permissible in the language
a situation in which there is a goal, but it is not clear how to reach the goal
The processing of information to solve problems and make judgments and decisions.
A problem with clear specifications of the start state, goal state, and the processes for reaching the goal state.
• The syntax analysis portion of a language processor nearly always consists of two parts: - A low-level part called a lexical analyzer (mathematically, a finite automaton based on a regular grammar) - A high-level part called a syntax analyzer , or parser (mathematically, a push-down automaton based on a context-free grammar, or BNF)
• Provides a clear and concise syntax description • The parser can be based directly on the BNF • Parsers based on BNF are easy to maintain
• Simplicity - less complex approaches can be used for lexical analysis; separating them simplifies the parser • Efficiency - separation allows optimization of the lexical analyzer •Portability - parts of the lexical analyzer may not be portable, but the parser always is portable