Top Myths About Teaching Computer Science (2015)
cacm.acm.org
cacm.acm.org
From reading the BLS descriptions and some discussions on the programmers stack exchange I'd say programmers as far as the way BLS describes it are essentially intern/entry level software devs. They need someone else to give them direction. http://programmers.stackexchange.com/questions/4951/what-are...
My understanding is that AP computer science is basically on life support right now and may be dead entirely within the next few years. It is probably a poor metric for measuring early interest in computer science.
The curriculum sadly is very fine-tuned to an obscure Java-dialect created specifically for the course. Though the program does teach basic principals of CS, there's a great deal of time wasted on this weird little platform; obviously, most high school students these days with technical inclinations would rather learn more open and directly applicable platforms to learn.
The even greater problem though stems from the instruction, which I would argue is derived from the aim of the course itself. There's a very heavy focus on teaching to the test, as in the AP system teachers are rewarded for having high-scoring students. This means there's a lot of bland dissemination of facts and non-trivial projects are few and far between.
Overall, as someone who plans to have a career in software, I've been really disappointed with the program. Supposedly there is a program launching in fall 2016 however: https://advancesinap.collegeboard.org/stem/computer-science-...
Furthermore, the instruction mirrored the poor instruction in mathematics. "Here, memorize this template for writing a loop. Then, when the test asks you to write a loop, regurgitate it." Like too often in mathematics, there was no emphasis on understanding, but rather the emphasis was on rote memorization.
With the combination of contrived examples, shallow coverage, and poor instruction, it should not be a surprise that so many students are disinterested in computer science. Not to mention that Java is an exceptionally poor choice for an introduction to programming (the AP curriculum used to use C++, which is also a very poor choice).
(As a tutor, I've had good luck with Scheme, and I've heard from others that Python and Lua are also good choices. You could also kick it old-school with a structured BASIC dialect (which is how I cut my teeth) or Logo, if you can find a suitable implementation.)
That's completely correct. Although, it's because most "CS" instructors majored in english, history, or math in college. They were pushed into teaching computer science and sent to a "learn Java in 4 weeks" summer training.
They are doing the best they can with what they know. We either need more computer science majors to take up teaching, or we need better training for non-computer science teachers to actually learn computer science (but not too good training, otherwise they might get a "real" job doing computer sciencey things)
You go to school for your diploma/degree. All too often school has stood in the way of my education. There's MIT OCW and Stanford CS classes out there, among I'm sure so many others, that can help you get that solid foundation you want.
Meanwhile their peers in other schools where Java is the only curriculum are struggling or dropping out.
The biggest issue with computer science education is that "studies have shown" teaching people with no computer science background how to teach Computer Science leads to better retention of computer science teachers (ie, they don't leave for a better paying job in industry)
That means that many (most?) computer science teachers have no training in actual computer science except a 4 week summer course in "how to teach computer science".
Heck, there's a math teacher at my school finishing up a degree in computer science and he told me "I'm graduating in May and then I'm outta here." and he'll probably get a job that pays 2 or 3 times as much with better benefits and better hours (yeah, even counting "summer vacation")
The college board doesn't offer any curriculum, they just give guidelines of what will be covered on the AP Test. Most of the curriculum that you can buy is pretty poor (as you've experienced)
I'm not entirely sure what you mean by "obscure java-dialect created specifically for the course". That smells like something coming from your teacher/the curriculum your school bought. College board uses a "subset" of Java 1.6. It's regular java (albeit an older version), but limited to only using the int, double, and boolean primitives and ignoring auto-boxing. You can use char, float, or even auto-boxing in the open response portion, you just won't encounter a multiple choice question covering them.
There are for sure better languages that could be used for teaching but at some level the student has to know the syntax of an if-statement and the syntax of a for-loop. From your perspective, it seems like your teacher is just hammering the basics and not giving you anything challenging. I imagine that is happening because many (most?) of the other students in your class can't write a syntactically correct if-statement or they try to use a for-loop when they should be using an if-statement (and aren't writing the for-loop syntactically correctly either)
You could say that teachers are being "rewarded" for having high AP test scores, since that'll keep them from getting fired. There really isn't any reward.
As far as AP Computer Science Principles goes, you may enjoy that class more than AP Computer Science A. It will all depend on which curriculum your school goes with (there are several companies pitching themselves to schools right now) and your teacher. That class is project based and it can be whatever you make it to be. (However, there will be a lot more writing in it than you might expect... and there is a good chance it will be Scratch based since the emphases isn't on programming but "creating").
Long story longer, computer science education isn't going to get better unless people that know computer science come to teach people computer science. As it stands, computer science will continue to be taught by english, history, and education majors and they will do their best, but their best will mostly be teaching the syntax of Java and how to pass the AP Computer Science test.
My AP teacher was a math teacher who'd taken a 2-month summer in how to program and nothing about how to design systems before programming.
It has proved just as irrelevant as I imagine yours will.
Anecdotally, many people get into computer science originally because they're interested in programming because they like the idea of, for a major instance, creating video games. Surprise, many of these kids are male. Added to this is a general STEM selection bias.
So we need outreach about careers, opportunities, and the fun of CS and programming, much younger, and targeted at groups like girls who would otherwise be less likely to try it out on their own. Address our diversity issues from youth up rather than when it's too late.
http://www.npr.org/sections/money/2014/10/21/357629765/when-...
http://cacm.acm.org/blogs/blog-cacm/189498-top-10-myths-abou...
At the very least, we need an article in the Communications of the ACM on the Top 10 Myths About Teaching Studio.Art.Drawing.
also, the article for the "top 10 myths about teaching studio art drawing" would probably be more appropriate for a journal on studio art drawing. the ACM should be concerned with gender bias in the computing world. it doesn't have to be concerned with gender bias in studio art drawing just because you want a witty counter-example to show that gender bias against women isn't such a big deal (because actually, it is).
[0] i think bias against women is more pernicious because there tends to be less bias against men in this regard, and so any one incidence of bias is less likely to be terribly detrimental to their life overall. a gross generalization, obviously, but i don't think it's off the mark.
So, is true but you mustn't think it? Or you have to pretend it's not?
I don't think their conclusion necessarily follows either, seems a possible outcome but some teaching is all about enabling the least "gifted" (and this can tend to fail at stretching those who appear to have a natural propensity).
Of there really no genetic element to intelligence?
But cultural factors, bias, training is what start to have impact at birth, what we can leverage. The scientific consensus seems to be that culture/education/context/opportunity is the major factor when concerned with two standard persons (average cognitive abilities at birth).
I didn't personally read any cognitive science studies that validated the existence of some people having superior cognitive powers. It appears to be quite grouped at the center, with outliers with very specific talents ("savants").
So let's use the Ockham razor and go for the most likely explanation when learners struggle with any subject: they are not given the right learning process.
It has most probably nothing to do with how their brain is wired, because statically, it is most probably very similar to any other brain picked randomly. (As is our genetic code apparently. Two random humans on earth have a very closely similar genetic code, more than was expected at first).
For example I have a deplorable sequential memory: I can't really well memorize songs or karate katas. I blame my total lack of musical and dance education. I never really trained for memorizing sequences… Of course I could point to some innate genetic flaw, but this seems like a less likely explanation given what we know about the brain plasticity.
So I think this is very much about how the brain is wired. There's a level beyond which it absolutely isn't learned, either in ability or - more critically - of interest.
Compare with dance, where I had similar problems with memorising moves until I did an extended weekend immersion and broke my brain for a few days. It got easier after that, but I'm still at the slower end of any class.
I'd guess a lot of people on HN have always had a deep fascination with technology. If you have that kind of draw to a subject, you're not going to be stopped by parental disapproval or negative messages from teachers.
Negative messages will make it harder, and lack of resources will certainly kill you more than anything else will.
But the interest has to be there in the first place - not in a "I guess that might be kind of interesting" way, but in the "If I don't do this I'm going to be really fucking unhappy" way.
Strange, I came to the conclusion that people not interested in a subject won't retain information about that subject because they don't care about the subject.
I can think of several topics off-hand that no matter how someone tried to teach me, how many resources they gave me, or what the "learning process" was designed as: I wouldn't care to learn a thing. Zilch. I'm not interested, kindly buzz off and let me do things I'm actually interested in.
Actually - that's exactly why I dropped out of school in freshman year and became an autodidact. I was sick of others telling me what to learn about and thought my time would be better spent teaching myself about things I actually care about.
I 'lucked out' and got a job I enjoy doing things I enjoy because I did things I enjoyed instead of things I didn't enjoy. I'm puzzled how other people could reason to themselves that the reason I didn't become a doctor or a lawyer was because of the learning process and not because of my complete lack of interest.
How come the learning process is only relevant to STEM fields? Especially "tech"?
Sure, you can enhance and boost your memorizing skill, but there is a limit how far anyone can go - and that limit is based on your physics. Which is always heretical with varying amount of randomness in the process.
I trained at piano for about 7 years and played for my own enjoyment for about 4 more (then moved from having a piano to play). I still can't keep a rhythm, still struggle immensely with recognising note progression.
My son has been in a choir for 2 years (he has a musical mother) - from the outset he could find the right pitch, match rhythms, keep tune with others, etc..
Other son, started with choir - he has no ability for tunes, lacks rhythm, etc..
They have a very similar upbringing, very similar schooling, we dance with them, sing, play tunes, have instruments for them to mess around with. One of the children resembles me in their musical ability; the other my wife. My mother had the same problems with musicality, her sister became a music teacher and played many instruments, my mother like me can't keep a tune or continue a beat.
Now I don't doubt that the second son can improve their ability, just as I have; but like me I expect them to be unable to shake off the lack of natural ability. Ultimately they're unlikely to make a career in music - but I do and will encourage them in it as it's been and continues to be an important part of my life.
This is just an example, I suspect it works in other fields too; certainly in other creative arts it seems to.
I consider that it matters very little in these instances whether the ability is entirely innate or whether it's down to certain brain areas being reserved, pathways being fixed to a certain task at an early age.
Aside: Occam's razor is a useful philosophical tool but it lacks any ability to demonstrate the truth in a situation. Much in the world works with more complexity than it appears to need. Look at physics which often progresses by discounting simpler explanations in favour of more complex ones (of course this hinges on the element of "necessary entities" in the razor which actually make the razor useless as one is required to answer as to the necessity of an entity; if you know an entity is unnecessary to establish a proper explanation then you don't need the razor to suggest it).
The scientific consensus seems to be that intelligence is hereditary to a large degree. Probably a lot of other abilities too such as musicality. My own anecdotal observations indicates that musicality appears to be hereditary, which is especially noticeable in pre-school kids. (but yes, environment is clearly a factor too, etc.)
But still, the evidence points in a certain direction.
Why would this not extend to software development skills? Just the connection to intelligence alone makes large groups of people unsuitable for a software development job, as it definitely requires above-average cognitive skills to be a great developer.
Sure, everyone can learn to play the piano. But it's not enjoyable to listen to all of them...
Having said that. I think there is much to gain from attracting non-stereotypical maths-geeks into computer science or rather software/systems engineering. I genuinely think that some of the stereotypical traits are impediments to becoming a great software developer.
And also. Everyone should learn how to code, at least just a little bit, as it is good for you, and it's important to understand how the world works and it's limitations and possibilities.
Is a high school CS course that place for that? Probably not. So I vote for a much tougher algebra course that then of course nobody would ever take.
I've played with the notion in my head of teaching something rigorous (but not arduous) like basic Group or Ring theory somewhere in HS. Perhaps in place of the rather large amount of time spent on the algebra of second-order polynomials? Hard to say. I'll admit I have zero training in pedagogy.
but a good CS course would be great too, because computational literacy and facility/comfort with computational thinking are only becoming more important for making it through the world and having some control over your own fate.
Just learning the actual proofs ( beyond calculus style proofs ) techniques was a big leg up, especially induction and contradiction.
For most of my academic career, I hated math. I was always good at it, typically getting good grades without needing to study. But I found it so incredibly boring, because it was presented as "memorize these rules and formulas, then use them when the test prompts you to".
It wasn't until my third year at university that something finally clicked. I was taking automata theory, and the mix between rigorous thinking, writing proofs, and applying intuition nearly as often as theorems (along with the sudden realization that writing proofs is a lot like writing programs) flipped a bit in my mind. I suddenly loved math. It made sense to me for the first time. And I could look at a proof and tell whether it was beautiful or an ugly hack.
I've got high hopes for the Bootstrap curriculum [0]. I think that kind of interactive, rigorous introduction to mathematics and programming would be very beneficial for students (and the research agrees). If I ever have kids, that's how I plan to teach them algebra.
From Times Higher Education, link here:
https://www.timeshighereducation.com/news/infographic-gender...
I have two daughters and have desperately tried to interest them in maths and computing and understand my enthusiasm for the subjects. They're just not interested. The elder of the two is off to University this autumn to study Illustration (Art).
Personally I am sick of hearing about "gender discrimination against women" when all the evidence points to the exact opposite. Men and Women are different. They have different interests. The only myth is that these differences are down to systemic male prejudice towards women. It's nonsense and it's about time this nonsense started being called out for what it is.
Even if you had two boys, that wouldn't be at all surprising, right? Statistically, most kids aren't going to be interested in computer science. Most children of computer scientists aren't going to go into computer science. Most people don't pick the same major that their parents did, across any and every field.
It's only looking at the broader statistics across all kids that we see these tremendous gender imbalances. It's not surprising that any particular young women aren't interested in computer science, but what's surprising is that practically none are. You can attribute that to inherent differences in interest or aptitude, but to do so is to disregard the strong social signals that programming is "for boys".
If art was as overwhelmingly male-dominated as computer science is, would your daughter still have developed her interest in it in the first place? That's not as easy a question to answer.
Meanwhile, you haven't addressed the data that the majority of subjects are female dominated. Psychology for example is 75% female, and yet men are three to seven times more likely to commit suicide than women - yet another gender imbalance that seems to get ignored.
All my life I have heard demands that something must be done about any issue where men are in the majority, but at the same time a deafening silence when the reverse is true.
A recent study has shown that when applying for tenure-track positions in university science departments that female candidates are now twice as likely to be chosen as equally qualified men.
https://www.washingtonpost.com/news/morning-mix/wp/2015/04/1...
That suggests that the current male dominance in STEM subjects is actually despite the same pro-female bias that we see elsewhere.
I'm have aphantasia, so I will never be an artist. That's ok. Some people are tone deaf and so will never be musicians. That's ok. Some people are just, let's say "logic blind", and so can never understand how a computer will work through software. They just can't follow it in their minds, in the same way that my mind just can't visualise pictures that are not currently in front of my eyes.
It's important that we don't claim the opposite so that people who discover they have aphantasia, or are tone deaf, or are logic blind don't think there's something wrong with themselves, because if "everyone can do it" but they can't then they must be either broken or lazy.
As a single male I admit it would be nice if there were more women in CS, but ultimately why does it really matter? Men and women are interested in different things and most women I know just aren't very interested in CS. Is there also a push to get more men into French language culture or studio art drawing? Even though most men would find it boring.
That makes an assumption about their motivation. Much evidence exists that women aren't "interested" becuase they face exclusion and discrimination in CS and pressure to study more 'feminine" subjects. Why do more women take the Statistics AP exam than men? Also, I think there are now more female math majors in colleges than male (but I don't have the data in front of me).
The same arguments were used, AFAIK, when women were exluded from most of the workforce and from much of higher education: Women just aren't interested in those things. Supreme Court Justice Ruth Bader Ginsberg, first in her class at Columbia Law School, couldn't get a job at top law firms (and Justice Frankfurter turned her down because of her gender, per Wikipedia) at the beginning of her legal career. Now the majority of law school graduates are female - I guess they were interested after all.
But perhaps most telling is that we are talking about women in the third person - this is exactly the problem with a lack of diversity: A bunch of guys are sitting around drawing conclusions about what women experience and think. If only HN was half female - could you imagine the difference?
I can't speak about law, or the way things used to be, but in software dev I've worked with several women and more men. In my own experience the men sometimes chide with each other to the point I've seen other men complain to management about bullying. But I don't see the women being treated that way at all.
In my personal life I often talk about programming to non-devs. Both genders have some people that are completely uninterested, but it's usually the women. Likewise I have little interest in most female-dominated fields. And that's ok.
Maybe things are different beyond my own limited perspective, but that's what I've seen. It may be different in other fields.
On the other hand, I've worked with and known many women in adult life, and either they overcame that attitude from their parents and teachers or they weren't presented with that attitude growing up. I can speak with many of them about programming topics (watered down in the same manner I'd water it down with men who don't have a programming background) and bore or interest them to the same degree.
If we, as a society, stop telling people "this is feminine" and "this is masculine" (particularly with respect to fields of study, both technical and non-technical) you'd likely see these things even out quite a bit (though the implied feminine and masculine by observing people's roles in society will still be present).