|
I did. To me, it seems like an programming obsessed person shouting something.
Your statement: "you doubtless agree that at least many people should learn to code."
My response: no.
Your statement: "My opinion is that even people who have no desire to program for a living should learn the basics, just so that they understand the world around them better and expand their mental horizons"
My response: That is your opinion. No one cares. And who told you programming can lead to expansion of mental horizon?
Don't loose this one: " I have created an outline, or syllabus, for a programming course targeting those without any previous experience in or specific knowledge of programming. I have in mind a one-year course, presented to either grade school or high school students, but this course could actually be adapted for people in general, not necessarily just those in school."
Not true at all. Your "syllabus" is ridiculous. It tells about real World aspects after you have learnt technical aspect. Also, there are so many technologies in this World that one just cannot come up with Unified theory(yes, pun intended).
I do not disagree with few things there but I certainly do not agree to it in its entirety.
|
|
|
|
|
My counter-responses:
I am not obsessed with programming.
Perhaps your definition of the word "many" differs from mine.
As to programming expanding your mental horizons, it's commonly accepted. Do some research.
I think you meant "lose" (the opposite of gain, or win) not "loose" which is the opposite of "tight."
A major point of the syllabus is that there are myriad ever-changing technologies, but that there are certain basics/constants that are necessary.
|
|
|
|
|
B. Clay Shannon wrote: Perhaps your definition of the word "many" differs from mine.
Any article that uses the word many to describe proportion of acceptance or rejection of certain notion is of course doomed. Never use many if you are trying to impose a presumably generalized opinion.
B. Clay Shannon wrote: As to programming expanding your mental horizons, it's commonly accepted. Do some research.
No it does not. Define mental horizon.
B. Clay Shannon wrote: I think you meant "lose" (the opposite of gain, or win) not "loose" which is the opposite of "tight."
Are you gonna talk about or grammar and language or content? (Hey loo, gonna is not even a word and this thing which I typed is wrong)
B. Clay Shannon wrote: A major point of the syllabus is that there are myriad ever-changing technologies, but that there are certain basics/constants that are necessary.
No. Nothing is necessary. Nothing is mandatory. The whole presumption is wrong. If you were to talk about extreme basics of programming regardless of technology, only thing you are left with is Maths. Yes one can debate a lot on this but everything in the end would lead to Maths.
|
|
|
|
|
I think that you're having a bad day and being argumentative.
We all have bad days. Sometimes they go on for quite some time. But do we have to share the badness with others?
But the originator of the post has a valid objective - Introducing computer programming to people who know nothing about it. With the presumption that they do. And he's stated his target audience is school kids. He should refine his target audience more but it's a well thought draft and he's asking for constructive input. I think he's doing a good job with what he's got. And with his intentions.
We should honor that.
- Grant
|
|
|
|
|
Bad day! I have bad months. Proper frustrated. I fight with anyone on anything without considering any fact at all.
|
|
|
|
|
I admit that I did not run through the whole thing (doesn't look bad, at least from the points I read), but here is a statement of mine what I think of teaching programming to everyone:
Whoever is interested in learning to program shall have the opportunity of doing so. It is most commonly know that you need logical understanding to get into programming. People who don't have this understanding (talking of it as a resource which might be there, or can be learnt / sharpened) and are not interested in programming at all probably won't benefit from these courses. Looking at todays youth (even people from my generation, and I'm only 20 years old - let's include anyone from 20 to 25 in that statement) I'd prefer courses which teach them responsibility, Google searches and general computer awarness.
I will never again mention that Dalek Dave was the poster of the One Millionth Lounge Post, nor that it was complete drivel.
How to ask a question
|
|
|
|
|
Well, all I can say is, thank you for putting it on jsFiddle so I could change the horrid color scheme.
Marc
|
|
|
|
|
That's serendipitous, because I was just experimenting with that - what did you change it to?
|
|
|
|
|
I'm a traditionalist. White background, black headers.
Marc
|
|
|
|
|
I can't bring myself to go that "plain vanilla," but I did compromise with this iteration: http://jsfiddle.net/clayshannon/LnWAp/4/[^]
BTW, say "hey" to your brother Chad for me. I'm a Packers fan from way back. Hopefully he hasn't gone over to the Titans.
|
|
|
|
|
B. Clay Shannon wrote: BTW, say "hey" to your brother Chad for me.
I'm an only child.
Marc
|
|
|
|
|
|
Thanks; aisle czech those out.
|
|
|
|
|
Clay,
I like where it is going...
One Headline missing (imo), is Analysis...
How seeing a problem, and solving it logically, leads to programming projects.
I guess in your terms:
Why Does Programming Exist?
Because we have inexpensive computer systems that CAN be programmed, and help solve problems.
What are Programs and who can Create them?
Solutions to specific problems. Anyone who can code. They are born of need/desire for things to
be different than they are. For example, wouldn't it be nice if your cell phone would go Silent when
you walk into a movie theatre, and then goes back to normal when you leave.
Programming is about making that happen. The analysis that goes in first. Which leads to design
decisions (which make or break apps)... And the ultimate requirements (GeoFencing vs. BlueTooth "silence" signal).
Anyways, just some thoughts. As a software developer, my first position was Programmer/Analyst, and
the Analyst portion was the coveted part... So I could be biased.
HTH
|
|
|
|
|
Thanks; I have updated it, and changed the appearance a bit (somebody else's suggestion), and will look at another couple of links; I will post the result (link) when finished.
|
|
|
|
|
|
I think I'd include a section on the differences between software, firmware, FPGAs, etc. The lines between these different types of programming are blurring, so knowledge about one gives some insight into the others.
Many items are controlled by firmware these days, from refrigerators to cars. To me, this is the crux of why everybody should have some programming education, not because they should all become programmers, but because it helps people to feel in control of their world rather than at the mercy of it. For example, new cars consist of multiple modules of firmware, all interoperating. An understanding of software in general provides a lot of understanding of why they work they way they do (never needing a tuneup, check-engine light, OBD2 readers, learning adaptive shifting, etc.).
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
Thanks, but I think that's "beyond the scope" of this introductory course. It is intended for people as young as middle school and to just "scratch the surface" of the programming world in a "sampler"/"overview" fashion.
I appreciate your thoughts on why all should learn *about* programming - to feel more in control of "their world."
|
|
|
|
|
I find any discussion about teaching programming to the masses interesting because back in 1996-97 while working on my Master's thesis, I included a programming component in the Computer Skills and Applications class (course for non-computer science majors that introduced students to the Internet, word processors, spreadsheets, and database applications) that I was able to teach at my university. After graduation, I did teach computer science at the community college level for 3 years.
Having said that, one thing about writing a syllabus is that one should include outcomes--what should a student be able to do upon completion of this course? You did say that you envision this course to be a one year course--if you're looking at it as a "survey" type course (i.e. learn about these topics but not actually implement anything), then I think a year is fine. If the outcome is for students to be able to develop a web site, desktop application, mobile app, etc., the time frame is far too aggressive for them to have a positive experience (teaching programming is tough--you're teaching people how to problem-solve and it's a building process and students need have time to digest it--and given the target group--grade school/high school--they're brains are just at that point where they're able to think more logically).
|
|
|
|
|
Thanks for that; I may use that terminology ("Survey").
Basically, my goal for the students can be deduced from what I would tell them (something like this) at the outset:
I will consider this class successful for you if you have reached any of the following conclusions at the end of the class: Now that I understand what programming involves,
(a) ...I know that I want to become a programmer, and will explore it further
(b) ...I know that I will *never* want to become a programmer, and will focus on other things
(c) ...I will be able to relate to future programming coworkers better (they are neither demigods nor hopeless nerds)
|
|
|
|
|
It looks like a good comprehensive overview of programming and what it entails.
The only thing that I would suggest is maybe including a short introduction to logic and critical thinking and how it relates to finding good solutions (algorithms) to programming problems. I'm not sure if this is part of the Algorithms section in your outline.
Some people enjoy that aspect of programming and others are quite happy just to program according to some specification. In my opinion that is what is exciting about programming, otherwise it is more like being a translator - translating the language of the spec into a programming language (a simplistic view, I know). This also exposes the students to another of the many aspects of programming to help them decide which, if any, is right for them.
In the past, I taught a first year university course in 'fundamentals of computing' where most of the class had not had much interaction with a computer before (some had never even switched a computer on) and they struggled with the logical step-wise decomposition of a solution into terms that a computer understands. Of course, most people in developed countries today have more exposure to technology so I'm not sure that this is a big an issue anymore.
|
|
|
|
|
Thanks, Wendy.
Yes, your thoughts on logic and critical thinking remind me of a couple of books I would recommend and "touch on," one of them being "The Design of Everyday Things" by Donald Norman.
|
|
|
|
|
"A typical 'Day in the Life' of a Programmer"
On this topic I could see it expanded to two categories:
1. A typical day for a programmer in a properly managed department.
2. A typical day in a department ran by a hate driven, non technical, MBA Nazi.
|
|
|
|
|
I get your drift. Unfortunately, having no experience with the former, it would be hard for me to even envision.
|
|
|
|
|