I've been poking around at this from two perspectives. I'd like to understand what happened (and it appears to be something I can blame on PC/Wintel, which always makes me happy when the villains of the piece are already known to me as Evil). In the mainframe, minicomputer age, there just weren't a lot of kids with _any_ experience, so you basically shopped around for anyone with really strong mathematical/reasoning/logical scores and recruited them to your degree program and then corporate or government job. By the time the mid-1980s rolled around, the PC era had arrived and with it a bunch of twerps who had messed with Commodores and so forth, and degree granting programs figured out that it was a lot easier to get this crowd up to speed on programming because they were already doing it. Programs expanded, and disproportionately, prior experience programming got you in the door. For a wide variety of reasons, but basically cultural gender stereotypes, girls and women tended not to have that prior experience.
So I believe the disproportionate gains of boys/young men in representation in degree granting programs and subsequent industry jobs should be laid at the same door as the underrepresentation of certain racial minorities in tech: pre-existing, widespread cultural limitations placed on some groups and incentives offered to others. In this case, white boys got Commodores. People of color found the price point shockingly high. Girls got Barbies, including the Dream House.
I know it is hard to believe, but we _really have made progress_ in these areas. More work needs to be done, but if we want to change representation in degree granting programs in computer science and engineering, we probably need to directly address the prior experience bias. Prior experience bias HURTS THE INDUSTRY, because it rewards loner persistence in a way that produces job lots of coders who can't actually collect requirements much less adhere to them. They are allergic to meetings and lack social skills. Ah, they are my people! But computer science is too important to be left to us spectrum types. By expanding program size, we should be able to reduce some of the weeder requirements (reduce GPA requirements and silly stuff like, year of physics or chemistry or whatever, and, honestly, why the hell do you need calculus, never mind diff eqs? Totes ridiculous. I never used it. Not once), and start actively recruiting people who do not have prior programming experience but do have aptitude (I recommend shopping around in librarian programs and philosophy departments -- the latter because that's where a lot of the discrete math is hiding under another name and _that_ actually is useful along the career path).
We should also collect best practice in existing programs like at Harvey Mudd and UC Santa Cruz and elsewhere, where they have already managed to improve gender representation. I think -- I'm less sure about this -- that they are reworking curriculum to do more pair programming. I spent a discouraging and stupid amount of time on problems with no pedagogical value. If someone had been there to say, oh, hey, that's the problem and here's how to notice that quicker next time (wrong direction slash for new line character in C, type of thing, but it also cropped up in SmallTalk and elsewhere), it would have been much less awful getting through the program. The material wasn't that hard, but computers themselves used to be so horrible. That's gotten better, fortunately, but development remains a place where hours, days and weeks go to die because of some damn thing that a friend could have told you about in 5 minutes if you had thought to ask.
In general, curricula should look into adopting a watch-do-teach approach, where you first _watch_ someone work through a programming problem (not on a whiteboard!), then do it oneself (with a mentor or instructor watching!) and then act as a mentor/teacher to someone else.
It is probably going to be necessary to do some re-training on the existing community (in academia and in tech), so that we don't automatically think of group work, collaborative learning, etc. as Cheating and/or Evil. I'm not a good person to ask how that should be done, tho. Probably need to bring in some psychology types.