Codes which reduce the peak-to-average power (PAPR) in multi-code code division multiple access (MC-CDMA) communications systems are systematically studied. The problem of designing such codes is reformulated as a new coding-theoretic problem: codes with low PAPR are ones in which the codewords are far from the first-order ReedMuller code. Bounds on the trade-off between rate, PAPR and error-correcting capability of codes for MC-CDMA follow. The connections between the code design problem, bent functions and algebraic coding theory (in particular, the Kerdock codes and Delsarte-Goethals codes) are exploited to construct code families with flexible parameters for the small values of n of practical interest. In view of their algebraic structure, these codes enjoy efficient encoding and decoding algorithms. The paper concludes by listing open problems in algebraic coding theory and Boolean functions motivated by the paper.