benb wrote:[*]Where and at what age did you get formal Computer Science teaching?
Grade 7, or (nominal) classroom age 13, on up to grade 12 (ignoring post-secondary for now).
[*]Did you elect to do it or was it compulsory?
The CS course was compulsory, I believe, in grade 7 and/or 8.
The next class was mid-high school (2-3 courses in high school).
[*]What material was covered in this teaching?
In grade 7/8, basic computer skills, some programming.
From 9 through 12, more programming and the like.
I lack a good memory, because the courses where basically free periods, as I had spent enough time outside of class to be well beyond the curriculum.
[*]Was there a social stigma attached to studying computer science (was it seen as ‘geeky’, ‘male dominated’ etc.)?
The group of kids who had done it all "on their own" where boys, but there where girls in class who did quite well in the class.
[*]How would you go about teaching CS in schools?
One serious problem is that the level of ability in programming in particular is going to be quite divergent.
Most of the school curriculum is based on the presumption that students move in cohorts and advance at roughly the same speed. With programming, the worlds toughest marker -- the compiler -- places a brake on what amount of social promotion you can do. If you cannot write a program to do something, you cannot write a program to do something -- meanwhile, even if you essay is crap, you can still write the essay. Similarly, even if you get the math wrong really often, you can still write a math test.
With the basic unit of programming examination being the program, this kind of pattern doesn't work. You really, really need an expertise based evaluation and advancement scheme, where you become an expert at writing a particular program (and it works) before you move on to the next program. Or early differences in skill will build up, and the cohort will diverge hugely.
Computer science, as divorced from programming, would be an interesting subject to try to teach to high school students.
[*]Do you think that before university it should all be self taught?
No, but in practice, computer science is a skill that can be to a large extent self taught. Much as someone who spends their weekends and evenings working on cars will be a better mechanic than any high school shop class could keep up with.
However, learning how to program requires less
in the way of resources than learning how to work on cars. Computers are relatively common, to the point where second hand (yet functional) "old" computers are nearly free, and you can learn more computer science on a second hand old computer than any school course could teach.
LaserGuy wrote:But most people don't pursue those fields, so it's not clear how beneficial it would be.
In my opinion, a wide based of programming skills in the population is more useful than a few experts. The automation of relatively simple tasks -- be the mail merge, accounting spreadsheets, or the like -- by the people who are doing is very valuable.
While the tools to do this can be written by specialist programmers, many of them require real programming skill on the part of the user. And many of them would be much, much more powerful if the user had more programming skill.