[ale] [OT] First Programming Language for Adult??

Byron Jeff byronjeff at mail.clayton.edu
Sat May 31 10:02:17 EDT 2014


On Sat, May 31, 2014 at 09:43:22AM -0400, Byron Jeff wrote:
> Tom,
> 
> I'm sorry I'm late to the party. I wanted to throw in my two cents since
> this area is part of my job description.
> 
> Before she dives in, I would strongly suggest that she step back and take a
> 30000 ft view of the issue. Specifically:
> 
> Programming isn't about languages. Programming is about solving problems.

> 1. Read, Understand, and Explain the problem.
> 
> 2. Design potential solutions for the problem, then test to see if those
> solutions actually solve the problem. This should be done in an adhoc non
> programmatic environment (such as paper).
> 
> 3. Map the solution elements from step #2 onto the programmatic elements
> available in the programming language of your choice.
> 
> 4. Write/Debug the program using the mappings from step #3.
> 
> 5. Test, Test, and Test the final artifact.

I have a forgotten addendum or three:

1. Life gets a lot easier when you know the basics. By know I mean that you
can recognize a pattern without analysis because you've seen the pattern
and done the analysis enough times that you no longer have to
conscienciously think about it. Consider the following two math problems:

"What is the value of 4 times 9?"

"What is the value of 44 times 99?"

I'm fairly sure your brain gave you the answer to the first one almost as
soon as you read the problem. You "know" the answer. It no longer requires
thought or analysis to obtain it. You gained that knowledge from years of
exposure and practice on that problem.

The second you most likely starting "figuring out" how to solve. You have
to put some thought, some analysis into generating the answer.

Of course the two are related because you cannot solve the more complex
problem without "knowing" how the answer to the simpler one.

On problem with programming in terms of novices is that everything, and I
mean absolutely everything, looks like the second problem. Since there is
rarely enough exposure or practice, very few concepts are "known". But
"knowing" the basics simplifies the analysis of the more complex tasks.

2. The internet is your frenemy in this process. It's important to learn
how to use it as a tool in the problem solving process. It's equally
important not to fall into the trap of thinking it's the solution to all
your problems. In the list above it's helpful at steps 3 and possibly 4.
However, it is important to go though the process of thouroughly
understanding the problem and having an outline of the solution space
before trying to dig up potential mappings on the internet.

3. I would make the suggestion that she set a goal to code up something
that she would use for herself. Writing for yourself gives an inherent
motivation to have a complete understanding of the process as opposed to
just having a arbitrary task to practice on.

BAJ

-- 
Byron A. Jeff
Chair: Department of Computer Science and Information Technology
College of Information and Mathematical Sciences
Clayton State University
http://faculty.clayton.edu/bjeff


More information about the Ale mailing list