Slashdot Mirror


Murdoch's AP Computer Science MOOC Goes Live

theodp writes "Friday saw the launch of Rupert Murdoch's AP Computer Science MOOC. Taught by an AP CS high school teacher, the Java-centric course has students use the DrJava lightweight development environment for the exercises. 'If this MOOC works,' said Amplify CEO Joel Klein, 'we can think of ways to expand and support it.' Only the first week's videos are posted; course content is scheduled to be presented through March, with five weeks thereafter set aside for AP Exam prep. Might as well check it out, you may have helped pay for it — a MOOC-related Amplify job listing notes that 'This position may be funded, in whole or in part, through American Recovery & Reinvestment Act funds.'"

5 of 67 comments (clear)

  1. Lesson one: by Anonymous Coward · · Score: 5, Funny

    public class HelloWorld {

            public static void main(String[] args) {
                    System.out.println("Hello, World. Obama is a muslim.");
            }

    }

  2. Re:Was Java a good choice for the AP requirement? by Trepidity · · Score: 5, Interesting

    As best I can determine:

    It was Pascal for many years, which had once been widely used as an introductory language. But by the late-'90s Pascal was starting to be seen as an obsolete choice, and the exam was switched to C++ in 1999, with the justification being that C++ was widely used and more practlcal than Pascal.

    However this move was seen by many educators as producing significant teaching complexities, since the classes (partly exacerbated by what material the exam chose to test) ended up spending an inordinate amount of time on accidental complexity that obscured real issues for novice programmers, like how iostreams works. I took AP CS in 1999, and we spent weeks on iostreams, along with miscellaneous other C++-specific nonsense. Dissatisfaction was high enough that the exam fairly quickly abandoned C++, but wasn't willing to go back to Pascal, which was still seen as obsolete. So they moved to Java in 2003, with the justification that Java could exercise many of the same concepts as C++ (you could teach OO and whatnot), but with less up-front complexity for novices. And it's stuck there since.

  3. Re:Was Java a good choice for the AP requirement? by buddyglass · · Score: 4, Informative

    Every part of the method declaration you quoted is important for a student to understand. And not just the student who is learning java.

    1. "public". This speaks to the difference between public, private and package visible methods. That is to say, information hiding, which is a key concept in object oriented design.

    2. "static". This speaks to the difference between class and instance methods. Again, a key concept in object oriented design.

    3. "void". Return types. Or, in this case, the lack of one. You'll be hard pressed to learn how to program w/o learning about functions that return a value.

    4. "main". This speaks to the need for the operating system to know where to "start" your code when it's executed.

    In fact, I'd even go so far as to to say that java being verbose and requiring that these modifiers be explicitly specified is a positive in the context of it being used in a teaching context.

  4. Re:Was Java a good choice for the AP requirement? by luis_a_espinal · · Score: 4, Insightful

    I really find it a tedious stumbling block explaining to my kids all the ``public static void main'' stuff --- really wish that Oberon had made it instead. Niklaus Wirth at least has his manuals heading in the right direction (Pascal, hundreds of pages; Modula, a hundred or so, Oberon, dozens).

    As a professional who has done Java for application (enterprise/web/web service) and system/network protocol development for 12 years, I would say no. Java is not a good choice for a beginning or even intermediate level programming curriculum. As a very productive platform for developing robust systems, Java delivers.

    For pedagogical purposes, specially as a starting programming language, it is atrocious. I would have preferred Python or Ruby focusing first on procedural programming, leaving object and functional features for later (rarely does a student leverages OOP and FP cleanly without having a good grasp of procedural programming, data structures and algorithms.) Or *gasp* BASIC or a Pascal variant or even C (students need to know right of the bat what a segfault is.)

    I would typically choose Java for development of robust systems. I would never use it as a language in an into-to-programming course.

  5. Re:Was Java a good choice for the AP requirement? by luis_a_espinal · · Score: 5, Insightful

    Right, that's 4 concepts which have to be explicitly explained (or passed over) before we even get to how to put a single character on the screen, or add two numbers....

    Exactly this. It's accidental complexity that has nothing to do with the fundamental tasks of programming that are supposed to the focus of study.

    A BASIC/Python "print" or a Pascal "write/writeln" is supposed to be obsolete and clunky, but System.out.println enclosed within a mandatory class that is just not a class, but a public one, with not just a main function, but a static one, and with its name exactly case-matching the filename that declares it while making sure that no other "public" class exists in said filename, that is supposed to be pedagogical progress </rolls eyes>