Increased participation in AP Computer Science courses is only marginally beneficial, I think.
In high school I took the AP Computer Science course after working with Java for years, thinking it'd be an easy A. Was that ever far from the truth.
My issue was that the quality of the course was plain terrible. Any school in my state (North Carolina) which didn't have an in-person teacher could offer the class through our statewide online course program, and the state of the course on there was dreadful. Typos everywhere, incorrect and trick questions on the exams. A friend of mine in a similar situation as me had to email the instructor four times with the message "I DID include what you graded me off for, it's on line 44" before the instructor looked at line 44.
Broadening participation in computing is crucial, but we also need to devote serious attention to cleaning up the curriculum. If we don't, we'll end up making more kids hate Computer Science than like it.
Yes, we do need to improve the curriculum. But, how would we do it?
When I took Intro to Comp Sci, we didn't even go over design patterns and what makes good code. We did get instilled into us the principle of Single Responsibility.
As for trick questions, I got them in my Math Major and the comp sci classes I took. So, idk, if having trick questions is necessarily a deterrent, especially for a course preparing you for college.
I've also worked with Java for quite a while and took the most recent AP Computer Science administration by self-studying the content. What frustrates me about the AP curriculum is that it is focused more on programming than the actual CS concepts behind it (data sctructures, algorithms). While the curriculum does cover sorting algorithms and their best and worst case efficiency, it refuses to use the standard big-O notation to do so.
Needless to say, the test was extremely unchallenging (and frankly, disappointing).
Many APCS teachers in NC are not formally trained in a computer science background. As I understand it, online classes have strict class size limits but must teach anyone who enrolls. When I took the class, it sounded as if my teacher was doing the class for extra cash and was merely grading via pattern-matching. The cirriculum for every class was written by one person who was not teaching my section and it seemed as if any sufficiently complex questions on the material were escalated to him.
In physical schools, they are having teachers re-skill to fill their spots. However, locally the curriculum is based off of code.org so there is a lot more automation and self-guided learning baked in.
For what it’s worth, poor teachers can leave a bad taste regardless of the subject. I wouldn’t say it’s a curriculum problem as much as it is a staffing problem.
This x1000. I've talked about this course before in my post history, but the entire class is just awfully designed. I took it with a teacher and 99% of the class still could not keep up. Even the people who did well on the exam mostly felt as if they didn't understand the content. The AP test consisted of bullshit questions that have nothing to do with neither practical nor theoretical CS--25% of the test was just tracing shitty for loops by hand. Anyone who took this course was probably put off by CS, as I know was the case for my girlfriend and many of my other friends.
I took AP Computer Science online in high school as well but in MI in '07. It wasn't nearly as bad as your experiece, and it was an actual easy A (I had prior C++ experience). Granted, it should have been named AP Java Programming 101 using BlueJ. It hardly touched any computer science.
I took AP computer science AB (2005ish), and while the class was decent the actual exam was intensely difficult. It was the only one of 16 or so AP exams I got a 4 instead of 5 on.
In particular the last free form question was to implement A*. With over a decade of professional experience and a CSCE degree I'm still not sure I could _by hand_ write out syntactically correct, compiling code for that in less than 45 minutes _in Java_.
It would be useful to calculate the percentage difference between n_group/n_population and n_group_course/n_course. This would essentially calculate a "representivity" score for that course.
So, for example, according to the 2010 US Census, Black or African Americans constitute 12.6% of the population. However, according to [1], they constitute only ~5% of the CS degrees awarded. Therefore the score for CS and Black or African Americans is |12.6 - 5|/12.6 = ~60% underrepresentation.
We don't live in a perfect world; we live in a world where people face blatant and systematic discrimination based on their physical characteristics.
Given this, we have two choices: pretend that the world is a fair place where merit is all that matters, or we can attempt to boost those who've been treated unfairly with the hope that society will gradually improve because of it.
Unfortunately, we live in a world where everyone is judged by these factors, and so in order to achieve your ideal world, we must actively encourage participation from people of marginalized demographics.
Female minorities are a woahfully under represented at today's software companies. This article is great news and shouldn't be shaded by "well it was harder in my day" BS.
Representation is a convoluted thing to talk about, let alone "measure". Many factors influence how many of $group enroll in a course, and with gender there are many, one of the main ones being that many women chose to stay at home and raise their children. You have to consider if the difference in enrollment and/or parcipitation in $jobgroup is down to outright discrimination, or willful chosing of $persongroup.
Is the goal simply to boost the numbers of some arbitrary group of people clumped together because of their immutable characteristics? Or is the goal to improve the output and speed of innovation in an industry by exposing more people to it? If it's the former, you're probably right. If it's the latter, being concerned about sacrificed quality is not "BS".
It's only one data point, but the CS curriculum at my local state university (with an instantly recognizable name) is far easier than the one I went through (at a no-name school). Coursework in analysis of algorithms is shallow, and not sure undergrads do any proofs at all.
As someone not from the United States the acronym "AP" really threw me off. Had to look it up. It stands for Advanced Placement and despite its name is an introductory class.
That doesn't quite convey the full meaning though. It's meant to be a college level introductory class that high school students who get ahead in other classes are allowed to take. Most AP courses also have the option to take a placement test at the end, and if you do well enough, you can receive college credit from the college or university backing the program.
If you want to learn more about research into broadening participation in CS in the US, I recommend Mark Guzdial's blog and publications: https://computinged.wordpress.com/
This is a half-truth, because there isn't really an AP Computer Science anymore. From wikipedia:
"Due to low numbers of students taking the exam, AP Computer Science AB was discontinued following the May 2009 exam administration."
Today's offering is, at best, some light familiarity with Java. That one is called "AP Computer Science A". There is even a wholly useless "AP Computer Science Principles" that involves writing small essays about non-technical aspects of computing.
I believe any familiarity with any programming language will provide a student with a step-up when they leave the high-school environment and enter college.
While I am not excited about AP classes lowering standards, the Wikipedia entry makes it clear that it was discontinued because so few students were taking the exam. After reading the article, it appears that most of these organizations working with high school educators and their students arrived on the seen much more recently: Code.org started working with the College Board in 2015. What they are doing appears to be working: the number of students both taking and passing the test has risen. This strikes me as unequivocally positive.
In my experience, Java is not the friendliest environment. For someone with zero development background, I can easily imagine that the IDE and tools themselves are intimidating, let alone the language with all it's jargon and (in many cases) self-aggrandizing techno-speak. Perhaps the success of these programs will get more development classes into high school, but I think that even this level of success is significant.
I am not sure why you are saying this is a "half-truth."
AP classes always had a half-year courses (A) vs a year long study (AB.) The Comp Sci A test has been taught for 20+ years, and looking at the cirrocumuli looks like a punch list of today's typical junior dev interview, and looks equivalent to the real first class (not survey) in any com sci program.
My school did not offer the course, but I was allowed to take some basic computer related course and just self teach myself the curriculum in the corner of the room and take the test on my own in 2012. I have never formally studied computer science but I think it was a reasonable curriculum. It was all java based. It primarily emphasized the basic concepts of OOP, testing if you can work with a basic API, and designing some recursive algorithms to solve a problem.
I took 11 other APs, and felt it was comparably deep relative to the other tests. Generally I thought the AP classes were very effective as mature 101 introductions to the subject matter. Computer Science has a rough time because many students may reasonably be well beyond its expectations before even starting the course unlike one may expect for, say, Chemistry or Calculus. But I thought it was great for those who didn't already have the background.
I bet the issue is not necessarily a lack of interest, more likely a lack of exposure. There arent many (successful) programmers willing to work on a teacher's salary when they can probably make 3 or 4 times that elsewhere in industry. I didnt even have the option to take AP computer science in high school, I imagine thats due to the lack of teachers, and that situation is probably pretty similar around the country
Wow, that sounds like a failure of teaching to me. The exam switched from C++ to Java in roughly 2004 and then it is discontinued in 2009? Perhaps a change to the teaching methods could have been implemented before cancellation. Although I took the case via distance learning and I'm not sure that would have had any effect for someone like me.
I look the Computer Science AP in 2013, and I'd say it involved more than light familiarity with Java: I had to write algorithms, do asymptotic analysis on my algorithms, and fix logic bugs in code samples. There were some rote memorization parts too (what does this Java class do? Is Java pass-by-value or by reference?), but I'd say that the class earned its "Computer Science" title.
I skipped the introductory CS course at my university, but the impression that I got from my friends that took it was that it was roughly as rigorous and technical as my AP experience was.
On the other hand, I know nothing about AP CS Principles.
The A version has been around as long as the AB version. For those unfamiliar, A is roughly equivalent to 1 college semester and AB was roughly equivalent to 2 college semesters, just like AP courses for other subjects.
I was a developer in various imperative/OO languages already before I took the AB course, and I still found it to be challenging.
I think for many that have never done any programming or CS, the A version course may still be decent. It does fall short under Big O, but there should also be some extra buffer time to do something else in the year outside the AP material. That depends on the quality of the instructor though.
I took AP Computer Science A in 2010 and while I'd agree that it was hardly a thorough curriculum, it did give me the knowledge to successfully skip Comp Sci 1 in college.
My case was slightly unique though in that we had probably the best comp sci teacher you could expect in high school. He got through the entire A curriculum in half the time and spent the rest exploring more advanced topics/projects we were individually interested in.
I found a Medium post[1] that this article seems to lean heavily on, but I don't see anywhere we can get the statistics. It would be really helpful as we are trying to get some supporting data on Native Americans in CompSci.
If you are in the US, its a program to take classes at a higher level than the high school has. Its where all those folks with GPAs over 4.0 (4.0 being a pretty standard of A) come from (I guess they go up to 5.0).
If you are in the US and have never encountered AP courses then you experienced the fun of starting about 30 yards back in a 100 yard race for that college admission fun.
female numbers sore for comp sci courses, 5 years later we have an over supply of media marketing specialist lmao with no programming or technical skills and a few great female programmers who naturally probably already thought like a programmer bc they were taught to question why rather to accept facts as is.
[+] [-] AlphaWeaver|7 years ago|reply
In high school I took the AP Computer Science course after working with Java for years, thinking it'd be an easy A. Was that ever far from the truth.
My issue was that the quality of the course was plain terrible. Any school in my state (North Carolina) which didn't have an in-person teacher could offer the class through our statewide online course program, and the state of the course on there was dreadful. Typos everywhere, incorrect and trick questions on the exams. A friend of mine in a similar situation as me had to email the instructor four times with the message "I DID include what you graded me off for, it's on line 44" before the instructor looked at line 44.
Broadening participation in computing is crucial, but we also need to devote serious attention to cleaning up the curriculum. If we don't, we'll end up making more kids hate Computer Science than like it.
[+] [-] commanderjroc|7 years ago|reply
When I took Intro to Comp Sci, we didn't even go over design patterns and what makes good code. We did get instilled into us the principle of Single Responsibility.
As for trick questions, I got them in my Math Major and the comp sci classes I took. So, idk, if having trick questions is necessarily a deterrent, especially for a course preparing you for college.
[+] [-] applecrazy|7 years ago|reply
Needless to say, the test was extremely unchallenging (and frankly, disappointing).
[+] [-] sbuccini|7 years ago|reply
In physical schools, they are having teachers re-skill to fill their spots. However, locally the curriculum is based off of code.org so there is a lot more automation and self-guided learning baked in.
For what it’s worth, poor teachers can leave a bad taste regardless of the subject. I wouldn’t say it’s a curriculum problem as much as it is a staffing problem.
[+] [-] nv-vn|7 years ago|reply
[+] [-] RightMillennial|7 years ago|reply
[+] [-] zbobet2012|7 years ago|reply
In particular the last free form question was to implement A*. With over a decade of professional experience and a CSCE degree I'm still not sure I could _by hand_ write out syntactically correct, compiling code for that in less than 45 minutes _in Java_.
[+] [-] cjslep|7 years ago|reply
[deleted]
[+] [-] todd8|7 years ago|reply
[+] [-] acomar|7 years ago|reply
[+] [-] SamUK96|7 years ago|reply
So, for example, according to the 2010 US Census, Black or African Americans constitute 12.6% of the population. However, according to [1], they constitute only ~5% of the CS degrees awarded. Therefore the score for CS and Black or African Americans is |12.6 - 5|/12.6 = ~60% underrepresentation.
[1] https://datausa.io/profile/cip/110701/#demographics
[+] [-] dawidw|7 years ago|reply
[+] [-] mywittyname|7 years ago|reply
Given this, we have two choices: pretend that the world is a fair place where merit is all that matters, or we can attempt to boost those who've been treated unfairly with the hope that society will gradually improve because of it.
Your statement makes me think you're a pretender.
[+] [-] zpallin|7 years ago|reply
[+] [-] surbas|7 years ago|reply
[+] [-] SamUK96|7 years ago|reply
[+] [-] djschnei|7 years ago|reply
[+] [-] xenihn|7 years ago|reply
[+] [-] commandlinefan|7 years ago|reply
You mean woefully. Although the way you wrote it makes it kind of funny.
[+] [-] throwaway5250|7 years ago|reply
[+] [-] xutopia|7 years ago|reply
[+] [-] Sileni|7 years ago|reply
[+] [-] strictnein|7 years ago|reply
In American schools, the levels of a class on, say, European History would be:
European History -> Honors European History -> AP Euro History
You would just take one of them based on your ability and/or interest in the subject.
Students can complete AP courses and, depending on how they score on the exams, earn actual college credit at whatever school they end up at.
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] randyrand|7 years ago|reply
18.2 million software developers in the world.
only 3.6 million are from the usa. ~5.7 million are from india. 5.8 million from china. etc.
No one race has the majority.
https://www.computerworld.com/article/2483690/it-careers/ind...
[+] [-] jarmitage|7 years ago|reply
This is a good talk from Mark about his (and others') work: "Meeting the needs for a computationally literate society" (2017) https://www.youtube.com/watch?v=wk9y09mmL9M
[+] [-] tropo|7 years ago|reply
"Due to low numbers of students taking the exam, AP Computer Science AB was discontinued following the May 2009 exam administration."
Today's offering is, at best, some light familiarity with Java. That one is called "AP Computer Science A". There is even a wholly useless "AP Computer Science Principles" that involves writing small essays about non-technical aspects of computing.
[+] [-] cmiles74|7 years ago|reply
While I am not excited about AP classes lowering standards, the Wikipedia entry makes it clear that it was discontinued because so few students were taking the exam. After reading the article, it appears that most of these organizations working with high school educators and their students arrived on the seen much more recently: Code.org started working with the College Board in 2015. What they are doing appears to be working: the number of students both taking and passing the test has risen. This strikes me as unequivocally positive.
In my experience, Java is not the friendliest environment. For someone with zero development background, I can easily imagine that the IDE and tools themselves are intimidating, let alone the language with all it's jargon and (in many cases) self-aggrandizing techno-speak. Perhaps the success of these programs will get more development classes into high school, but I think that even this level of success is significant.
[+] [-] surbas|7 years ago|reply
https://en.wikipedia.org/wiki/AP_Computer_Science_A
[+] [-] b_tterc_p|7 years ago|reply
I took 11 other APs, and felt it was comparably deep relative to the other tests. Generally I thought the AP classes were very effective as mature 101 introductions to the subject matter. Computer Science has a rough time because many students may reasonably be well beyond its expectations before even starting the course unlike one may expect for, say, Chemistry or Calculus. But I thought it was great for those who didn't already have the background.
[+] [-] godzillabrennus|7 years ago|reply
[+] [-] nv-vn|7 years ago|reply
[+] [-] Ancalagon|7 years ago|reply
[+] [-] iopuy|7 years ago|reply
[+] [-] woodruffw|7 years ago|reply
I skipped the introductory CS course at my university, but the impression that I got from my friends that took it was that it was roughly as rigorous and technical as my AP experience was.
On the other hand, I know nothing about AP CS Principles.
[+] [-] zZorgz|7 years ago|reply
I was a developer in various imperative/OO languages already before I took the AB course, and I still found it to be challenging.
I think for many that have never done any programming or CS, the A version course may still be decent. It does fall short under Big O, but there should also be some extra buffer time to do something else in the year outside the AP material. That depends on the quality of the instructor though.
[+] [-] vincentriemer|7 years ago|reply
My case was slightly unique though in that we had probably the best comp sci teacher you could expect in high school. He got through the entire A curriculum in half the time and spent the rest exploring more advanced topics/projects we were individually interested in.
[+] [-] jmull|7 years ago|reply
[+] [-] protomyth|7 years ago|reply
1) https://medium.com/@codeorg/girls-and-minorities-break-recor...
[+] [-] dvh|7 years ago|reply
[+] [-] protomyth|7 years ago|reply
If you are in the US and have never encountered AP courses then you experienced the fun of starting about 30 yards back in a 100 yard race for that college admission fun.
[+] [-] jobserunder|7 years ago|reply
[deleted]
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] DocEasyE|7 years ago|reply
[+] [-] unknown|7 years ago|reply
[deleted]