A Conversation for Project: An Introduction to Programming
Project: Computer Programming
A Perfectly Normal Beast Started conversation May 9, 2001
Hello, I got to your project after reading the Peer Review conversation your entry about Programming Loops (I also posted a reply there). I would like to participate as a sub editor in your project. Here is my life story of programming, so you can tell if you want me as a sub:
- BASIC at 8 years old in a course.
- Turbo Pascal at 12 years old in another course.
- Visual Basic out of book at about 14-15 years old.
- Turbo Pascal at high school. Got into Delphi around the same time.
- C/C++ as a trainee in a company (can't say I learned alot. I left
afer 3 weeks).
- Motorola's Assembly at high school (as part of studying Robotics).
- Intel x86 Assembly out of a book at the last year of high school.
- Currently learning MASM32 (Macro Assembler 32 bit for Windows).
I'm now almost 20 (just next month). I also played with HTML a bit, and also had some fun with Terminal's Script Language (if you ever heard of it), but I don't really consider these programming languages.
My spelling isn't the best either, but I think it's OK. Also, I don't think we can finish this in the time you alotted.
If you want, just give me a list of points you want to be in one of the subject in the project, and I'll write up an entry about it, so you can see if you like my writing.
Project: Computer Programming
Researcher PSG Posted May 10, 2001
Hello Ab guy!
sorry to abreviate name, but you get used to it around here.
Right, first I would be glad of some help. But I don't think you understand about sub-ed's, they are special researchers, there home page is here:
www.bbc.co.uk/h2g2/guide/A395697
But I would be glad of your help as an entry writer, if you want to be involved.
I feel it only fair to tell you my project hasn't been officially approved yet, but getting the ground work done ahead of time can't hurt.
By the way I may move the deadline back soon if official approval hasn't come through.
OK, the subject I would like you to look at is compilation and syntax, for 2 reasons.
1) Your knowledge in low level and experience with high level makes you ideal.
2) It is quite a good communication test, sorry.
I think this section should cover:
-What compilation is [Remember non-programmer terms please]
-Why syntax is important to compilation
-What syntax is in the context of the program
-Explaination of the significance of bracket enclosures [ in loops, etc]
-Explain line termination symbols [e.g. ;]
-Explain Case sensitivity problems [possibly, just an idea]
-Explain any other aspect you feel is important.
OK I think that is everything, as I say it is completely up to you if you still feel like helping, but in which ever case just drop me a message to tell me.
Researcher PSG
Project: Computer Programming
A Perfectly Normal Beast Posted May 11, 2001
Hi PSG.
Congragulations about the project being approved!
I wrote an entry about Compiler and Syntax, here it is:
http://www.bbc.co.uk/h2g2/guide/A546608
I didn't understand what you meant by "What syntax is in the context of the program", but I think I covered syntax pretty well.
And thanks for setting me strate about sub-eds.
I hope you'll like it, tell me what you think.
Project: Computer Programming
Researcher PSG Posted May 12, 2001
Hi Ab Guy.
I am ver impressed with this entry, it is a brilliant start on a tricky subject.
I just have a couple of points that might need a little change:
1) I worry slightly about using that assembly code, how about
ADD #01,A with a slight explainatory footnote (e.g. add 1 to register A)
2) I think the fact that computer languages are close to human language and the compiler turns them into the 1's and 0's the computer uses should be stressed more.
3) In the compiler section, I really like the riddle comparison, but I think you should give a brief description of an instruction, then your excelent description of a sweep.
4) On the end of line character bit I think you should say that compilers ignore new lines and spaces, so the end of line characters are the only things that seperate the instructions.
Apart from those points which bother me, I think it is a very good entry, and I will link this to the project page.
Any comments on my feedback, please leave a message.
Researcher PSG
p.s. I will let you know what is to happen next when I have decided, that should be about Tuesday [English Time].
Project: Computer Programming
Researcher PSG Posted May 15, 2001
Hello!
Right just posting to let you know I've written a peliminary entry on the introduction to programming, it is a bit of a rush job and isn't complete, but it is there to show direction, and also as a way to ask for suggestions about something specific.
Any feedback on suggested improvements, or suggestions on things to cover gratefully recieved, I will even accept positive feedback.
Researcher PSG
Project: Computer Programming
A Perfectly Normal Beast Posted May 15, 2001
Hi again PSG.
Thanks for all the compliments about my entry. I'm glad you're linking it to the project. So am I officially part of the project now?
I changed the bit with the assembly code, but I thought I'd better choose the simplest instruction I can. However, I don't know if the footnote will do much good, because alot of people have no idea what a register is...
I tried to think about ways to do it, but I haven't any ideas about how to stress the fact that computer languages are close to human languages... I'd appreciate any advice you have on this.
About the instrucion termination symbols - you said that compilers ignore new lines and spaces, but that's not always true. Many assembly compiler use new lines to seperate instructions, and spaces to seperate the instructions from their parameters.
I'm sorry but I haven't had the time to read your new entry yet, but I'll do it over the weekend.
A Perfectly Abnormal Guy.
p.s. I can't believe Douglas Adams is gone...
Project: Computer Programming
Researcher PSG Posted May 16, 2001
Hello Ab Guy!
Now first, the reason I suggested the code I did and the footnote is very simple, people are more willing to accept something that they understand, even if they don't know what they are doing it to.
It's always tricky to try and stress the fact that programming languages are close to human language. My suggestion is this:
IF( money<price )
{
print "Sorry, I haven't enough money.";
}
Then point ou this is closer to how a human will see it, than the computer, e.g. "This is closer to how a human would write this in normal language, but a computer would see this as simply data movements, comparison, branching, and moving data to screen."
I must admit I forgot about assembly compilers, but in that case they are using the newline symbol as there end of instruction, and the space symbol to compartmentalise. I don't know if looking at it this way will help to write the section, but if you have a go at it and put it on the coversation here, I'll have a look and we can discuss whether it works.
And last but not least, it's no problem just get your comments to me as fast as you can.
Researcher PSG
p.s. I know it's been quite a shock, I have been well impressed with the shear number and emotion of the tributes posted on his page.
Project: Computer Programming
Researcher PSG Posted May 16, 2001
Hello Ab Guy!
Now first, the reason I suggested the code I did and the footnote is very simple, people are more willing to accept something that they understand, even if they don't know what they are doing it to.
It's always tricky to try and stress the fact that programming languages are close to human language. My suggestion is this:
IF( money<price )
{
print "Sorry, I haven't enough money.";
}
Then point ou this is closer to how a human will see it, than the computer, e.g. "This is closer to how a human would write this in normal language, but a computer would see this as simply data movements, comparison, branching, and moving data to screen."
I must admit I forgot about assembly compilers, but in that case they are using the newline symbol as there end of instruction, and the space symbol to compartmentalise. I don't know if looking at it this way will help to write the section, but if you have a go at it and put it on the coversation here, I'll have a look and we can discuss whether it works.
And last but not least, it's no problem just get your comments to me as fast as you can.
Researcher PSG
p.s. I know it's been quite a shock, I have been well impressed with the shear number and emotion of the tributes posted on his page.
Project: Computer Programming
Researcher PSG Posted May 16, 2001
oh by the way, sorry about the duplicate, server problems.
And yes you are officially part of the project, I have put your name on the project page.
Project: Computer Programming
A Perfectly Normal Beast Posted May 16, 2001
Hi again PSG.
Here are my comments about your Introduction to Programming:
- The bit with the Bulgarian is GREAT! It's a funny and friendly start to a subject that might seem cold and not welcoming to many people.
- About the What Programming is for bit, well, I think you just covered a part of it. Programming isn't just for solving real world problems, it's for everything that has anything to do with computers/robots. I mean, games, graphics programs and even the browser you're using right now require programming. I think a definition of programming must be more totalitarian, i.e. explaining that getting the computer to do anything requires programming in some part of the proccess.
- About the explanation for Why are there Programming Languages, I think you need to bring up the point that the computer has no actual thought, and that it's just as smart as any ordinary light bulb. The light bulb and its switch are just one ellectrical circuit, while the computer simply consists of millions and millions of circuits. It holds data in the simple form of binary numbers (1s and 0s), because a 0 is an open circuit (light bulb off) and a 1 is a closed circuit (light bulb on). It doesn't understand the meaning of the data that it holds, which only bears meaning to us.
The part about programming languages bridging between human and computer languages is good in my opinion.
- The What is Programming Used for bit needs also to include the fact that it's used for EVERYTHING. You should mention some examples, as you did, but you should also add non-business one, like games, etc.
- Good definition of "Run" in the second footnote
I hope I helped
A Perfectly Abnormal Guy
Project: Computer Programming
A Perfectly Normal Beast Posted May 17, 2001
Hello PSG
I added the bit with the C language explaining about the similarity of programming languages to human languages. Thanks, it was a good advice.
I don't think we should explain about the way assembly compilers use the newline symbol and the space symbol. This entry is for lamers, and it's a hard point to convey over text. I think it might just confuse them. This is an Introduction to programming. Maybe later on we can write a more advanced programming entry.
A Perfectly Abnormal Guy
Project: Computer Programming
Researcher PSG Posted May 18, 2001
Hello Ab Guy!
Your probably right about the space and newline stuff, I think it is alright to leave it as it is for now, and I would quite like you to have a look at IF statements.
I have altered the introduction, I'm glad you like the Bulgarian stuff, tell me what you think of the alterations.
Also I have linked my old entry on introduction to programming loops, any comments gratefully received.
Right, I think that's all. I hope your OK with writing the IF statements, if your not, just leave a message.
Researcher PSG
Project: Computer Programming
A Perfectly Normal Beast Posted May 19, 2001
Hi PSG.
I went over your Introduction to Programming (and the bit with the Bulgarian made ma laugh again ), and I have some remarks about it:
- In the bit about What is Programming for - Literally
I don't think you should present programmig as telling the computer
what you expect of it, but simply telling the computer what to do.
If the computer is "expecting" something, then it has already been
programmed.
- In the bit where you "program" the Bulgarian into making tea, I
think you should change the second line so instead of "what series
of events happens", it should say "what series of instructions to
execute". Read the sentence with the change and tell me if you like
it better too.
- And just a technical note about the Use bit: I think you should
push the instructions of the postman program a bit, so it looks
like this:
1) Programming is used for....
1)The post man goes to the gate of each house.
2)
3)
4)
2) To applay computing to unreal...
I think it's a bit confusing the way it is now.
Good job on the rest of the entry!!!
I also have something to say about you Programming Loops entry:
- About the Loops with the Condition at the End bit, you wrote that
these loops will go on as long as it hasn't done what it wants to
do. Well, I think you should say that it will go on until the
coditional state in the end of it occurs. Some loops aren't just
trying to get something done, some are just waiting for something,
e.g. a loop that loops until the COM port buffer is cleared.
- In your explanation of the Condition you gave the "A+B=5" example,
and later on wrote that "the value of A and B have to be changed by
the loop code", but I think you should cut out the "by the loop
code" phrase, because their value just has to change, and it doesn't
matter who does it.
- You said that The Loop Code is basically the code that defines what
happens each time you loop. Well, I generally think you should avoid
explaning things using words from the things (i.e. "Code" from
"Loop Code"), and also, I think you shouldn't say "what happens"
but rather more in the fomr of telling the computer what to do. So
I think this sentence should look more like this:
This is basically the set of instructions to execute each time you
loop.
- About the Infinite Loops, I think you should add a note about
Windows' Message Loop, which is infinite by definition.
The bit about Loops with the Condition at the Beginning is VERY GOOD! GREAT example algorithm.
Well, that's pretty much it. I'll take on writing the If Statement entry, and I'll probably put it up in a day or two.
A Perfectly Abnormal Guy
p.s. Are you a member of ZZ9 Plural Z Alpha?
Project: Computer Programming
Researcher PSG Posted May 22, 2001
Hello Ab Guy!
I have looked at your feedback, and have acted on most points
But there are a couple I disagree with:
1) I think putting the words instruction and execute in the same sentance when I am talking to a beginner might be intimidating, but I have included your sentance revision in brackets as an "in other words".
2) I am using the term loop code to help define, simply, what is within the loop. So that is why it is in "A and B have to be changed by the loop code", just to explicitly say it has to change within the loop, but I have added "or in the loop definition" to help cover FOR loops
3) This is a simple introduction, I am very wary about mentioning use of infinite loops, in case someone thinks it's ok to use them all over the place. And also I don't know enough about the example you mentioned.
Thanks for the feedback.
It helps me to frame the entry correctly, so if you could take a quick look at the changes to see if they are clear.
Right, I just have a couple of things to ask, first I have put up a start to the variable entry, any comments gratefully recieved.
Second, in the next few days I am going to go through my entries and when I find words like loop or variable, I will make them links to the appropriate entry (except in the entry itself, naturally), if you could do the same I would be grateful. I think it will help people navigate the entries.
I look forward to reading the IF statement entry.
Researcher PSG
p.s. er, no, I'm not a member of ZZ9 plural Z Alpha, apart from my spacial location. What is ZZ9 plural Z Alpha?
Project: Computer Programming
A Perfectly Normal Beast Posted May 23, 2001
Hi PSG
I took another look at your Loops entry.
You added that A and B have to be changed not only by the code inside the loop, but also by the definition of the loop. I meant that it can be changed by anything. For example, when waiting for a COM port buffer to clear, the condition is set true by a factor from outside the loop. Same with the Windows message loop, it waits for a message from the operating system.
You didn't refer to one of my comments, and you didn't change the bit which it refered to, so I'm repeating it here:
- You said that The Loop Code is basically the code that defines what
happens each time you loop. Well, I generally think you should avoid
explaning things using words from the things (i.e. "Code" from
"Loop Code"), and also, I think you shouldn't say "what happens"
but rather more in the fomr of telling the computer what to do. So
I think this sentence should look more like this:
This is basically the set of instructions to execute each time you
loop.
You can read about the Windows message loop in any Windows programming language help file (e.g. C++, Visual C++, Visual Basic, etc.)
I like the changes you made. Putting in "soft" words instead of "instruction" and "executing".
I also wanted to tell you that I think we should generally use the phrase "Conditional Statements" rather than "If Statements".
About you Variable entry, well, I'm going to have to be a bit cruel, because I don't think you presented variable very well. Usually your analogies and examples are very good, but I think you missed your notch on this one.
First, your definition of Variables. I don't think you should have presented them as just anything. Variable are just names for memory adresses which contain numbers. These numbers can bear meaning to us, and we may interpret them as we wish, to just about anything you mentined. Also, I don't think the relatins between a program and its variables is like a car and its petrol. The program affects the variables in anyway wished by the programmer, but unlike the car, the variables don't make the program work after the program has processed them. You can compare the computer memory to a catalog, in which every item has a number. But because it is easier to deal with words rather than numbers, you can name a catalog number and so use its name in order to affect the item it represents.
Also, the program doesn't convert what you called Data to what you called Information. That is done by our mind. The word zongelvurdiyap is just the same as elephant to the computer. It's our mind that gives it its meaning. I understand what you tried to say, that the numbers have meaning, but the program doesn't give it its meaning. For example, even a graphics program that takes the numbers and uses them to show a picture on the screen still doesn't give the data meaning, because the picture can be just some gray squares on the screen or it can be a jaguar, but it's all the same to the program.
About the Variable Types description, I think you should add a short list of actions you can apply to each type. For example, only +,- round dividing and * for integer, also / for float, AND/OR etc. for Boolean, and so on.
I don't understand what you're trying to say in the Use of Variables bit. I didn't get the coal mine analogy. I have no idea of what you're trying to say about Running Totals. You should also mention that these are only exaples and that the options are unlimited.
I'm glad you didn't go into classes and structures at this point.
I'll go through my entry and add the links when all the entries have been created, so I can do it all at one time.
I wrote an entry about Conditional Statements, I feel it's a bit lean. If you have some more points you think should be explained, I could use some advice.
Tell me what you think about what got in there so far.
http://www.bbc.co.uk/h2g2/guide/A565229
I hope my criticism is constructive
A Perfectly Abnormal Guy
p.s. About ZZ9 Plural Z Alpha, I think this should explain it:
[URL Removed by Moderator]
Project: Computer Programming
Researcher PSG Posted May 26, 2001
Hello again!
Well I hold my hands up, you caught me, I tried to cover an area with 2 perspectives and forgot about one.
Well I have corrected it, I think. I don't think either view can be held to be correct in isolation, so I have put both the programmers and computers perspective. Hope that covers everything.
Tell me if it works, or not.
I haven't had time to look at the loop entry, and so I haven't looked at the final point.
Oh and which entries do you think are alright now as they stand, I just want to get rid of some of those development markers.
Right, I only have 1 criticism of your condition entry, the changing horse from ELSE to THEN.
I think it would be good to mention ELSE IF as variations of this are used in C, C++, JAVA, PERL, etc. And in fact I hadn't heard of using THEN, but I don't think you should not use it.
What I think in that last section you should do is explain using both THEN and ELSE for the same example. As a sort of comparison of approach.
Hope that helps.
I'll look at the loop entry as soon as possible.
Researcher PSG
p.s. shame the moderator removed the link.
Project: Computer Programming
Amy the Ant - High Manzanilla of the Church of the Stuffed Olive Posted May 26, 2001
I'm thinking about asking to join this project but I'm worried that the programming is being defined here as "text that is typed in and then compiled."
Is there any room in your ideas for visual languages or scripting languages?
If so, I could contribute one piece on programming languages for children and possible another on VPLs.
Amy the Ant
Project: Computer Programming
Researcher PSG Posted May 27, 2001
Hello Amy!
I would be more than happy to accept entries on programming languages for children and VPLs.
I think it would probably be good to broaden the range of this project. The reason we have stuck close to "text that is typed and then compiled", is predominantly because that is what I have experience of. If you can bring another perspective I think that would be brilliant, as I wish this to be a project that produces entrys that are good introductions to parts of programming, so I would like it to be as inclusive as possible.
Although it is good to keep in mind, these are entrys that will be jump off points for language specific entrys.
Also, if you have any changes that you would like to see to any of the other entrys, so you can use them to refer to from your entry. Suggest them and we will see if they can be made.
I look forward to reading you first submission.
(If you still wish to be involved, I hope you do)
Researcher PSG
Project: Computer Programming
Amy the Ant - High Manzanilla of the Church of the Stuffed Olive Posted May 27, 2001
Sounds like a good plan. I've nearly finished the children's programming languages article. The VPL one will take a little longer to put together.
Key: Complain about this post
Project: Computer Programming
- 1: A Perfectly Normal Beast (May 9, 2001)
- 2: Researcher PSG (May 10, 2001)
- 3: Peta (May 10, 2001)
- 4: A Perfectly Normal Beast (May 11, 2001)
- 5: Researcher PSG (May 12, 2001)
- 6: Researcher PSG (May 15, 2001)
- 7: A Perfectly Normal Beast (May 15, 2001)
- 8: Researcher PSG (May 16, 2001)
- 9: Researcher PSG (May 16, 2001)
- 10: Researcher PSG (May 16, 2001)
- 11: A Perfectly Normal Beast (May 16, 2001)
- 12: A Perfectly Normal Beast (May 17, 2001)
- 13: Researcher PSG (May 18, 2001)
- 14: A Perfectly Normal Beast (May 19, 2001)
- 15: Researcher PSG (May 22, 2001)
- 16: A Perfectly Normal Beast (May 23, 2001)
- 17: Researcher PSG (May 26, 2001)
- 18: Amy the Ant - High Manzanilla of the Church of the Stuffed Olive (May 26, 2001)
- 19: Researcher PSG (May 27, 2001)
- 20: Amy the Ant - High Manzanilla of the Church of the Stuffed Olive (May 27, 2001)
More Conversations for Project: An Introduction to Programming
Write an Entry
"The Hitchhiker's Guide to the Galaxy is a wholly remarkable book. It has been compiled and recompiled many times and under many different editorships. It contains contributions from countless numbers of travellers and researchers."