What does Professor Shriram Krishnamurthi expect a student to know after he/she works...

Quora Feeds

Active Member
Shriram Krishnamurthi

PAPL [current edition: Programming and Programming Languages] is meant to be a thorough introduction to beginning programming. It covers a few different things in somewhat interlocking style: a good programming style (functional, but with state where needed; a mix of latently- and statically-typed; a design recipe inspired by How to Design Programs); thinking about how to use a language to bootstrap more advanced linguistic styles; and learning how to analyze a variety of languages using programming. That's a lot to swallow, and it's because PAPL is really two books in one.

I wrote PAPL not only for student audiences, but also for professional programmers. There are many people out there who program for a living but have had limited exposure to a standard computer science education. For instance, they may have had a programming “bootcamp”, but they may have never even heard of what a big-O analysis is. Some people who learned programming this way sooner or later yearn to learn more about the discipline, but for this audience, I don't think a purely formal presentation is effective. PAPL is consciously written to appeal to such a reader (though I shouldn't be the one to judge its success!). PAPL is also written to help aspiring programmers—e.g., in high schools—get easy access to a much better curriculum than they can find in most of their schools.

The first half of PAPL corresponds to a first-year programming curriculum at Brown, though this material sometimes takes two years to cover at other institutions. The second half corresponds to a upper-level one-semester programming languages course at Brown, though again it is more advanced than what many universities call their “programming languages” course.

A student preparing for a job interview would be mostly fine with just the first half, though the early parts of the second half would put them in a particularly good position to have intelligent and interesting discussions with some interviewers.

Once you've finished PAPL there are many avenues for future study, depending on the student's actual goals and interests. A person completing the first half is ready for most upper-level computer science. A person completing the whole book who wants to learn more about programming languages can follow the book recommendations given in the marginal notes in the book itself.

See Questions On Quora

Continue reading...
 
Top