Computational Thinking: AP Computer Science Vs AP Statistics?
theodp writes: "What if learning to code weren't actually the most important thing?" asks Mother Jones' Tasneem Raja. "Rather than increasing the number of kids who can crank out thousands of lines of JavaScript, we first need to boost the number who understand what code can do." Computational thinking, Raja explains, is what really matters. So, while Google is spending another $50 million (on top of an earlier $40 million) and pulling out all the stops in an effort to convince girls that code and AP Computer Science is a big deal, could AP Statistics actually be a better way to teach computational thinking to college credit-seeking high school students? Not only did AP Statistics enrollment surge as AP CS flat-lined, it was embraced equally by girls and boys. Statistics also offers plenty of coding opportunities to boot. And it teaches one how to correctly analyze AP CS enrollment data!
Statistics is indeed quite important, and whether AP CS or AP Statistics is a more useful use of a high-school student's time is a useful question (assuming they have to choose, which maybe they don't?). But AP Statistics is not teaching computational thinking; it's teaching statistical thinking, which is not the same!
Computational thinking, or to use an older term, procedural literacy, is the idea that people should understand how to think in terms of processes, procedures, etc. Rather than teaching programming, which often (especially at introductory levels) focuses a lot on the mechanics of a programming language's syntax and other idiosyncracies, the idea is to teach people how to even think about the basic idea of a machine that can execute programs. Many people can't do that: even leaving aside that they don't know C or Java or Lisp, they also don't really understand what an algorithm or a computer program is conceptually, and have absolute no idea what kinds of things can be computed and what kinds can't, or which are easy or harder to compute. They lack the ability to interact meaningfully with non-code representations of computation and algorithms as well, like flow charts or (natural-language) instruction sequences.
Statistical thinking is quite a bit different, more about proper use of data, quantification of evidence and uncertainty, etc. It can be complementary to computational thinking, but it isn't the same skill.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
We throw tens if not hundreds of millions of dollars at girls and women to get them to choose technology or engineering as a major, but completely ignore that they're already a majority to an overwhelming majority of graduates in literally every other major and dominate every level of education. Evidently it's more important that women not be a mere ~5% less of a program that's already only 10% of the degrees conferred in the US than it is to do something about the fact men are barely 1/3rd of college graduates in the first place.
Because, yknow, that's not going to be unhealthy for society at all.
A bullet may have your name on it but splash damage is addressed "To whom it may concern."
The role of AP Statistics is to offer an AP 'math' to students who don't stand a chance in AP Calculus, but who demand an AP math class on their transcript. Most do not consider AP Computer Science 'math' enough for it to play that role, hence the surge in AP Statistics. On top of that, AP Computer Science is perceived as being much harder than AP Statistics. For a Junior or Senior looking for a reliably easy AP, Computer Science is not the way to go.
As Slashdot caters to an international audience, could someone please explain what AP means?
No. Well...maybe. Actually, yes. It really just depends.
I don't know what they teach in high school AP CS, but most such courses only lick the surface and are incomparable to proper college courses. Taking AP credit is only advisable for elective courses that does not require much rigor.
Especially for something as subtle and delicate as statistics, it would be better for the kids to learn the subject properly with the necessary rigor in college. The damage due to half-assed stat learning is all too prevalent in much of academia, especially softer sciences and social studies.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
when everyone knows how to code expect it to be the factory work of this century. find some pictures of early 20th century offices where everyone sits at a desk in a huge room with no dividers. it's already here again
the value is going to be figuring out algorithms to make sense of the huge amounts of data being collected. the code to implement the algorithm will be your average low wage job
AP stands for Advanced Placement. The program intends to offer college-level courses to high school students. Each course culminates in a standard exam in the spring which is graded on a 1-5 scale. Some colleges award college credit to their students for AP courses they took in high school, depending on the score and the exam.
Is a very specialised branch of mathematics. Yes, the basics are important to know, and they can help your understanding of things in general but knowledge of Statistics will not make other subjects easier. Knowing Statists, unlike all other mathematics, does not help with programming. I am not going to make broad generalizations about most students, but university Statistics was the hardest course I ever took. University Calculous was just more of the same, But Statists start out counter intuitive and weird in high school and just get worse the further you go.
Troll is not a replacement for I disagree.
I'm a CS grad and I took AP Stat and AP CS in high school, and I'm currently working as a programmer. In relation to programming, stat is very nearly worthless. There are certainly things I learned in stat that I use every so often, but nothing in relation to a programming task. In my high school, I had to choose between AP stat and calc and calc would have helped a lot more in college. Granted, for my line of programming, calc doesn't help either, but it would have helped more in obtaining the degree.
is a good starting point but probably needs to be combined with some type of 'critical thinking' class. I also think the question may be better off inverted - it would be far better for students to understand what code cannot and/or should not do.
Statistics is indeed quite important, and whether AP CS or AP Statistics is a more useful use of a high-school student's time is a useful question (assuming they have to choose, which maybe they don't?). But AP Statistics is not teaching computational thinking; it's teaching statistical thinking, which is not the same!
While I agree statistical think is different than computational thinking, to answer your question I think it is a better use of a students time to teach statistics. Properly taught, it teaches you to think about how to formulate a question, what data you need and how to analyze it. In short, it is as much about the problem as the answer.
Computational thinking, or to use an older term, procedural literacy, is the idea that people should understand how to think in terms of processes, procedures, etc..
SNIP
Many people can't do that: even leaving aside that they don't know C or Java or Lisp, they also don't really understand what an algorithm or a computer program is conceptually, and have absolute no idea what kinds of things can be computed and what kinds can't, or which are easy or harder to compute. They lack the ability to interact meaningfully with non-code representations of computation and algorithms as well, like flow charts or (natural-language) instruction sequences.
Again, I concur with you comments. That's why code monkeys are cheap and those who can actually develop a solution valuable; and the skills you mention don't become obsolete when a new language comes along. Unfortunately, far to many people equate the ability to code with being a computer scientist or engineer. That's not to say we don't need good coders but focusing on coding and forgetting the how and why behind it is doing them a disservice. I've also found the ones who can really write elegant code generally also think conceptually as well. Maybe I was lucky but when I took CS in high school the teacher made us explain and diagram what we are trying to do before coding, and rewarded accomplishing tasks in as few lines of code as possible. A she put it, "anybody can write a program with 100 lines to accomplish what can be done in 2."
Statistical thinking is quite a bit different, more about proper use of data, quantification of evidence and uncertainty, etc. It can be complementary to computational thinking, but it isn't the same skill.
True, but faced with learning statical thinking or how to write code I think the former is more valuable.
I'm a consultant - I convert gibberish into cash-flow.
I think stats SHOULD be taught at least at an intuitive level and have a good portion of it being how one can lie with stats.
That way, we can start having an electorate that doesn't get so suckered by the stats in politics, advertising, and shitty articles.
I spend a lot of time writing R code, with occasional forays into SAS-land. But I don't really consider it a coding opportunity, nor would I want people like me to do the actual lower-level coding that is needed to make these software packages work adequately (yes, I know that lots of function in R are written in R, but there's still a majority of C/Fortran code under the hood. Because I'm not a computer scientist or a software engineer. I can write ok code in that it runs, does what it needs to do, and is not grotesquely inefficient. But I have no interest in writing production-quality, well-optimized code since I only want to get statistical results as easily as possible. I enjoy writing the code, but it's a purely utilitarian endeavor and definitely not something that would make me employable in the software industry. Which is okay since my comparative advantage is analyzing and interpreting data, but means that there's room for CS graduates and 'code monkeys'.
I took every available AP Course during high school, including AP Computer Science and AP Statistics. Roughly factoring in "normal" high school courses, worked out to taking equivalent of 12 credit hours per college semester - i.e ~48 credit hours total.
I double majored in Computer Science and Statistics in college, finishing both in 4 years thanks to the AP credit. My perspective on things:
- I was far ahead my peers in the second level Statistics course.
- I was far behind my peers in the second level Computer Science course.
Why? It came down to the quality of teaching for the courses my high school offered. I personally do not care which courses one organization vs. another is promoting. The problem has (and will always be) the quality of teachers available to teach said courses. Fix that before you attempt to fix anything else.
P.S. And for those wondering, no I'm not THAT smart. I know how to work hard and it didn't take a genius to figure out how to save on a year's worth of college expenses through AP credit.
It's not really a new debate, but the assumption that high school students will on average be better served by taking calculus instead of statistics could use some scrutiny.
Practically speaking, basic familiarity with statistics is also a form of civics - teaching kids when to call BS on bogus claims, helping them to understand what statistical significance means and doesn't mean, etc.
"Anyone who [rips a CD] is probably engaging in copyright infringement." - David O. Carson
This whole article is based on a fallacy - that Computer Science is teaching people to code.
This isn't what a Computer Science degree teaches you.
Statistics is how you lie to yourself about understanding the world.
What the fuck is "AP"?
It is, however, what AP Computer Science teaches you. Maybe it's massively improved since I took it, but when I took it we spent an inordinate amount of time learning really stupid detailed things about C++, like the idiosyncracies of iostreams.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
"Welcome to the Derek Zoolander Center for kids who can't Statistics good, and who want to learn to do other stuff good too."
I can attest to that based on almost 30 years of my own career in software development. The only and very slight problem is that management does not understand this matter.
You use "use" rather a lot in that first sentence, consider using use more sparingly in your use of the word use. It would make the sentence scan better, which is useful in getting your point across to readers.
While I know there isn't currently a AP course for Discrete Math, if we are talking about courses to help how you think about computational thinking, there really isn't a better course than Discrete Math. I don't think there was any course in my college curriculum that helped shape my thinking more than Discrete Math I & II. Its got everything, logic, sets, graphs, combinatorics, probability, etc, etc, as well as building a foundation in formal proofs. IMHO, done right early exposure to Discrete Math would be far more beneficial to the computational thinking process of high school kids than AP Stat or AP CS.
Advanced Mother Fucking Placement Computer Science
Cool, another phrase to add to buzzword bingo.
In fact, the whole blog-post is full of similar bullshit. Here's an example: "Computational thinking for scientists, engineers, and other professionals further means being able to: [ ] Discover new science through analysis of large data". What is that even supposed to mean? Science doesn't get "discovered", it develops. It's a methodology. The analysis of the data (large and small) is the science. Never mind the fact that the "definition" itself of "computational thinking" quite pompously restricts its application to the upper white-collar class "of scientists, engineers and other professionals" as if science is not for the unprivileged plebs.
For Information Systems work, what this article tends to allude to in part does massively HELP!
Just to understand all the departments you will be coding for (the processes always vary, @ least SOME, since no 2 companies do business the EXACT same, but, they do have to report the same things (from receipts all the way to governmental reports)) and perhaps, more importantly, the people involved in it along with their end-goals.
So - How can I state this?
Well, 1st - I have my Business Administration Bachelor's degree (& along with that came our subject-matter, STAT I/II) with an MIS concentration... @ 1st, I didn't think it was very useful (in middle mgt. roles @ least for me) & secondly, I've been @ that as my "day job" for the better part of, oh... around 20 yrs. now.
However, when I "shifted gears" SOLELY into coding from mgt. roles which I didn't find 1/2 as interesting or fulfilling personally?
(With the advent of the PC, I knew it was the future, so I went on for another degree, Associates in CS, & changed to Programmer-Analyst, then Software Engineer as titles/roles over time)
Well - THEN, it did... & for the very reasons I noted above!
E.G./I.E. - I could "geek speak" + understand WHAT the desired goals were of the departments in various companies very easily (moreso than coders minus the business backgrounds in Accounting, Finance, Marketing, & yes, even mathematics (shortest route/path is HIGHLY critical in logistics companies for example for routing goods to their destinations as efficiently as possible)).
So I tend to agree with a good deal of what this article alludes to... because you can't CODE for something, or as well & without a LOT of "turn-around time" to understand the business processes involved, without thoroughly understanding it, and the people involved + their goals, minus it... it helps MOST in the analyst analysis stages + for good design architecture of the information systems you build to empower employees.
APK
P.S.=> I'm only speaking from experience professionally (1994-present day curently) in BOTH arenas (business + computing)...
... apk
For example (dating myself here): "4/5 dentists chew trident" - yea, "ok" - perhaps WHEN YOU PAID THEM TO, or sent them 100 crates of it AND only used THEM as your target demographic / sampleset.
* MOD THE AC I REPLIED TO UP...
(He's right & merits it...)
APK
P.S.=> It's one of the 1st things I was taught in STAT I/II per my other post here regarding this -> http://developers.slashdot.org...
... apk
And CS isn't learning how to crank out thousands of lines of Javascript code. The only people who think it is are ones who don't really understand CS (or computers) very well.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
In over 20 years as a professional programmer, I have met many, many good programmers. In the same time period, I have met maybe 3 competent program managers (or business analysts, or whatever they call them in your neck of the woods). I'm lucky to be working with a great program manager right now and it is amazing what a difference it makes. I would easily trade half my team for that one person. There will be a lot of people here who have *never* worked with a competent PGM.
If you have people skills, organizational skills, can find a way to not go crazy listening to programmers complain about minutia, and can grasp technical concepts you can be a good PGM. Which probably explains why there aren't very many... Rather than push people who are not interested in techie things to become programmers, why not look for people who are interested in talking to people, listening to problems and organizing things. Train them as PGMs.
A mechanic is not an engineer, they are different skill sets. By analogy, you won't get far trying to apply CS if you don't know what CS is in the first place, what you can do however is tinker with the machine and make it do something interesting, perhaps even useful. CS is a branch of mathematics, it's closely related to Operations Research (or logistics as it is often called in the US), it makes heavy use of statistics, calculus, and other mathematical tools to solve computationally expensive optimization problems. CS is fundamentally linked to OR, which is fundamentally linked to Turing and others who solved real world problems presented by WW2.
Above all CS is about creating mathematical models. At the end of the day Science is a mathematical model of reality, which is why every scientists and engineer on the planet knows something about AP CS. I've attended lectures like the ones you describe, where they simply went over the syntax of some language. Yes they are boring and ultimately pointless if you can RTFM but fortunately I found them to be the exception rather than the rule. The guy teaching the class simply wasn't interested, he was preoccupied with some pet project in China and teaching was taking time away from that. But more often than not I went to lectures and found myself struggling with mathematical concepts that were at the time just beyond my level of understanding. I'm certainly no math genius, but if you want to hear what geniuses like Turing and Godel have to say then you first need to learn the language in which they speak - maths.
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
then it's a lot more like computational thinking. A team of us - 3 college math profs (goals) , 6 HS math teachers (reality check) and 2 scientists (applications) were asked to craft a HS math series from scratch. We were able to condense most of traditional HS math into three years, then allow for a year of electives. What we came up with as the start of the three years was to "force the card" onto the students with some evocative event, like the teacher walks into the room and declares "boys are taller than girls". And that's when the battle starts. "I'm taller than him!" "Yeah, but look at these four tall boys and those five short girls." Etc. So the socratic stuff starts, and they go through the developmental history of statistics in order to find the tools needed to solve problems (i.e., arguments about numbers). It leverages all the arithmetic they learned K-8 and some of the geometry, they need to think hard about why a stdev can be more sensible than a variance, why diagrams and structures are important in dealing with numbers, why arrays and variables and sorting and the procedures involved in mean/median/mode etc. have to be thought out thoroughly. Add in testing, logic, thresholds, and you pretty much have the basis of many of the skills you want a programmer to have when they're tackling an actual problem in context. Put a Ti-83-ish in their hands, and have them use it all along. Far less whining about "like will we ever use this" and a glimpse of what a career can be doing this sort of thing.
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
The main purpose of AP Statistics (and AP Calculus) seems to be to teach limited subsets of the functionality of the TI-89 calculator series. The programmability features of that calculator are never taught in American schools.
Not that AP Computer Science is much better. Its main purpose seems to be to teach the Serious Programming Language du Jour, currently Java. Any algorithmic learning has to happen in between the struggles with that language.
I'm not pleased with the College Board's position in American society.
Have a nice time.
As someone with a BCS who has worked in the industry for over 10 years in an environment highly focused on algorithmic efficiency and performance, AND got a near failing grade in stats in university, I fail to see how being proficient at statistics would help one in computer science. What is important is computation theory and algorithm theory, which are not things you learn in statistics. Unless you are trying to write code that does everything using Monte Carlo simulations that is.
Are you sure we're both talking about high-school CS courses, here? I'm not talking about a university CS degree. I have one of those, from a very theory/math-focused school, and yes, there was virtually no programming in it. But the AP Computer Science courses in high school are not like that, and should probably be renamed to AP Programming. That's also how Google and others are promoting them (as part of these "learn to code" initiatives), which was the jumping-off point for this article.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
as governmental education agencies have pretty much said that anyone can now take an AP course and exam, whether they have demonstrated the needed aptitude or not. Pushing students not yet ready for these courses into them is the wrong way around. Building a system that can get them there has been pushed off to commercial pre companies, which is tough if your actual goal is to give traditionally disadvantaged students the needed guidance to get there (cost is the issue). In fact most of this is in order to promote a honorable but currently undeliverable system of egalitarianism. In my state, this solution was created in response to a lawsuit instead of by - oh, I dunno - actually implementing a sensible educational system and having local non-educational government agencies work on the life-in-hell part of urban living. Students spend 6 hours per day in school, 18 back in whatever else is going on in their lives, none of which the policy makers would put up with on their property for more than 5 minutes. It's like holding someone's head underwater for three minutes out of four, then being surprised that they spend that other minute gasping for air and clawing at your face.
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
I am a software engineer with 30+ years experience. I was an engineering major in college. The most important class I ever took that has helped me in my software career was the required philosophy course - which I selected formal (boolean) logic. For software engineering students, it should be a requirement!
Computational thinking, or to use an older term, procedural literacy, is the idea that people should understand how to think in terms of processes, procedures, etc. Rather than teaching programming, which often (especially at introductory levels) focuses a lot on the mechanics of a programming language's syntax and other idiosyncracies, the idea is to teach people how to even think about the basic idea of a machine that can execute programs.
Many people can't do that: even leaving aside that they don't know C or Java or Lisp, they also don't really understand what an algorithm or a computer program is conceptually, and have absolute no idea what kinds of things can be computed and what kinds can't, or which are easy or harder to compute. They lack the ability to interact meaningfully with non-code representations of computation and algorithms as well, like flow charts or (natural-language) instruction sequences.
Google might do better to just buy a bunch of kids/people copies of the brilliant book:
Bebop Bytes Back: An Unconventional Guide to Computers '.
I highly recommend it for anyone wanting to actually understand exactly what interactions occur in a cpu etc and how they result in what you experience. The book actually makes it fun! At least for people like me. ;)
If you do not understand statistics you do not understand Science and empiricism. The programmers I meet are great at Discrete Mathematics, but if you beyond that, on to some thing that requires more of an exploratory mind set and data gathering, they are way out of their depth. They do not seem to understand the difference in how you approach things. Since, IMO, most of the universe is better investigated imperically they are out of their depth with real world data. They do not know how to collect, analyze, QA, or interpret it. With the emphasis on data analytics and and "Big Data" I consider that to be dangerous.
putting the 'B' in LGBTQ+
Computer Science != chugging out code. Anyone who has actually gone through a Computer Science degree (I'm nearly done with mine) will tell you that it's not purely writing code. Analyzing algorithms and computational complexity, doing Math up to or beyond Linear Algebra, Set Theory, and Theory of Computation, and possibly (depending on chosen electives) learning about Cryptography, Database Design, and Artificial Intelligence indicates that learning about how computers work, what code does, how important it is to have efficient algorithms, and the real life applications of coding all is encompassed in Computer Science.
I think there is a gross misunderstanding in society of what skills a CS Grad takes from their degree. To be honest, when I was in High School (96-00) there was no such thing as an AP Computer Science class or test (at least not at my HS) so I don't know how much the class focuses on stuff other than coding, but I can tell you that if someone goes from HS to College expecting a CS Degree program to essentially be a bunch of classes about chugging out a bunch of lines of javascript, they'll get a nice swift kick in the ass the first time they take an Algorithm Analysis class and realize all of the math and proofs involved.
A 3 year old can build a LEGO car following instructions in a booklet. An older child can cook something using a recipe. Both are examples of non-code representations of algorithms.
Perl Programmer for hire
I am a teacher who has taught math and electronics in a high-performing public suburban school and currently teach math and computer science in a comparably performing urban preparatory school.
There are several reasons why AP CS enrollment has flat-lined as AP Statistics has surged (here are three that came to mind immediately):
1) There are a lot more kids taking Algebra as 8th graders. These kids (assuming success through the American four year Algebra, Geometry, Algebra 2, Precalculus sequence) need a course to take senior year. Most high school teachers will suggest AP Calculus or AP Statistics as an option. My previous employer went from 1 section of AP Calculus when I started to 7 sections of AP Calculus and AP Statistics by the time I had left (enrollment declined slightly during that time). Yes, the average AP scores went down a little during that time --- but I still think it's a good thing that more kids are taking the classes.
2) Lots of math teachers are willing and able to teach AP Statistics, but few can teach AP CS. In most states you need a separate license to teach it. I teach at a private school, so no such license is necessary (my undergrad is in electrical engineering, most of my work experience was software, and thus I feel comfortable teaching the course). The topics covered on the A exam (the AB, or harder, exam that I took in high school no longer exists) are not trivial. Inheritance, interfaces, polymorphism, and sorting/searching algorithms are all presented. Data structures topics (linked lists, stacks, queues, etc.) are not taught but could easily be taught in a follow up course, since most students taking AP CS at my school are juniors. Some of my teaching colleagues who know how to program would struggle with the object-oriented focus of the exam given that they came up during the Pascal era.
3) In the era of budget cuts, if you can only get 15 students to register for AP CS, it will not run in many schools. Sometimes it's feasible to run it every other year, but often that doesn't work. Many kids who are interested in programming cannot fit two semesters into their high school schedules. AP Statistics, however, fulfills the fourth year of mathematics that many schools require and thus is easier to fit into the schedule.
Let me say that I very much enjoy teaching the course. The examination in CS is challenging and well written. There are some topics that I'd like to see added (file input / output is not typically covered). I am confident in my students' ability to take Data Structures as a freshman if they pass the exam with a 4 or 5.
The "learn to code" initiatives, however, are precisely about teaching people to learn how to churn out code. They're not called "learn CS" initiatives for a reason. (And AP CS, despite the name, is more of a learn-to-code than a CS course.)
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
is an oxymoron. CS degrees (don't have one myself) are useful: DaVinci and Hendrix were born with talent, but not developed ability. No amount of training by itself could create a DaVinci or Hendrix, though it might help one develop faster.
It is obvious anyone who interviews that programming is a born in ability, and if it's not there no amount of training makes the slightest difference. If it is there, school makes things faster, but the end result is the same. I started in high school in the '70's with a single BASIC book and a teletype/300 baud modem. College gave me experience and some handy facts, but nothing fundamental that I wouldn't have figured out when I needed it.
What we really need is a one semester or less high school class to determine who has the "gift." Those who do don't require much more if they choose to become programmers, and they can get that in AP classes or in college; the rest (and their colleges) would know not to waste time and resources on CS classes. Yeah, yeah, everyone has a "right" to be whatever they want, but if they're going to fail, get it over with early.
What about Code Monkey Island? This board game should be in every elementary school in the world!
"Sum Ergo Cogito"
CS is not IT and some cases not programming.
Some of CS is programming at very low levels doing stuff that for the most part is done by API's and the OS. Now some theory is good but an overkill of it while lacking other more needed / hands on skills is bad and leads to poor code / people who think that this will work but it does not work that well.
And on the other side you have people with the more hands on skills and some theory who can put out good code and can fix up the poor code.
Mine simply is the observation that the more mathematics you take, the more Computer Science (and for that matter Engineering) schools like you as an incoming student. They really care less about AP Computer Science, treating Mathematics and Physics as the essential pre-requisites.
Mod these motherfuckers up.
Fucking Americans and their fucking assumption that we fucking understand their fucked educational system.
FUCK!
Watch this Heartland Institute video
Why the AP exams are the de facto gatekeepers for university entrance is a heaping helping of condemnation for K12 education AND the universities that let it happen, although to be fair they are treating the AP with far less importance these days.
CS grads usually go to application or systems development, debugging all the possible errors in a form or process.
Stat grads usually go to analyst positions, scrubbing the data and tracing report calculations for accuracy.
The few AP courses available to me in high school were CRAP. They taught to the test; I got out of 2 semesters of Calc. I took Calc in college anyway and it was almost a different world.
All people care about are simplistic certifications - which is what the AP stuff is. It will gravitate an education into a certification training course and there is a big difference between the two of those. Forget actual understanding or building up skill level (aka IQ) in the area.
I would recommend AP Statistics not because I know anything about it but because statistics are so important today so any increased understanding (even if it is just at a shallow certification level) is better than NOTHING which is what most people have. Perhaps a better understanding will help to undermine the meritocracy we continually try to prop up using a poor understanding statistics (and that is just part of the problem... the other is the idea that all aspects of life can be quantified and ranked as well as being programmed by laws/policies we blindly adhere to like good little authoritarians we are raised to be.)
I don't know about AP CS. I have taught a programming course in a high school and I'm confident I went way beyond whatever AP covers in terms of practical skills. I teach in a university now and it is similar because it's me but also differs greatly because I can extract many hours outside of class from my students which was never possible in high school.
As others (quietly) say all the time-- if you put college into the high schools then that reflects BADLY upon high schools and colleges!!!!
Democracy Now! - uncensored, anti-establishment news
Basic schooling (up to high school) should be about preparing kids for life; not jamming in some jobs training gratis for business. Instead of statistics, how about financial literacy? So that later on the kids won't be stunned when they find out what a $100,000 college loan really means. And maybe they can keep their parents away from the pay day loan vendors. Instead of computer science, how about critical thinking? The next time they hear some bloviating politician they will be able to see the arguments for the hogwash they are. If a kid graduates high school with good reading skills (and with that the ability to teach themselves anything they want to learn), good math skills (enough for financial literacy), a good grasp of history (at least of their own country) and the ability to think critically and analyze arguments, the schools can pat themselves on the back for a job well done.
What is the point of AP? I understand for kids that want to 'get a jump on' their classmates, but in general its useless. What is the point of having it in college if you take it in High School? If its a college course, then take it there. Usually college courses provide better meaning and comprehension when you take them with other courses that fit the material. "Why am I learning this?" is often answered by other course material in other courses. You don't get that when you take a course as a one off. I took a second year "Cognitive Psychology" course along with a third year "Artificial Intelligence" course at the same time in university. There is a massive overlap between these courses and of the approximately (combined) 150 people who were taking the courses at that same time, there was one other person besides me who was also taking both at the same time. I talked to him briefly when I was cramming for one of the finals and we both very quickly concluded: "Studying for one is like studying for the other, except for a few terms that you have to keep separated, and remember which term fits to which course". That, and some problems that you could try at home but not to hand in for the psych. course were "write three programs and turn them in by Tuesday, and provide a mathematical proof describing your solution" for the CS course.
Many people can't do that: even leaving aside that they don't know C or Java or Lisp, they also don't really understand what an algorithm or a computer program is conceptually, and have absolute no idea what kinds of things can be computed and what kinds can't, or which are easy or harder to compute.
Is there in fact a better way to teach that than by sitting down with a teaching language and actually doing some programming? Writing a LOGO program to draw fractal trees was something a whole class of kids (some of whom had never used a computer before the class) managed to accomplish. Then we understood recursion, limits, loops, functions, operands...
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
The AP curriculum has probably changed over the years, but my AP computer science courses were computer science course. Yes, we learned a language. Yet we went beyond that to learn how languages (in general work), how particular algorithms work, as well as how to design and implement various algorithms. While the projects may have been boring by modern standards (i.e. we didn't frame the course in the context of games), the actual content and instruction was exciting.
What do we need so many more programmers for anyway?
The internet was world-changing. I have no doubt that in 1990-something more getting more programmers in the world was a very laudable goal. What do we need a world population filled with coders for now though? Endless UI permutations? Is there really a whole new, currently un-thought of world changing application just waiting to be written for the benefit of humanity? What is it, an iPhone game? Come on!
We need more scientists working on clean energy solutions. They are going to need to study things like physics and chemistry. Somehow I don't think learning to type things like "$polution=0;" and "$efficiency=100;" are going to cut it. How about some more medical researchers? I would really really love to see many or any of the diseases and/or bad effects of time that eventually kill us all cured before the day that they do me in myself.
How about some engineers to invent more and better labor saving devices to make our lives more enjoyable. While they are at it they can always come up with some new manufacturing methods allowing us to produce more stuff for less time and money. Of course, with that kind of thing it would be nice if we had some philosophers or politicians or whatever come up with some ways we can all benefit from this saving of labor rather than just a few. You know.. ways that work, not like the things which have been actually tried. I can't wait for my 20 hour work week!
Of course.. while we are making life here on Earth better there is still the fact that Earth is only a small part of a very large universe. Surely there are great things waiting out there somewhere! How about an actual space program, one with an actual goal of spreading humanity out there? Of course that will require rocket scientists, engineers and all sorts of support people.
Meanwhile life does go on. We will still need people doing all the ordinary things, growing food, preparing it, running stores, building things, fixing things, teaching our children and everything else. Yes, some will even be needed to write code. But surely not everyone! I don't see how programming has somehow become more important than everything else that we need to encourage all children to become programmers rather than whatever they otherwise would have been.
The only people who think it is are ones who don't really understand CS (or computers) very well.
Including at least half of the sophomore level wannabe CS majors that show up in my calculus classes...
Rhapsody in Numbers
We, as humans, got the lead on the other monkeys in the tree by using (handheld) tools. This does not scale to well since we only have two hands. So now we make tools that we can tell what to do and then walk away. However, like learning how to use a tool, we also need to learn how to tell tools what to do. Enter Computational Thinking. The best way to teach children Computational Thinking is to present them with an inspirational simulated world where they can pester toys until they get the hang of it. I guess Statistics is a simulated world, but i myself have never found it inspirational. Worlds like Scratch (scratch.mit.edu) and Robomind (www.robomind.com) are more to my liking (disclaimer, i am one of the culprits who made the latter).
We get proposals like this.
AP Statistics is a nice class, but most majors have you relearning any stats you utilize, tailored for your major, anyways. It's a good foundation for other science majors let's say, but it's sure not a better CS course than AP CS.
>> could AP Statistics actually be a better way to teach computational thinking to college credit-seeking high school students
No. Evident to anyone that hires in this area. Stats courses in no way make it a priority to teach how their stats programs can be enhanced by the ability to code well.
But a mixture should definitely be taught.
What does it matter how many girls are doing what?
Young women are going to do precisely what they want. No one is stopping them from pursuing computer science or engineering careers. These fields pay well. There are many clear and obvious incentives to pursue these careers. If young women tend to choose other careers more often than young men, this does not represent a problem in need of a solution.
Promoting a class based on its female participation rate is absurd.
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.