Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other. A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm. 

A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. Other complexity measures are also used, such as the amount of communication (used in communication complexity), the number of gates in a circuit (used in circuit complexity) and the number of processors (used in parallel computing). One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do. QUESTIONS:

Q1:
1. What is the aim of computational complexity theory?
2. What is computational complexity theory's aim?
3. 
Q2:
1. What condition is met that makes a problem difficult?
2. A problem is considered as being difficult is it meets what condition?
3. 
Q3:
1. What complexity measure is used in communication complexity?
2. Communication complexity uses what complexity measure?
3. 
Q4:
1. 
2. 
3. 
Q5:
1. Are there more than one measures of complexity that are used in the article?
2. Does the article mention more than one measure of complexity?
3. 
Q6:
1. What complexity measure is used in circuit complexity?
2. Circuit complexity uses what complexity measure?
3. 
Q7:
1. Are there more than two measures of complexity that are used in the article?
2. Does the article mention more than two measures of complexity?
3. 
Q8:
1. What complexity measure is used in parallel computing?
2. Parallel computing uses what complexity measure?
3. 
Q9:
1. What is one of the main objectives of computational complexity theory that is mentioned in the article?
2. the article mentions what main role of computational complexity theory?
3. 
Q10:
1. The number of processors are used as a complexity measure in what field?
2. What field uses the number of processors as a complexity measure?
3. 
Q11:
1. The number of gates in a circuit are used as a complexity measure in what field?
2. What field uses the number of gates in a circuit as a complexity measure?
3. 
Q12:
1. The amount of communication is used as a complexity measure in what field?
2. What field uses the amount of communication as a complexity measure?
3. 
Q13:
1. Is the algorithm that is used in a problem relevant in determining the difficulty of the problem?
2. When determining the difficulty of a problem, is it relevant to take the algorithm that is used into account?
3. 
