Adaptive vs non adaptive queries in PCP
Consider an adaptive algorithm making $q$ queries. Fixing the randomness, we can describe the positions queried by the algorithm using a function $A$ which gets as input the answers of the preceding queries, and outputs the next position to be queried. If the bits are read from an array $x$, then the adaptive algorithm works as follows:


Read $b_1 = x_{A(\lambda)}$.
Read $b_2 = x_{A(b_1)}$.
Read $b_3 = x_{A(b_1b_2)}$.
...
Read $b_q = x_{A(b_1 b_2 \ldots b_{q-1})}$.


To simulate this non-adaptively, we simply read $x_{A(w)}$ for all words $w$ of length at most $q-1$. Given these $q' = 2^q-1$ non-adaptive queries, we can simulate the adaptive algorithm.