spamsink: (Default)
[personal profile] spamsink
Here's a letter a friend of mine asked to repost here in hope to get more answers as I have no idea about teaching C++ for 11 year olds.

I need help from CS and C++ gurus out there.

My son is taking "computer science" at school. Needless to say it is very little about computer science at least at this point, and more about writing simple programs on C++. They do Scratch too as part of the same class, but now I do have question about C++. Needless to say, last time I was programming on C++ was 20 years ago and I did it for less than 2 months. So far I am capable of helping him, but I want him to try to find answer first himself, before calling me.
I do have a couple of books at home but their thickness alone is frightening for him (now, when I am thinking about it, they are as thick as Harry Potter, and he doesn't have problem with Harry Potter :).
So here is a question: can you recommend a very CONCISE book or a SIMPLE to navigate website for C++ that will have bunch of samples with explanations that a LAY person can understand, it also should be free of specific implementation. They are not covering object oriented paradigm, so I am looking for a simple syntax explanations. They are using Code Blocks as an IDE.

So far the closest to what I am looking for is this:
http://www.cprogramming.com/tutorial/lesson1.html . I probably would prefer a few more samples for every topic and a little less text.

Do you know any other hidden gems?


Ответы по существу предпочтительнее.

I won't give any, sorry. And here's why.

Date: 2012-10-08 05:32 am (UTC)
From: [identity profile] archaicos.livejournal.com
I think the guy is asking the wrong kind of question akin to "How to learn something by learning and understanding as little of it as possible?". It works very poorly with C and C++ because they are quite fncked up languages and writing code in them without understanding how the heck the compiler is going to interpret the source code can be very, very frustrating. I'm seeing this kind of frustration every day on stackoverflow.com. Any attempt to end this frustration and break and unlearn the wrong, baseless assumptions resulting in from the opposition to reading and trying to understand stuff, puts one with their broken "hello world" program back into square one, where some sort of RTFM'ing is doomed to occur, where one ends up reading online articles, forum posts, answers to their own questions and to those of others, the very thing they have wanted to avoid in the first place. If they want this great experience just for the sake of it, they can have it. Is it worth it? If that's the only way to convince them that they have to read, try to understand stuff and pay attention to details, hell, yes! :)

Something less primitive and unforgiving than C/C++ would be much much better. I dunno, Python, JavaScript?

Is that too harsh?
Edited Date: 2012-10-08 05:38 am (UTC)

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 05:45 am (UTC)
From: [identity profile] fatoff.livejournal.com
I agree. This is strange, but my guess is that both Assembler and Pascal are more beneficial for 11 years old. Either virtually no rules at all or the set of rules is very non-contradictive and strong. Then when these 11 year old turn 20 and still have interest in programming, we can probably try to feed C++ in their brains. C++ requires understanding of concepts first.

My own nephew at that age could hardly have any educational interest in computer. That was a gaming machine, nothing more. And gaming is toxic. I guess it damages permanently if consumed too much at the young age. So, still some programming better. But what to learn...
Edited Date: 2012-10-08 05:49 am (UTC)

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 06:02 am (UTC)
From: [identity profile] archaicos.livejournal.com
Pascal was good for me at 14-15. Assembler was tedious but manageable for me at 12-13, and the good things about it were: 1. it was explicit and didn't hide anything from me as C and C++ appear to do (unless you've learned enough of their quirks to see what's invisible to the eye in the source code), and 2. it taught me how the computer really works.

As for games, it depends on the person and on their environment, on whether some day they become curious about how those games are made and on whether they get an urge to create their own game or some other cool program.

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 05:51 am (UTC)
From: [identity profile] fatoff.livejournal.com
> Something less primitive and unforgiving than C/C++ would be much much better. I dunno, Python, JavaScript?

Should you say primitive about plain C I would agree on that too. 'Cause being primitive is a main virtue of the C. C++ is not primitive but complex. And C++ 11 is more complex than the predecessor.

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 06:05 am (UTC)
From: [identity profile] archaicos.livejournal.com
The problem with C++ is that about a half of it at the core is the same good old C, which you cannot ignore nor remove from the language and from time to time you'll be beating your head against this primitive part.

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 06:41 am (UTC)
From: [identity profile] archaicos.livejournal.com
If this question appeared on SO, I'd mark this question as either not a "real question" or a "not constructive" or even "off-topic". :)

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 07:06 am (UTC)
From: [identity profile] archaicos.livejournal.com
Ah, so trolling works a little differently in LJ and on SO. :)

Re: I won't give any, sorry. And here's why.

Date: 2012-10-08 09:32 pm (UTC)
stas: (Default)
From: [personal profile] stas
It's like asking for gentle introduction into tuning high-performance liquid-propellant rocket engines for 11 year olds that so far mastered constructing paper planes and squirt guns. I'd be very surprised if such thing is possible without being completely useless. Yes, of course you can show them "if you type these magic incantations, C++ compiler would produce a file that when subjected to these magic incantations will magically print this result". But why bother (mostly) innocent kids with this?
I'd start with language that allows to demo basic concepts of programing without pre-requiring students to know tons of stuff or without introducing them as "magic" which would probably mess up their understanding of programming for years to come.

Date: 2012-10-08 06:34 am (UTC)
From: [identity profile] andaja.livejournal.com
Анатолий Левенчук aka [livejournal.com profile] ailev этим сильно озабочен и довольно много пишет на эту тему. правда тегов не ставит, но за последний месяц-полтора, если журнальчик полистать, можно собрать полный комплект мыслей на тему, от подъема базовых техник, через алгоритмы и типы данных и далее переход в физику, и какие тут есть проблемы с дитями такого возраста.

Date: 2012-10-08 07:52 pm (UTC)
From: [identity profile] sab123.livejournal.com
Они ж небось не всю хрень подряд изучают, а какое-то мелкое подмножество.

Date: 2012-10-08 08:12 pm (UTC)
From: [identity profile] sab123.livejournal.com
Чтобы книга была маленькой и понятной, она должна рассматривать то же самое подмножество. На которую не до конца читать, он уже жалуется, что толстая :-)

Лично мне идея про "C++ для начинающих" представляется дебильной. Для начинающих надо языки без объектной ориентированности.

Date: 2012-10-29 09:25 pm (UTC)
From: [identity profile] oboguev.livejournal.com
"Complete Idiot's Guide to C++" ?

"C++ For Dummies" ?
Edited Date: 2012-10-29 09:26 pm (UTC)
Page generated Mar. 8th, 2026 07:43 am
Powered by Dreamwidth Studios