CS 61A

Structure and Interpretation of Computer Programs, Spring 2015

Instructor: John DeNero




Composition

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 will be giving your projects 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.

Composition Revision

To earn back lost composition points for projects 1, 2, & 3 submit composition corrections for each of those projects by Monday 4/13 @ 11:59pm.

Look at the comments on the submission provided by your grader and make the suggested changes to your code. If you have questions about the comments, the grader's email is included above comments.

Once you make the suggested changes, resubmit the project using OK with the command python3 ok --submit. If you worked with a partner, only one person has to re-submit. Once you resubmit, the OK website will indicate that a revision has been made. Your revision will be regraded after the deadline.

If you don't have the original folder or code, you can redownload the project and recover your code from OK with the download button found while viewing composition comments.

If the submission does not complete, ensure that you are submitting with ok using the --submit flag and the email that you are submitting under is the same one that received composition feedback online.