writing… and coding cse/ise 300 spring 2011 tony scarlatos

11
Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Upload: chastity-richardson

Post on 27-Dec-2015

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Writing… and Coding

CSE/ISE 300 Spring 2011Tony Scarlatos

Page 2: 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. KnuthComputer Science Department, Stanford University

Page 3: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

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?

Page 4: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

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?

Page 5: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

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

Page 6: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Process

Above, a brainstorming mind map

Page 7: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Mind mapping an app

Page 8: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Structure of a program

Above, a generic UML diagram

Page 9: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Diagram of an Essay

Above, a diagram of the components of an essay

Page 10: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

Essay Outline Diagram

Page 11: Writing… and Coding CSE/ISE 300 Spring 2011 Tony Scarlatos

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