Teaching real-world programming
In undergraduate computer-science classes, homework assignments are usually to write programs, and students are graded on whether the programs do what they’re supposed to. Harried professors and teaching assistants can look over the students’ code and flag a few common and obvious errors, but they rarely have the time coach the students on writing clear and concise code.In the real world, however, code clarity is as important as software performance. Large software projects can involve hundreds of programmers, each working on a small corner of an application, and over the course of a project, personnel turnover can be high. Testing, revising and updating software may require people to review code that they had no hand in writing. If the code isn’t intelligible, engineers can waste a huge amount of time just figuring out how an existing program does what it does.Professors of computer science Charles E. Leiserson and Saman Amarasinghe,...