For every ε > 0 and integers k and q (with k ≤ q ≤ k+k 2/4), we present a PCP characterization of NP, where the verifier queries q bits (of which only k are free bits), accepts a correct proof with probability ≥ 1 - ε and accepts a "proof" of a wrong statement with probability ≤ 2-(q-k). In particular, for every δ > 0 we have a PCP characterization of NP, where the verifier has, simultaneously, 1 + δ amortized query complexity and δ amortized free bit complexity. Both results are tight, unless P = NP. The optimal amortized query complexity of our verifier implies essentially tight non-approximability results for constraint satisfaction problems. Specifically, we can show that k-CSP, the problem of finding an assignment satisfying the maximum number of given constraints (where each constraint involves at most k variables) is NP-hard to approximate to within a factor 2-k+O(√k). The problem can be approximated to within a factor 2-k+1, and was known to be NP-hard to approximate to within a factor about 2-2k/3. We can also prove some new separation results between different PCP models. A PCP characterization of NP with optimal amortized free bit complexity implies that for every δ > 0 it is hard to approximate the maximum clique problem to within a n 1-δ factor. Such a characterization had already been proved by Håstad , in a celebrated recent breakthrough. Our construction gives an alternative, simpler, proof of this result. Our techniques also give a tight analysis of linearity testing algorithms with low amortized query complexity. As in the case of PCP, we show that it is possible to have a linearity testing algorithm that makes q queries and has error bounded from above by 2 -q+O(√/q). We also prove a lower bound showing that, for a certain, fairly general, class of testing algorithms, our analysis is tight even in the lower order term. That is, we show that the error of a q-query testing algorithm in this class has to be at least 2-q+Ω(√q).