The ease by which other people can read and understand a program (often called "readability" in software engineering) is perhaps the most important quality of a program. Readable programs are used and extended by others, sometimes for decades. For this reason, we often repeat in 61A that programs are written to be read by humans, and only incidentally to be interpreted by computers.

This semester, we are introducing a new feature to 61A: composition feedback. A program is composed well if it is concise, well-named, understandable, and easy to follow. The course readers are members of the course staff in charge of making you more effective programmers. They will review your projects and provide suggestions about how to improve the overall composition of your programs.

Readers will also assign a small composition score (around 3 points) for each project; a few points that may encourage you to improve the readability of your submissions. This score is for the project as a whole, not for individual issues or questions.

Excellent composition does not mean adhering strictly to prescribed style conventions. There are many ways to program well, just as there are many styles of effective communication. However, the following guiding principles universally lead to better composition of programs:

This list may grow as we introduce new ideas in the course.