Why Program? CSE111 – Great ideas in Computer Science

advertisement
Why Program?
CSE111 – Great ideas in Computer Science



Clearly programming fits here
Programming is a Great Idea in Computer Science. It has
allowed computers to become what they are today.
The course satisfies the Math Requirement




Clearly programming has something to do with math. Even Karel
has something to do with math
It uses to logic we studied earlier
Helps us understand how computers make decisions
Can be painful
Copyright © 2008 by Helene G. Kershner
Why Program?

Why does anyone program?





Good job
Recreation
Tool for problem solving
A new way of thinking
Understand what’s going on inside the machine
Copyright © 2008 by Helene G. Kershner
Why Program?

Recreation? HUH?



Another kind of artist
There is a creative joy for some in writing a program
Amateur programming for some is not different than
amateur photography for others
Copyright © 2008 by Helene G. Kershner
Why Program?

Teaches clear communication




What is the problem?
What do I KNOW about the problem?
What am I trying to solve?
Break the problem down into parts that are solvable –
maybe

Break it down into parts that can at least be explored
Copyright © 2008 by Helene G. Kershner
Why Program?



Change the way we think!
Think differently, think clearly, think with a sense of
precision
Natural Language is not the best tool for thinking.
Why?





What we “mean” and what we “say” are often not the same
It is inherently imprecise
It involves idioms
Words say one thing and mean another
How we say things matters




Facial expressions
Body language
What we don’t say is often more important than what we do
Lawyers are the artists of Natural Language
Copyright © 2008 by Helene G. Kershner
Why Program?

Programming requires a language that is very
precise (often to the point of frustration).



Logical thinking is straightforward in a programming
language. It is not straightforward in a natural
language
Programming can force us to think clearly
If we think it but can’t say it clearly do we really
understand it?
Copyright © 2008 by Helene G. Kershner
Why Program?
Problem Solving:
 Ever been in an argument where you can’t seem
to make yourself understood?
 Perhaps that is because we don’t really
understand the point we want/need to make.
 Question: If we think we understand something
but can’t say it clearly do we really understand it?
Copyright © 2008 by Helene G. Kershner
Why Program?



Programming is a structured form of problem
solving
It is a mechanism for practicing and organizing
how to think
For some of us it is natural, for others it is not,
but the structure is helpful
Copyright © 2008 by Helene G. Kershner
Why Program?

Most problem solving is a “head” thing!
The problem is running around in my head and
possible solutions seem to be chasing it roundand-round.
Copyright © 2008 by Helene G. Kershner
Why Program?

Programming teaches problem solving without a
total all-consuming awareness of the mathematical
tools that are at it’s core.




We use algebra
We use logic
We use decision making
But we use them in an environment different from
the math we’ve been taught in school
Copyright © 2008 by Helene G. Kershner
Why Program?
Programming presents a style that empowers
us to apply SIMPLE language and
PLANNING to problem solving.
Copyright © 2008 by Helene G. Kershner
Why Program?
Programming is a thinking skill.
 Analyze a problem statement




Think clearly about what the solution could be
Gather information and express clearly the current
state of the problem?



What is the problem anyway?
Express the problem clearly and concisely in exactly words.
Why isn’t it solved yet?
What would it take to solve it?
Begin to address how to go from where we are now
to where we want to be.
Copyright © 2008 by Helene G. Kershner
Why Program?
Programming is a thinking skill.
 Analyze a problem statement


Think clearly about what the solution could be


Define the Output
Gather information and express clearly the current
state of the problem?


Define the Problem
Define the Input
Begin to address how to go from where we are now
to where we want to be.

Create an Initial Algorithm
Copyright © 2008 by Helene G. Kershner
Why Program?

Think again about how to solve the
problem!


Revise the Algorithm
Pay attention to details. The devil is in
the details

Make no assumptions
Copyright © 2008 by Helene G. Kershner
Why Program?
What did we do when we learned to program.





Primitives – a basic language
Learned to expand these into blocks that made our thinking
easier – it changed nothing for Karel’s behavior
Learned to let the machine make some basic decisions
Learned to let the machine repeat things
Learned to let the machine combine simple decision making
with repeating
Copyright © 2008 by Helene G. Kershner
Why Program?
Problem solving is a tool for everyone,
whether a doctor, lawyer, chef, journalist,
artist, educator or a scientist or engineer.
Everyone, everywhere solves problems every
day. The mental exercise of learning to
organize one’s thoughts so we can “talk” to
the computer, “talk” to Karel, makes us
better problem solvers.
Copyright © 2008 by Helene G. Kershner
Download