Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos
Some thoughts… "When I'm writing poetry, it feels like the center of my thinking is in a particular place, and when I'm writing code the center of my thinking feels in the same kind of place.” - Richard Gabriel, Distinguished Engineer at Sun Microsystems “Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.” - Donald E. Knuth Computer Science Department, Stanford University
What’s the point of this class? Is it just to produce programmers with more polished resumes, slightly more intelligible reports, or zippy press releases? Or is it also possible that the discipline of good writing could improve students’ critical thinking and reasoning, and therefore their software development skills?
Writing and Coding – a facile analogy? Programmers and writers work with the tools and structure of language: – Text editor – Vocabulary Nouns = Objects Adjectives = Properties Verbs = Methods Punctuation = Coding Symbols – Grammar and syntax Both writing and coding strive to be precise, to accomplish a task with an economy of language. But is that really all there is?
Writing and Coding Both are processes, not products Both are iterative Both are creative endeavors Both require problem solving, where there is no single perfect solution Both rely on a structured approach to accomplishing a task
Process Above, a brainstorming mind map
Mind mapping an app
Structure of a program Above, a generic UML diagram
Diagram of an Essay Above, a diagram of the components of an essay
Essay Outline Diagram
The key – Heilmeier’s Catechism What are you trying to do? Articulate your objectives using absolutely no jargon. How is it done today, and what are the limits of current practice? What's new in your approach and why do you think it will be successful? Who cares? If you're successful, what difference will it make? What are the risks and the payoffs? How much will it cost? How long will it take? What are the midterm and final "exams" to check for success? - by George H. Heilmeier, President and CEO of Bellcore