Python is the most popular intro language: But what about CS Principles?

August 3, 2014 at 9:45 am 38 comments

Philip Guo did an analysis of what top CS departments teach in their introductory courses (see link below) and found that Python now tops Java.  MATLAB tops C and C++ (though not if these are combined), and Scheme and Scratch are near the bottom.

Philip’s analysis did include CS0 and CS1 courses, which points to a problem for adoption of CS Principles as an Advanced Placement exam.  Scratch is the only one of the popular CS Principles languages now used in the CSP Pilots that is also being used in CS departments.  Other CSP popular languages include App Inventor, Alice, Processing, JavaScript, and Snap!.  Those don’t appear in Philip’s results to any significant degree.

It’s reasonable to say that an AP will only succeed (e.g., students will take it) if they can get credit or placement for the exam in college or university.  Typically, colleges and universities give credit for courses that are currently taught.  Will we see colleges and universities start teaching CS Principles?  Will they give credit for a course that they don’t teach? For languages they don’t teach?  Maybe we’ll see more of an influx of CSP languages and courses into colleges and universities. I predict that we won’t.

Scratch is the only visual, blocks-based language that made this list. It’s one of the most popular languages of this genre, which include related projects such as Alice, App Inventor, Etoys, Kodu, StarLogo, and TouchDevelop. The creators of these sorts of languages focus mostly on K-12 education, which might explain why they haven’t gotten as much adoption at the university level.

via Python is now the most popular introductory teaching language at top U.S. universities | blog@CACM | Communications of the ACM.

Entry filed under: Uncategorized. Tags: , , , , .

Why MOOCs don’t help CS Education: Learning to lighten up Why Community Colleges are Important for Broadening Participation in Computing

38 Comments Add your own

  • 1. Steve Tate  |  August 3, 2014 at 10:46 am

    As far as universities offering credit for CS Principles based on the AP exam, many (including us) have already signed a letter of support saying they would do this. I really don’t think that will be a problem.
    I also think you miss the point here, when you phrase it like this: “Will we see colleges and universities start teaching CS Principles? Will they give credit for a course that they don’t teach? For languages they don’t teach?” We are, absolutely, not giving credit “for a language” at all. The whole purpose of CSP is the “Principles” not a skill in a particular language. It’s NOT a programming class, even if there is programming involved.
    I have taught a “CS Principles” class at our university for 2 years now, paired with a local high school teacher teaching the class in her high school. For the past 2 years we used BYOB and patterned things largely, but not completely, after the Berkeley class. I’m teaching it again in the upcoming semester, but – time permitting, which is always the challenge – will make some fairly major changes. I’ll still use BYOB (yes, BYOB and not Snap! for some specific reasons) at the beginning – maybe two weeks worth of labs. And then maybe do a Google Blockly transition where they can flip back and forth between block-based, JavaScript, and Python. And then move into some simply Python, maybe using the PyGames library.
    My students hated BYOB – they thought it was too childish and weak. In fact, the high school students had the same opinion. I’m thinking block-based languages are best for middle-school and earlier. My initial reaction to BYOB/Scratch in a university classroom was positive – avoid the syntax issues and lighten the cognitive load, right? But in the end I think that undersells students and sets the bar too low. My goal now is to give them a smattering of different systems to demonstrate clearly that the same principles are used, regardless of language. That’s the message I think is important from CS Principles. And far from giving credit “for a language,” it’s giving credit for seeing that the language really isn’t that important.

    Reply
    • 2. Steve Tate  |  August 3, 2014 at 10:51 am

      To add one additional item – I mentioned setting the bar too low. I am currently reading “Completing College: Rethinking Institutional Action” by Vincent Tinto. I don’t have the book here, so can’t quote directly, but he talks about the importance of setting high expectations, and that high expectations raise retention rates – even for disadvantaged or at-risk students. He points out the noone rises to low expectations, and even students who struggle do better in a classroom in which they are expected to do great things.

      Reply
    • 3. Mark Guzdial  |  August 3, 2014 at 5:15 pm

      Steve, I do understand that CS Principles is not about skill in a particular language. I was involved in the original CS Principles Commission. I do get the big idea. I’m talking about the reality in CS departments, as Shriram suggests.

      CS departments do care about languages. I know of CS departments who don’t give transfer credit for intro courses in Java or Python, because they believe in C++. In some sense, I do get it. If the second course expects a certain language, then students are a disadvantage if they don’t learn that language. In the end, novice students understanding of computing is tightly tied to the syntax of a programming language. If they don’t teach any of the CSP languages, will they give credit for the course?

      I don’t think that the signing of the letter will mean that much in the end. Let’s take Georgia Tech, as an example. We signed the letter. We also have offered CS Principles as a pilot — as a “special topics” course, not a course that is in our catalog. I don’t think you can get credit from an AP for a special topics course, and even if you did, it wouldn’t count for much. We’re not going to give placement credit, because our intro courses do require a significant amount of programming.

      Earlier this summer, I asked what other CS departments in the University System of Georgia were going to do about CS Principles. Credit? Placement? Maybe Gen Ed credit? Southern Polytechnic State University is interested in the question, but that’s one out of 28 Universities offering CS in Georgia. If it’s the same odds across the country, CS Principles is in trouble.

      Steve, do you know what the rest of U. North Carolina campuses are doing for CS Principles?

      Reply
      • 4. Brian Harvey  |  August 3, 2014 at 6:37 pm

        Mark, as you know, we’re talking about a probably-terminal breadth course for non-majors. So even departments that fetishize the programming language in their introductory sequence for majors have no reason to carry that over to this course.

        Reply
        • 5. Mark Guzdial  |  August 3, 2014 at 6:47 pm

          I know three schools that require CS for other-than-CS majors: Georgia Tech, West Point, and Harvey Mudd. For all three, there is only a single required course. All three require far more programming than CS Principles in that course. Now, maybe they (and other schools) will adopt a new CS Principles-like course that AP credit could count for. I’m not seeing any movement in that direction right now.

          Reply
          • 6. Brian Harvey  |  August 3, 2014 at 6:58 pm

            Those three are techy schools. Think English majors at non-tech-focused universities.

            Reply
            • 7. Mark Guzdial  |  August 3, 2014 at 7:06 pm

              I think that’s disparaging to all the Liberal Arts, Architecture, and Business majors, but let’s let that pass.

              Are there many places that have a CS requirement for English majors at non-tech-focused universities? Do you see those courses getting created and made required? If they’re not created and required, the AP doesn’t buy much. Or maybe they’re getting created, and they count for elective credit. Maybe students could use AP credit for those courses. Are there a lot of those CS Principles-like courses for English majors at non-tech-focused universities? So many that it’s worthwhile for high school students to get credit for the CS Principles-like course at their college or university? Are we seeing them getting created?

              Philip’s data (which included CS0 courses) suggests that they’re not getting created. And that’s a problem for CS Principles.

              Reply
              • 8. Brian Harvey  |  August 3, 2014 at 7:11 pm

                I didn’t mean to disparage anyone, and (as I said earlier) I certainly don’t think we should have lower bars for anyone. The point is that the English majors aren’t taking the course as a *prerequisite* for anything else.

                As for the question you now raise, at Berkeley there is a “quantitative reasoning” requirement for non-engineers. Lots of courses meet the requirement, but our CS breadth course (which is now BJC) is one of them, and the APCSP will presumably be accepted as well.

                There are people at Berkeley talking about a specific CS requirement for all students, but the idea terrifies me. (The theory is that we can handle 5000 students/year if we use a MOOC.)

                Reply
                • 9. Steve Tate  |  August 3, 2014 at 8:53 pm

                  Yes – what Brian said. The trend in general education requirements these days is for a broad “Quantitative Reasoning” requirement. I wish we had that, but don’t – Chapel Hill is set up that way, as is Duke, Appalachian State, and more. We’re stuck old-school with a “Mathematics” requirement. But in those schools, CSP would serve as the QR requirement, and students wouldn’t necessarily ever take another CS class.

                  Our CSP class is not a prerequisite for anything, and we don’t count on any specific skill from that class (like a programming language) for anything later. We started off thinking it would be a class for both non-majors and students who didn’t have the prereq (Pre-calculus) for CS1, but in the end it has been almost exclusive CS majors who don’t have the prereq for CS1 (since it doesn’t count for a gened credit either). It does count as “hours”, although I’m not sure that helps a lot for most majors. It helps – it gives the students a broad perspective of the field, when before they couldn’t get into any computer science class at all in their first semester. And our assessment shows that they do better when they actually do CS1 (about half a letter grade better on average). These are students with lower preparation coming in, and then the outperform the other students when they get to CS1. Practice with computational thinking DOES help!

                  Reply
      • 10. Kathi Fisler  |  August 3, 2014 at 7:26 pm

        In part, some departments care about languages because what gets covered differs so widely across languages. Languages are often proxies for content covered. If CS2 expects students know pointers or higher-order functions (for example), then the language of prior learning is critical.

        There are multiple ways to view the question of AP credit. Some students argue for credit based on the “reward” perspective: I did all this work in CS, and I want it recognized. Departments often take the “credential” perspective: credit is a credential, both to the student and others, of what the student is able to do. I can’t in good faith give a student AP credit that would allow them to jump into CS2 (for example) if I don’t think their AP course has prepared the student sufficiently for CS2.

        The credential perspective is tricky for CS Principles. Unless the school offers a similar course, so that others outside of the CS dept know what to expect from students with credit for that course (as opposed to a more programming-based CS1), it’s hard to give credit for Principles. The question is less credit, but more “credit that others can accurately interpret”. My department chose not to sign the Principles letter because we know campus culture has an expectation of programming experience from all of our CS courses that Principles might not satisfy. I think Mark’s concern is right on here.

        Kathi

        Reply
        • 11. Michael S. Kirkpatrick  |  August 4, 2014 at 9:07 am

          “If CS2 expects students know pointers or higher-order functions (for example), then the language of prior learning is critical.”

          This is the crux right here. I always find the CS1 language holy wars to be missing the point. The discussion often focuses on why language X is “better” than language Y (e.g., lower syntax cognitive load, more theoretically sound, etc.), but they never focus on the relevant contextual factor of what comes next in that particular curriculum.

          Then there’s the factor of sufficient faculty resources. I suspect, though I’ve never looked into it, that CS0, particularly one designed as a terminal course for non-majors, is offered in a minority of schools. I don’t believe most faculty have the resources to offer both CS0 and CS1, so the choice of language in CS1 has higher stakes. We would love to offer a CS0 that counts for general education credits. However, we would be required to have somewhere around 300 seats available per semester. We simply cannot afford that.

          Reply
      • 12. Steve Tate  |  August 3, 2014 at 9:53 pm

        Mark: For other UNC campuses, Tiffany would be the right one to ask. Not sure there’s a lot going on beyond us (UNCG), where Tiffany used to be (UNCC), and where Tiffany is now (NCSU).

        Reply
    • 13. Brian Harvey  |  August 3, 2014 at 6:34 pm

      I’d like to speak to the issue of setting the bar too low. I totally agree that we shouldn’t do that. But surely the bar shouldn’t consist of struggling with bad syntax! It should be about powerful ideas, such as recursion and first class procedures, which are the highlights of the BJC curriculum. We like those ideas because they can pull students into seeing computer programs themselves as things of beauty (as opposed to just unpleasant necessities to get useful results). That’s the sort of thing we should talk about — how deeply into programming should we go in a course for non-majors — rather than about programming languages.

      Reply
      • 14. Mark Guzdial  |  August 3, 2014 at 6:52 pm

        Brian, first class procedures are not part of the CS Principles Big Ideas. Not all the CS Principles are going to include those. Is Berkeley going to accept a passing score on the AP CS Principles if the course that the student took wasn’t BJC?

        Reply
        • 15. Brian Harvey  |  August 3, 2014 at 7:03 pm

          Yes, as a breadth course for non-CS students, sure. (We hope that if we succeed at teaching BJC to a wide range of high school students, that that will contribute to raising the bar in the CSP community, but if that doesn’t happen, we’re not going to pick up our marbles and go home.)

          Reply
      • 16. Kathi Fisler  |  August 3, 2014 at 7:37 pm

        As sympathetic as I am to the “beautiful ideas” theme, I return to the perspective of credit as a credential (raised in my other comment on this post). I do not entirely trust that a student raised on drag-and-drop programming won’t fall apart when thrown into textual syntax. My concern is not backed up by data, just a hunch (partly from watching students struggle to make sense of a command-shell interface when all their previous software experience is click-and-drag OS interactions).

        Perhaps this comment masks a strategic question: who/what has responsibility from helping drag-and-drop students transition to textual syntax? The sending course or the receiving course? There are good arguments against each (it’s ultimately a question about API design). Perhaps this is the sort of gap that a mini-MOOC could attempt to address, but we can’t pretend that the issue isn’t there (especially if the textual language also shifts programming style).

        Kathi

        Reply
        • 17. Brian Harvey  |  August 3, 2014 at 7:54 pm

          Again, for *most* of its intended students, CSP is the last CS course they’ll take, and this issue doesn’t arise.

          But in fact we have recently added a week of Snap!-to-Python labs in the Berkeley version of BJC to help students who want to go on to our CS1, which (long sad story) is taught in Python nowadays.

          But even if what you say about transitioning is true, before there was CSP we expected students to come to CS1 with *no* prior experience. So I don’t see why CSP has any obligation at all to later courses, except I guess that we shouldn’t leave students more ignorant than before they took the course.

          Nobody is suggesting that the APCSP should get you out of CS1, just CS0.

          Reply
          • 18. shriramkrishnamurthi  |  August 3, 2014 at 8:08 pm

            The other way this will all play out is, as usual, the AP CS curriculum will yet again become normative, and we’ll end up having to redefine our curricula (except for those of us who don’t want to).

            Reply
      • 19. Steve Tate  |  August 3, 2014 at 9:08 pm

        I think the whole “don’t bog people down with syntax” thing has been way over-done in the past few years. Syntax really just isn’t that hard when you’re talking about college students, at least for many languages (let’s avoid Java, OK?). My students are very frustrated with dragging little pieces around. They want to TYPE the code – they see drag-and-drop as slowing them down for no good reason.

        Why not get to the beautiful ideas using a more productive language (and as a bonus, one that they might actually use again in the future to do something useful – I guarantee you that none of my students will ever touch BYOB again after the class).

        Reply
        • 20. Brian Harvey  |  August 3, 2014 at 9:12 pm

          Don’t forget that we’re trying to reach high school students, too, including ones who don’t know how to type. But, just for you, in Snap! if you type control-F, you get a text box into which you can type the name of the block you want. 🙂

          And, you know, the only other language around that’s as powerful as Snap! is Scheme, which (not for any good reason) is an even harder sell than Snap! is.

          Reply
          • 21. Steve Tate  |  August 3, 2014 at 9:23 pm

            I’m remembering the high school students, because I’ve worked with a high school teacher here on CS Principles. Those students are as frustrated as mine are. Drag-and-drop programming has worked fantastic for us in one setting: our one day workshops for high school students and our week-long summer camp for middle school students. They can be productive almost immediately, and don’t get to the point of doing anything detailed enough to be frustrated.

            Reply
  • 22. shriramkrishnamurthi  |  August 3, 2014 at 3:41 pm

    Steve Tate says not to worry, many universities have already signed the form saying they’ll give credit for AP CS Principles. The form, if I understand correctly, very carefully does not say what _kind_ of credit.

    Many universities gave credit for the old AP CS, too. It was often worthless credit wrt making progress in the major (eg, sometimes it was for a course that was never offered, and fulfilled no CS requirements — it was a pure university graduation credit).

    I don’t see how the signatories here have agreed to anything more, and if they haven’t, why their signing makes much of any difference.

    Reply
    • 23. Steve Tate  |  August 3, 2014 at 9:14 pm

      I’m not sure I get your point here. I think it’s clear from the student learning outcomes what type of credit it will be – a CS class that is not part of the required CS-major course sequence, that is either a course taken for enrichment or to satisfy some general education requirement.

      Reply
      • 24. shriramkrishnamurthi  |  August 4, 2014 at 7:00 am

        Good, so we agree that this won’t be credit that is useful towards a major in CS. Then this curriculum will likely not be much help in getting more people into the major. (Especially when they encounter the shock of switching from what CS appeared to be and what it’s actually like.)

        Reply
        • 25. Steve Tate  |  August 4, 2014 at 9:24 am

          We have no intention of making the credit “useful toward a major in CS.” I don’t think anyone was planning it that way.

          Hopefully it will help in getting more of the RIGHT people interested in CS. Our biggest problem with incoming freshmen is that they have no earthly idea what CS *is* – there are many that aren’t interested once they learn more, and there are many that didn’t think they were interested and actually are. There are something like 20 high schools in my county, and exactly ONE of them offers a CS class. A broad-based introduction to CS, based on fundamental principles, pushed back to the high school level, should allow people to better know if they are interested in more CS or not.

          When we talked with local high school principals about the CSP class, quite a few expressed interest. That means rather than limiting CS exposure to one high school that specializes in technical topics, we’ll have many times more students at least knowing what CS is.

          Reply
          • 26. Mark Guzdial  |  August 4, 2014 at 11:13 am

            “When we talked with local high school principals about the CSP class, quite a few expressed interest.” Do you have data, Steve? How many high schools? What percentage of schools did you talk to? Increasing the diversity of CS is a numbers game, and in particular, a percentages game. Can we get 20% of under-represented minorities in a state involved? 50%? 75%?

            Reply
            • 27. Steve Tate  |  August 4, 2014 at 12:58 pm

              I (along with the High School teacher I’m working with) did a presentation at the state-wide CTE conference a year (maybe two?) ago, and lots of people talked to us to express interest afterwards. Deborah Seehorn was also there, which probably helped in making the high schools pay attention. Follow-up from that was less productive – I can explain more some time in a way other than a public forum.

              In later direct conversations in Guilford County, we talked to 4 or 5 area high school principals, including one that is in a significantly disadvantaged district (with >94% African American and Hispanic population), and they were unanimously enthusiastic about putting this at their schools. Now I don’t want to overstate that – this was an initial conversation with a “would you supply a letter of support for us on this grant proposal” follow-up. Without the money (we didn’t get the grant) and when rubber-hits-the-road and they have to actually put in some effort to make it happen, there may not be the same enthusiasm.

              Deborah has been actively recruiting NC high school teachers to offer CS Principles. I haven’t talked to her in a while, so I’m not what the response has been like. In the current NC slash-the-budget-to-the-bone environment, it’s not clear that many schools are going to be starting a lot of new initiatives. The timing is pretty terrible as far as that goes, in fact.

              Reply
          • 28. sara mcmains  |  August 29, 2014 at 3:00 am

            “Our biggest problem with incoming freshmen is that they have no earthly idea what CS *is*”
            I’d been wondering these many years later how on earth I *did* know this when declaring a major at the end of my frosh year at harvard, *without* having taken a cs course yet. I recently realized it probably had something to do with having read Goedel Escher Bach when I was 14. Because it certainly wasn’t from the very, very minimal programming in basic that was all I’d done when I decided to major in cs — but I did know that recursion was this cool, powerful thing, without having written any recursive code yet. And I knew that I liked the applied side of my crazy frosh math class where we did all this linear algebra for setting up and solving circuit diagram stuff.

            I think I was lucky to get exposed to the right sorts of puzzles and books and math enrichment to figure this all out somehow in time. In my high school there was only a fairly simplistic programming course was how I perceived it, but if there had been a high school cs principles course that had a reputation for introducing Big Ideas, that would have been an easier sell.

            Reply
      • 29. Michael S. Kirkpatrick  |  August 4, 2014 at 9:20 am

        I think it’s more than that. I’m not sure that such AP credit is really attractive. Most AP credit that I can think of is used to satisfy some particular requirement (e.g., major intro course, writing, foreign language). In the case of gen ed, there are generally very specific courses that qualify for gen ed credit. Unless the department is offering a specific CSP class for non-majors, the AP credit will probably only help as generic elective credits toward graduation. That means students would be choosing CSP over what are normally perceived as fun and easy classes, like music lessons, sports, beer and wine classes, etc. That seems a hard sell to me.

        Reply
  • 30. astrachano  |  August 4, 2014 at 8:16 am

    First, I think Steve Tate is almost always right about things. From the beginning CSP was designed to be language agnostic. I still think that’s a good thing, and I don’t think the language used most in CS1 really has an effect on what happens in CS Principles, except that good tools and community developed for one audience of beginners could have a strong impact on a different audience.

    The premise of CS Principles from my perspective (I have been part of the project since the beginning, but I speak for myself and neither for NSF nor the College Board) isn’t to accelerate students into a computer science major by skipping courses, it’s to interest and excite a far more diverse group of students into thinking about computer science as an area of study. This isn’t a bait-and-switch operation, it’s not a programming-for-poets course. CSP provides a framework from which rigorous and engaging courses can be constructed. Of course it’s possible to construct courses that are neither, and that’s the case with CS1 courses as well.

    AP Credit and Placement is much less straightforward than many of the comments here suggest. For many schools, AP isn’t about graduating in fewer semesters (which credit would allow) but about getting into the school in the first place. High schools often give AP courses more weight in calculating GPA, and the accepted rigor of the AP program (and the IB program as well) is absolutely used in the admissions process, e.g., to see if a student is challenging herself, even when schools give little or no credit for AP scores. AP scores also allow for placement, even when credit is not awarded, so students can skip courses rather than graduate in fewer semesters. How this affects students and schools is highly dependent on the school.

    Duke, Cornell, and Carnegie Mellon, for example, are cited in Philip Guo’s article as using Python in a course for which AP credit can be earned. I’m confident that a student who earns a 5 on the APCS A exam, where Java is featured front-and-center, would fail the final exam at CMU, at Cornell, and at Duke, but credit and placement are nevertheless awarded at both schools (see, e.g., http://www.csd.cs.cmu.edu/education/bscs/ap_policy.html and http://as.cornell.edu/information/orientation/credit.cfm). I’m not claiming that these schools are examples of trends, simply that credit and placement don’t necessarily depend on the language.

    We do have a QS (quantitative studies) requirement at Duke that our CS Principles-like course satisfies. However, AP credits cannot be used for satisfying these requirements (QS is one of many curricular requirements). I’m confident we will place students out of our course based on AP scores, because we don’t want students with experience in the groups we set up in that course. I’m less sure we’ll give credit based on scores on the CS Principles exam — not because of the language used at all, but because our course emphasizes topics that could be used in realizing the CSP framework, but that aren’t required. Just as the BJC program uses recursion and higher-order functions as part of understanding and exploring Abstraction and Programming (two of the big ideas in CSP), our course emphasizes current events and the Internet more than would be required in an arbitrary CSP course.

    The point I’d like to emphasize here is that focusing on the language continues to detract from, if not derail, conversations about ensuring that all students might benefit from becoming educated cyber citizens, perhaps interested in exploring computer science. Not all students in high school take AP exams, so a focus solely on AP misses an opportunity to reach out more broadly. The CS Principles project is part of a larger effort in CS10K to reach more broadly.

    Reply
    • 31. Steve Tate  |  August 4, 2014 at 9:45 am

      I didn’t realize that AP credits can’t be used for GenEd requirements at Duke. I guess that spoils one argument about how credits might be useful. However, that whole landscape is changing a lot, with at least one school (you might have heard of this school ola: Dartmouth) not giving credit for ANY AP exam. For appropriate placement, yes, but not for credit.

      The point you mention about other motivations is important. Admissions folks at selective schools want to see students who challenge themselves, taking rigorous classes. Even without the credit aspect, AP (and IB) classes are ones that stand out in that way, and students will gravitate toward them because of that prestige. Well…. some students, anyway. Hopefully we don’t lose out on the diversity goal because the typical already-motivated students are the ones who take the AP classes.

      Owen mentioned the CS10k project, which brings up another important benefit: think about how many more HS teachers are going to do professional development and learn some CS now. These teachers will not just teach CSP, but will teach other courses. Hopefully some CS awareness and CS approaches (dare I say “computational thinking”) will end up in other classes as well. As it is right now, CS is a very isolated subject in high schools – students don’t have any exposure to it, and teachers have no clue what it is. This is at least one step toward correcting that.

      Reply
      • 32. Mark Guzdial  |  August 4, 2014 at 11:17 am

        “Admissions folks at selective schools want to see students who challenge themselves, taking rigorous classes.” Are the majority of under-represented minority students that we’re hoping to get to try CS through CSP aiming for selective schools? I’m guessing not. Do these students perceive (the reality doesn’t matter if we’re talking about the choice to take a class) that the colleges that they want to apply to value AP classes? Do we know?

        Reply
        • 33. Steve Tate  |  August 4, 2014 at 1:05 pm

          That is a concern of mine, and as I said above I hope CSP doesn’t just benefit students who are already motivated enough to be taking AP classes and shooting for selective colleges. I’m not sure I can say much more about that. In Owen’s comment (below) he mentions the need for a non-AP class. My hope would be that a large number of schools would put teachers through professional development for AP CS Principles, and then offer a non-AP class with similar topic coverage if not the same expectations and rigor. If creating the AP class is what drives teachers to professional development, then that’s a great benefit. I have no data or justifiable reason to believe that this will happen, but that’s why it’s “my hope” rather than “my expectation”…

          Reply
    • 34. Mark Guzdial  |  August 4, 2014 at 11:11 am

      Owen, I know that you and Amy Briggs have been running the CS Principles effort since the beginning. You clearly know what’s going on. And as you often point out to me, my argument is muddled. Let me try to spell it out, and ask my questions that maybe you have the answer for.

      First: I’ve understood the point of AP CS Principles is to get a high-value (AP) class into high schools that is more attractive to high schools and high school students, especially female and under-represented minority students, than AP CS Level A. The idea is that schools will offer it because it’s AP, and students will take it because it’s AP and a more attractive, useful, and engaging class than AP CS A. Do I have the basic story right?

      I’m using Philip’s data about languages as a sample to get an answer to the question: How many colleges and universities are currently offering a CS Principles-like course? I know that CS Principles is not language-specific, but there are a set of languages that are most common in CSP classes, and *not* seeing those languages in CS0 classes (Philip looked at both CS0 and CS1) suggests that there is little CSP going on in those schools. But you may have different data. How many colleges and universities are currently offering or are planning to offer CSP between now and 2016/2017 when AP CSP rolls out? My guess, based on Philip’s data, is less than 10% of colleges and universities are offering something CSP-like.

      What makes an AP high-value? You and Steve are arguing that it’s high-value because it’s AP — because it makes admission applications more attractive, because students and schools value AP. Placement and credit aren’t the most critical factors. Do we know if that’s true for under-represented minority students and high schools that are minority-serving? That suggests that the reason why more African-American and Hispanic majority high schools aren’t offering AP CS A is because CS A is hard, boring, and tedious. Do we know that?

      Another reason that high schools and students value AP is because of placement and credit. The College Board agrees with you (see their list of reasons) — they believe that AP is most important for impressing admissions counselors, for trying out college-level material, and for getting experience with a major. However, credit and placement are reasons that they list for taking the AP, so let’s consider the issues of placement and credit for CSP.

      I suspect that CS departments will not give credit for a course that they don’t offer. If it’s a terminal course, as Steve points out, then placement doesn’t matter. Maybe I’m wrong here — do you or the College Board have evidence that CS departments will give credit for CSP (other than the letters that everyone signed)?

      I believe you that students will get quantitative reasoning credit for passing AP CSP at Duke and UNCG. Who typically makes those decisions at a university? The math department? Statistics? CS? Even if it’s not CS, I’m still wondering — will any of those departments give credit for a course that nobody offers on their campus? I really don’t know — if there are lots of courses that meet a quantitative reasoning credit, I could imagine a committee saying, “Sure, this looks like the rest. We’ll waive this requirement, or grant credit.” How common are quantitative reasoning requirements? I tried to do some searches in places like The Chronicle of Higher Education and various mathematics professional organizations, but couldn’t find anybody tracking that.

      The bigger question, though, is whether minority-serving high schools and their students will value an AP unless it offers placement or credit at the colleges and universities that those students are interested in. The fact that my survey of University System of Georgia computing departments worries me. Georgia has a large minority population. Will principals in Georgia offer AP CSP if it doesn’t offer credit or placement at USG schools? I really don’t know. Do you know if the College Board has any survey or other data on whether credit or placement is important to principals at minority-serving high schools?

      You and Steve may be right — “AP” is valuable all by itself, and that’ll sell high school principals and students on CS Principles. But if you’re wrong (or even if there’s a possibility that you’re wrong), then it might be worthwhile trying to convince more colleges and universities (a) to offer CS Principles, or (b) to have a quantitative reasoning requirement that CS Principles will count for.

      Reply
      • 35. Brian Harvey  |  August 4, 2014 at 11:58 am

        I’m not Owen, but let me take a crack at this, by telling the Berkeley story. Pre-CSP, we had a CS0 course. It was a good programming course (using my book Simply Scheme), but it was a programming course. As part of the CSP effort, we replaced it with the BJC course. This led to a huge increase in female students. (The number of URMs at Berkeley is too tiny for us to get meaningful statistics on how the course appeals to them. We’re working on it.)

        I think the hope is that other schools will get on the bandwagon. Very unlike the usual case, this time the College Board is leading instead of following the colleges. That’s why your statistics don’t show much CSP. So far it’s early adopters. Once the exam is running, over time, we hope more colleges will join in.

        Yes, the AP-ness of the course is a two-edged sword. It’s a tactic to get CSP into high schools without visiting each school board in the country individually. But it may well turn out to repel URMs. My own personal daydream is that once every high school in the country is teaching it (preferably in the form of BJC 🙂 ), the College Board waves its hands and relabels the exam as the CS SAT subject test. (Then they can write a new AP based on SICP. Or at least bring back the CS AB in a language that isn’t Java.)

        Reply
        • 36. astrachano  |  August 4, 2014 at 12:24 pm

          I am Owen (cf: Michael Douglas in The American President)

          There is lots of work to be done in gathering data about CSP courses in colleges in addition to the work being done, which hasn’t been reported, about CSP in high schools — and I hope we’ll see some data about this before 2016 for sure.

          Philip did a survey of a very select number of schools. I don’t want to comment in detail about his data, but they are not exhaustive. He didn’t get our CS0 classes at Duke (Compsci 92–CSP and 94), he didn’t get CS0 classes at Stanford (e.g., CS 105), he missed the CS Principles course at UT Austin (302), he missed the CSP course at UCSD (CSE 3). These may not all be CS Principles classes for credit/placement, and these may be the only schools that were missed. But we should not as a community extrapolate from these data what’s going on with students throughout the country.

          At some schools like UCSD and UT the CSP course is working with a dual enrollment option, rather than with AP credit. For students in Texas and California such an option may be far more compelling than an AP credit. But the courses at these schools are making progress if not in existence because of the CS Principles project. Measuring the success of this project is and will be tough to do, but I hope the success won’t be measured by how many schools are using Python. Dual Credit courses and the College Board don’t mix well, but success in reaching all students can’t rely on one single, best approach. I’ll reiterate that in high schools we need non AP courses, AP courses don’t reach every student because lots of students are not ready for such a course. It would be great to change the students who think of themselves as college ready, maybe that’s a side-effect? Which means — never mind, I was going to make a language joke about side-effects.

          Reply
    • 37. Bri Morrison  |  August 6, 2014 at 11:18 am

      Owen – you are correct that high school students take AP courses to improve their admission chances as selective schools. But what about students going to non-selective schools? At SPSU we currently have only one option for giving credit for APCSP – as free elective credit. Since we do not teach an equivalent course (we have no CS0), there is nothing in our catalog to match it to, so it becomes a free elective. Most of our technical majors have 0-3 credit hours of free electives in their curriculum. Thus, students have just “burned” their one and only chance at taking one of those fun courses (like beer and wine that Steve mentioned).
      If APCSP doesn’t give credit for a “real” course (say like biology, psychology, math) that furthers them toward their degree, then what’s the incentive for a student going to a non-selective state school to take the course. And I’ll remind you that most of the students going to a non-selective state school would fall into the category of the underrepresented groups that we’re trying to attract.
      Since SPSU will soon be merging with the much larger liberal arts school KSU (see https://web.kennesaw.edu/news/stories/ksu-spsu-merger-will-create-powerhouse) we’re trying to figure out how we can get an APCSP like course in the approved list of gen-ed courses to fulfill some requirement. (Side note – getting a gen ed course approved in the state of Georgia requires moving the mountain.) By having a “slot” that APCSP can fill will hopefully encourage more students to take the course in high school – even if they’re not planning on applying to the selective universities.

      Reply
  • 38. Philip Guo  |  August 5, 2014 at 10:47 am

    Hi everyone, Philip here … please email me personally with correction requests so that I can keep them organized in one place. And I’ll try to update the data table soon. Thanks!

    Reply

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 11.4K other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,096,381 hits
August 2014
M T W T F S S
 123
45678910
11121314151617
18192021222324
25262728293031

CS Teaching Tips