Stories
Slash Boxes
Comments

News for nerds, stuff that matters

College Board AP CompSci Exam Will Be In Java

Posted by timothy on Mon Dec 18, 2000 09:12 PM
from the why-not-lisp? dept.
orangesquid writes: "Looks like the College Board has changed the tune for their AP Computer Science test: in a few years, it will be in Java. Eep!" From the announcement linked to in there: "In October 2000, the AP Computer Science Development Committee made a formal request to the College Board that the AP Computer Science curriculum be revised to include object orientation and to use Java as the delivery language for the AP Computer Science Examinations, beginning with the 2003-2004 academic year. The request was approved by the College Board in November 2000."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1) | 2 | 3 | 4 | 5
  • Programming taught in school? by heartstab (Score:1) Monday December 18 2000, @06:36PM
  • Re:From a C++ programmer... by QuoteMstr (Score:1) Monday December 18 2000, @06:37PM
  • by Overnight Delivery (239468) on Monday December 18 2000, @06:37PM (#549870)
    Agreed.

    Java is the language of the first 2 programming subjects of the CS degree I'm doing.
    - 1st one teaches basic programming (syntax etc) and introduces searching, sorting, writing GUI's.
    - 2nd one teaches more GUI'd, more searching and sorting, threads, hashtables, linked lists etc.

    How is Java a bad choice for learning any of this? What difference does it make?

    The next 2 programming subjects are C and C++ repectively, which focus more on data structures, code performance and other more advanced things that are usefull for building real applications.

    I think Java is a great language to teach high schoolers. Of the stuff that not's in Java but is in C++ what would be part of an introductory programming course?

    Java also has a bit of buzz word value and that is good (hear me out). I'm sure that a lot of kids will take the class because they've heard that Java programmers make easy $$$. Of thost kids I'm sure that some of them will gain a real love for programming and computer science. And that is a Good Thing (tm).

  • Re:Oh just wonderful... by gnudutch (Score:1) Monday December 18 2000, @06:46PM
  • Re:Lowering the standards once again. by minusthink (Score:1) Monday December 18 2000, @05:21PM
  • Re:Why? by pianoman113 (Score:1) Monday December 18 2000, @06:56PM
  • Re:Every response is going to be just about speed. by ocie (Score:2) Monday December 18 2000, @05:22PM
  • Re: good CS teacher by Teach (Score:1) Monday December 18 2000, @07:01PM
  • Let's hope they get it right.... by LauraLolly (Score:2) Monday December 18 2000, @05:22PM
  • Re:From a C++ programmer... by Anonymous Coward (Score:1) Monday December 18 2000, @07:02PM
  • Re:Lowering the standards once again. by stuyman (Score:2) Monday December 18 2000, @05:25PM
  • Re:Why not SmallTalk? by LocalYokel (Score:1) Monday December 18 2000, @05:26PM
  • At least it's run on a PC. by 1nt3lx (Score:1) Monday December 18 2000, @05:27PM
  • You know by Srin Tuar (Score:1) Monday December 18 2000, @05:27PM
  • Re:Why not SmallTalk? by Lx (Score:1) Monday December 18 2000, @05:27PM
  • Re:Uh uh. by omega1 (Score:1) Monday December 18 2000, @07:07PM
  • Probably a good move by Animats (Score:2) Monday December 18 2000, @07:07PM
  • Re:Good. by woggo (Score:1) Monday December 18 2000, @07:08PM
  • Re:Why confined to a language? by Zagadka (Score:2) Monday December 18 2000, @05:29PM
  • Re:Good. by MadAhab (Score:1) Monday December 18 2000, @07:09PM
  • All I learned in HS was how to fill in circles. by minusthink (Score:1) Monday December 18 2000, @05:30PM
  • Re:From a C++ programmer... by ftobin (Score:1) Monday December 18 2000, @07:09PM
  • Re:Didn't it already test OO? by amccall (Score:2) Monday December 18 2000, @05:30PM
  • Hmmmm... by Maddog_Delphi97 (Score:1) Monday December 18 2000, @04:14PM
  • Re:Security? by Vladinator (Score:1) Monday December 18 2000, @05:30PM
  • by the_one_smiley (169638) on Monday December 18 2000, @07:14PM (#549893)

    I'm wondering how many people here are in or recently graduated from high school and thus know just how Advanced the AP courses in general are. Take a look at the information on Exam Scores [collegeboard.com] at the Collegeboard website. According to them, a score of 5 (the highest score) indicates that the student is Extremely well qualified in the subject.

    Now, guess how well students have to do to earn a coveted 5? The cutoff varies between subjects and changes from year to year, but it is quite common for the cutoff to be around 65%. From the Collegeboard site:

    You may be very surprised to see that your composite score can be two-thirds of the total possible score and you could still earn a grade of 5! Earning that score on other exams might translate to an "F" at worst and a "D" at best.


    The cutoff for Computer Science AB is always one of the lowest. I don't have citations for these numbers, but the year I took the test (1998, my sophomore year) the cutoff was about 55%. So any student that can show he/she has mastered just more than half of the material is considered Extremely Well Qualified. The funny thing is only about 10% of the people who took it got a 5 (indeed, that is how they determine the cutoff - something like "top 10%").

    So now they want to teach it in Java. I hope this causes Apple or someone else to develop some resemblance of a decent Java VM for the Macintosh because so many schools use Macs exclusively. Right now the Netscape and the Metrowerks VMs are abysmal...

    I met a person in college who said his high school's AP Computer Science course consisted of nothing but playing Need for Speed III the whole semester. He took the AP test and got a 1, but got an A for the course, which boosted his GPA enough to make him valedictorian of his class...

    -Albert Mao

  • I think... by Philly Dawg (Score:2) Monday December 18 2000, @04:14PM
  • Re:Why not SmallTalk? by FigWig (Score:1) Monday December 18 2000, @07:15PM
  • Re:Why confined to a language? by joto (Score:1) Monday December 18 2000, @05:32PM
  • Re:Why not SmallTalk? by neutron42 (Score:1) Monday December 18 2000, @05:33PM
  • Re:Functional, SML, pointers, open minds. by sesquiped (Score:1) Monday December 18 2000, @07:20PM
  • TIME? by slashdoter (Score:1) Monday December 18 2000, @04:16PM
  • OO by Anonymous Coward (Score:1) Monday December 18 2000, @05:36PM
  • I think we reached a conclusion.... by jsse (Score:1) Monday December 18 2000, @05:37PM
  • Re:Why confined to a language? by Anonymous Coward (Score:1) Monday December 18 2000, @05:37PM
  • Every response is going to be just about speed. by Wizy (Score:2) Monday December 18 2000, @04:18PM
  • Crap. by jcr (Score:1) Monday December 18 2000, @11:13PM
  • Not hardly. by jcr (Score:1) Monday December 18 2000, @11:16PM
  • Re:Java isn't platform independent, it's a platfor by invalid email (Score:1) Monday December 18 2000, @11:25PM
  • Read the spec! (Score:5)

    by tmoertel (38456) on Monday December 18 2000, @07:24PM (#549907) Homepage Journal

    The Java2 spec clearly states:

    A conforming Virtual Machine implementation shall support automatic garbage collection. The garbage-collection method is unspecified and left as a design decision for the implementor to consider based on the desired runtime characteristics of the Virtual Machine. However, it is required that any conforming implementation's garbage collection satisfy the required characteristics defined in Section 6.5.2, namely that it be godawful.

    Wow. Go figure...;->

  • Re:Lowering the standards once again. by rassilon42 (Score:1) Monday December 18 2000, @07:26PM
  • Agreed by _anomaly_ (Score:1) Monday December 18 2000, @07:26PM
  • We hate Java because it's crap. by jcr (Score:1) Monday December 18 2000, @11:37PM
  • Re:Why confined to a language? by ChrisBennett (Score:1) Monday December 18 2000, @05:39PM
  • Re:JAVA? C# by pain in the ass (Score:1) Monday December 18 2000, @11:46PM
  • Comp Sci / Soft Eng schism by bperkins (Score:1) Monday December 18 2000, @07:30PM
  • Re:Good. by aardvarkjoe (Score:1) Monday December 18 2000, @05:41PM
  • Re:It looks like they're finally listening by Jordy (Score:2) Monday December 18 2000, @11:49PM
  • Re:It looks like they're finally listening by alienmole (Score:2) Monday December 18 2000, @07:31PM
  • Re:Doesn't matter by c_g12 (Score:1) Monday December 18 2000, @05:43PM
  • Re:I sympathize by Bruce Perens (Score:2) Tuesday December 19 2000, @12:08AM
  • Re:Why confined to a language? by RainbowSix (Score:1) Monday December 18 2000, @05:43PM
  • Re:Money must have changed hands by rusti999 (Score:1) Monday December 18 2000, @07:38PM
  • Re:Good. by Disco Stu (Score:1) Monday December 18 2000, @05:44PM
  • on the lousiness of lisp by alienmole (Score:2) Monday December 18 2000, @07:42PM
  • Re:This is good and bad by joto (Score:1) Monday December 18 2000, @05:45PM
  • Easy: use an environment designed for teaching. by joto (Score:1) Monday December 18 2000, @05:48PM
  • So? by Nohbdy001 (Score:1) Monday December 18 2000, @05:49PM
  • I sympathize by Srin Tuar (Score:2) Monday December 18 2000, @05:50PM
  • These aren't the droids you're looking for... by AcidDan (Score:1) Tuesday December 19 2000, @12:26AM
  • Re:Good. by Jagasian (Score:1) Tuesday December 19 2000, @12:27AM
  • Re:Good. by Jagasian (Score:1) Tuesday December 19 2000, @12:32AM
  • Re:Why not SmallTalk? by gargle (Score:2) Tuesday December 19 2000, @12:48AM
  • Denmark by matek (Score:1) Tuesday December 19 2000, @12:50AM
  • Recursion by Tom7 (Score:1) Monday December 18 2000, @07:52PM
  • Re:Why not SmallTalk? by woggo (Score:1) Monday December 18 2000, @07:52PM
  • Don't Forget the Readers!!! by CMU_Nort (Score:2) Tuesday December 19 2000, @12:54AM
  • Re:Good. by DougMackensie (Score:1) Monday December 18 2000, @07:52PM
  • Re:Why confined to a language? by Your Login Here (Score:1) Monday December 18 2000, @05:50PM
  • Re:It already is object oriented!!! by alienmole (Score:2) Monday December 18 2000, @07:53PM
  • Re:This is good and bad by amccall (Score:1) Monday December 18 2000, @05:51PM
  • Beats the old quazi c++ and pascal by bobu (Score:1) Monday December 18 2000, @07:57PM
  • What's wrong with C++'s OO by dingbat_hp (Score:1) Tuesday December 19 2000, @12:55AM
  • Re:Java: Great for concepts, but hurts overall by Saint Nobody (Score:1) Monday December 18 2000, @05:52PM
  • Re:It looks like they're finally listening by Kevin S. Van Horn (Score:1) Monday December 18 2000, @07:57PM
  • Re:damn by Beowulf_Boy (Score:1) Tuesday December 19 2000, @12:56AM
  • Re:From a C++ programmer... by eldamitri (Score:1) Monday December 18 2000, @08:07PM
  • Re:Why confined to a language? by md17 (Score:1) Monday December 18 2000, @05:54PM
  • 500,000? by micromoog (Score:1) Monday December 18 2000, @05:55PM
  • Re:Good. by darthcornfed (Score:1) Monday December 18 2000, @08:10PM
  • Lets be Honest by harvord (Score:1) Monday December 18 2000, @05:55PM
  • Re:Recursion by wwwojtek (Score:1) Monday December 18 2000, @08:15PM
  • spending money by Srin Tuar (Score:1) Monday December 18 2000, @05:57PM
  • Re:Learning programming and Java by jsse (Score:1) Monday December 18 2000, @05:57PM
  • Painfully mediocre post by KIngo (Score:1) Tuesday December 19 2000, @01:12AM
  • Re:Learning programming and Java by iapetus (Score:2) Tuesday December 19 2000, @01:33AM
  • Exception handling by iapetus (Score:2) Tuesday December 19 2000, @01:44AM
  • Re:Java: Great for concepts, but hurts overall by iapetus (Score:2) Tuesday December 19 2000, @01:48AM
  • Re:Why not SmallTalk? by Blue Neon Head (Score:1) Monday December 18 2000, @08:16PM
  • Re:Why confined to a language? by Mihg (Score:1) Tuesday December 19 2000, @01:52AM
  • Re:Hmm.... by Daemosthenes (Score:2) Monday December 18 2000, @08:21PM
  • AP Doesn't test OOP/The ideal learning language by TheRubberPaw (Score:1) Tuesday December 19 2000, @02:18AM
  • They Shouldn't Require a Proprietary Language by goingware (Score:2) Monday December 18 2000, @08:21PM
  • Re:NOOOOO! by joto (Score:1) Monday December 18 2000, @06:02PM
  • Re:Why confined to a language? by spencerogden (Score:1) Monday December 18 2000, @08:22PM
  • Re:Why change apcs to java??? by tigmoid (Score:1) Monday December 18 2000, @06:02PM
  • Slashdotters should get back to the basics by shadowspires (Score:1) Tuesday December 19 2000, @02:41AM
  • Re:Why does everyone on Slashdot hate Java so much by Chagrin (Score:1) Monday December 18 2000, @06:05PM
  • Re:Hmm.... by Daemosthenes (Score:2) Monday December 18 2000, @08:27PM
  • Re:Good. by woggo (Score:2) Monday December 18 2000, @08:29PM
  • Eiffel, gods save us by Srin Tuar (Score:1) Monday December 18 2000, @06:06PM
  • What's the big deal? by Johnzilla (Score:1) Monday December 18 2000, @08:36PM
  • Re:Hmm.... by levik (Score:2) Monday December 18 2000, @06:08PM
  • by flemflam (156743) on Monday December 18 2000, @08:37PM (#549971) Journal
    One of the biggest problems with the change to Java is the high school teachers' attitudes about it. I heard that this change was likely to happen back in July at an AP sponsored workshop.

    Since the school year started there has been a lot of griping and bitching on the APCS listserv about how wrong it is to change. Many of the complaints from the teachers were things like:

    1. I just learned C++ -- now I gotta go learn Java?
    2. AP can't do this unless they wanna a pay for the new software and texts (like Java costs so much more than C++)
    3. By the time we get all the Java syllabus and course materials together and proofed, some other language will be the horizon. (True.)
    4. Who cares -- I can retire before then.
    Very few teachers objected to Java based on the types philosophical issues being discussed on /.; but nearly all of the Java supporters had good basis for their points.

    Don't get me wrong -- I am a high school APCS teacher who teaches 4 or 5 other preps depending on the semester. I can respect that teachers will have to spend some (uncompensated) time and effort. I also acknowledge that compared to many others in CS jobs, most teachers get paid far less. Many teachers are forced to spend so much time with paperwork, meetings, and committees that finding time to keep up with changes is hard.

    Personally, I don't think that Java is any worse than C++ for the purpose of learning basic concepts and algorithms, but I don't necessarily think it is significantly better either. My biggest problem with the switch is that the unfortunate students who take APCS in 2003-2004 may be dealing with a lot of annoyed, disgruntled or inexperienced teachers. In the short term it will make it even harder for schools to find qualified people to teach AP.

    Of the teachers who thought the change was a good idea, many of them already knew some Java. They may be right, but I wish that as a group teachers would spend more time discussing how to deal with the change, not just how it will affect them personally.

    I guess I'm agreeing with posts that wonder why we have to specify a language at all. The only good answer I can come up with for that is: arbitrarily picking a language makes the test easier to write and easier to grade. And the APCS being a for-profit part of the ETS, I'm sure that cost efficiency is a factor in the decision.

    Before anyone replies that ETS just does what the teachers on the commitee recommend, try convincing ETS to allow the students to pick which language at the time of the test. Hmm... I could teach kids Commodore Basic or 6502 assembler. Let those test readers try to decipher 10 X=PEEK 59468:POKE 59468,(X XOR 2)

    As far as teaching engineering/problem solving instead of coding, I know that kids will groan out loud if I tell them they will be learning about concepts and algorithms, without much application to real programs.

    How about a list of three languages that local teachers and students can choose from?

    Like so much in education -- I guess teachers and students will just have to do the best they can with mandates imposed upon them.

  • Re:who cares? (Score:3)

    by Smitty825 (114634) on Monday December 18 2000, @06:08PM (#549972) Homepage Journal
    Who wants to learn about the fundamentals of programming in an AP class? That stands for advanced placement.

    That's one of the funniest things between high-school and college. In high-school, AP is Advanced Placement, but in college it's Academic Probation! "Hey, Mom, I'm an AP student" usually still works, though =-)
  • Great! by ffatTony (Score:1) Monday December 18 2000, @06:14PM
  • Re:Lowering the standards once again. by dgr116 (Score:1) Tuesday December 19 2000, @08:07AM
  • Re:Why does everyone on Slashdot hate Java so much by iapetus (Score:2) Tuesday December 19 2000, @02:44AM
  • Re:Lowering the standards once again. by Hunk of Cheese (Score:1) Tuesday December 19 2000, @08:09AM
  • YOU'RE ALL MISSING THE POINT! by rootmon (Score:1) Tuesday December 19 2000, @08:10AM
  • Re:Why not SmallTalk? by mrfrostee (Score:1) Tuesday December 19 2000, @03:02AM
  • Re:who cares? by wrinkledshirt (Score:1) Monday December 18 2000, @04:18PM
  • There is no one true language . . . by TerraAlien (Score:1) Tuesday December 19 2000, @03:11AM
  • damn by mobydill (Score:1) Monday December 18 2000, @04:18PM
  • Re:Good. (Score:3)

    by srichman (231122) on Monday December 18 2000, @08:40PM (#549982)
    The goal of computer science education is not to churn out C++ coders

    Nor is the goal of AP Computer Science to turn out C++ coders. I'd imagine you'd find the College Board's goals for AP CS students are not far off from your own ideals. If you took the actual test, you'd see that it's very little about "What do you use endl for?" and very much about "What are the properties and structure of a binary tree?"

    That is why the language for the AP class ought to be absolutely as simple as possible to convey the concepts.

    Then what language do you propose? I agree that Java is a simpler, cleaner language than C++; I'd imagine most people would concur. There are lots of other good object-oriented programming languages in the world; some people posted to this story requesting Smalltalk, others might want Ada 95, others might want Steven's Toy Language. These, of course, are not good choices, not as much because they are of little practical value to the student, but because they are foreign to the instructors. But, despite what you might think, I would consider practical value to the students to be a worthwhile consideration: Smalltalk is a clean, simple, pure-OO language, and superior to C++ in most every way, but if you take a student who has learned to program in nothing but Smalltalk and a student who has learned to program in nothing but C++ and put them both in front of a Java compiler with the job of writing your LZW compression project, who do you think would fare better?

    The fact of the matter is, computer programming has for a very long time been focused squarely on imperative programming languages, and is these days very focused on object oriented programming. These seem to me, then, to be reasonable topics for a high school-level CS class to endeavor to impart knowledge about. At the time the College Board made the switch from Pascal, C++ was the natural choice to satisfy the pedagogical demands. Java had no doubt not proven itself to the glacial folks in the standardized testing world.

    You might argue that imperative programming is not a good medium for teaching the concepts of computer science. I wouldn't disagree. I spent a year studying at the University of Edinburgh, where the CS students all start out learning ML. The students bitched and bitched and decried ML left and right -- even more so after they learned an imperative language -- but I though it was pretty cool that they hadn't been thrown into the murk of pointer arithmetic and endianness like I had.

    Finally, some people have posted suggesting that the all-powerful language-neutral exemplar, pseudocode, should be used, as language isn't important. This is ridiculous. The AP CS test has to test knowledge of things like pass by reference vs pass by value, self-referential data types, etc. To do so you need constructs in your programming language to support this (e.g., pointers/references). In a multiple choice question on a pseudocode code sample, how is the College Board going to express whether an rvalue is having its value taken or a reference to it? You obviously have to have notes or syntax to express these things, and the kids taking the test have to digest it. I'd much rather spend a little bit of time learning the basics of a "real" language rather than have to guess at the intentions of the author of some fucked up pseudocode...

    C++ is the medium, not the message.

    Marshall McLuhan would argue that the medium strongly controls the discourse available to the entities conversing in a given programming language. I would agree; a C++ programmer will think very differently from a Prolog programmer. Ultimately, though, C++ was a good, practical choice of CS worlds for the high school-aged computer scientist to dip his feet into. (And Java, of course, is better.)

  • Experiance by Algonquin (Score:1) Tuesday December 19 2000, @03:12AM
  • Mr. Wainwright is gonna freak... by ca1v1n (Score:2) Monday December 18 2000, @08:42PM
  • Re:Good. by Hieronymus Powered (Score:1) Tuesday December 19 2000, @03:13AM
  • Re:What's wrong with C++'s OO by Fjord (Score:2) Tuesday December 19 2000, @08:19AM
  • Re:It looks like they're finally listening by molog (Score:2) Monday December 18 2000, @06:15PM
  • Oh just wonderful... by 11thangel (Score:1) Monday December 18 2000, @04:20PM
  • Re:Didn't it already test OO? by Zppr (Score:1) Monday December 18 2000, @08:45PM
  • Re:who cares? by UVABlows (Score:1) Monday December 18 2000, @04:21PM
  • Re:Why does everyone on Slashdot hate Java so much by Wolfier (Score:2) Monday December 18 2000, @08:48PM
  • Re:Money must have changed hands by joto (Score:2) Monday December 18 2000, @06:18PM
  • Java? by Mostly Harmless (Score:1) Tuesday December 19 2000, @03:28AM
  • Re:Why does everyone on Slashdot hate Java so much by codepunk (Score:1) Monday December 18 2000, @06:19PM
  • Why? by stype (Score:2) Monday December 18 2000, @04:21PM
  • Re:Java now taught at UCSC by Serveert (Score:1) Monday December 18 2000, @08:53PM
  • Be lucky by mcwop (Score:1) Tuesday December 19 2000, @03:45AM
  • by Kastagir (33415) on Monday December 18 2000, @04:21PM (#549998)
    Why does a compuer science test have to be confined to a language? Regardless of the arguments that the language could die, or changes too fast, it seems a little restrictive. I've taken many pseudo code and theoretical tests which in my opinion are much better for testing understanding of the material such as procedural vs object oriented, algorithms and complexity, data structures, etc. They could have chosen Perl, Python, [insert your favorite language here] and my answer would be the same. Test theory, at least at the AP level.
  • Re:Lowering the standards once again. by minusthink (Score:1) Monday December 18 2000, @08:54PM
  • Re:Hmm.... by 3.1415926535 (Score:1) Monday December 18 2000, @06:20PM
  • My experience by ywwg (Score:2) Monday December 18 2000, @06:21PM
  • Doesn't matter (Score:3)

    by iElucidate (67873) on Monday December 18 2000, @04:22PM (#550002) Homepage
    Whatever they choose uses their own AP classes/libraries/headers anyway, so most programming languages will be similar when doing AP tests. I know when I did it last year we had to learn only the very basic C++ for console, using headers like apstring.h to do our work. They keep it simple. It's not about the programming language on those tests, it mostly about the concepts.

    Oh yeah, and stupid recursion exercises just to see if we're paying attention.

    And lots of stupid recursion.

    And recursion.

    And some more recursion.

  • Shafted students by Dyolf Knip (Score:1) Monday December 18 2000, @08:54PM
  • Re:Why confined to a language? by rent (Score:1) Monday December 18 2000, @08:58PM
  • Re:Why confined to a language? by msodfjsalfhlskdhf (Score:1) Monday December 18 2000, @06:22PM
  • Re:It looks like they're finally listening by TOTKChief (Score:2) Monday December 18 2000, @06:24PM
  • Re:It looks like they're finally listening by 3.1415926535 (Score:1) Monday December 18 2000, @06:24PM
  • Re:Why does everyone on Slashdot hate Java so much by Fjord (Score:2) Tuesday December 19 2000, @08:41AM
  • Re:It's already like this in Quebec by cob2k25 (Score:1) Tuesday December 19 2000, @08:41AM
  • Re:Why confined to a language? by mr breakfast (Score:1) Tuesday December 19 2000, @03:49AM
  • Language changes frequently by drenehtsral (Score:2) Tuesday December 19 2000, @04:07AM
  • As a current AP CS student... by lobotomy42 (Score:1) Tuesday December 19 2000, @09:01AM
  • Re:It looks like they're finally listening by rebelcool (Score:1) Tuesday December 19 2000, @09:08AM
  • Re:Why not SmallTalk? by woggo (Score:2) Tuesday December 19 2000, @04:08AM
  • Re:Why confined to a language? by Johnny Starrock (Score:1) Monday December 18 2000, @04:24PM
  • Re:Good. by Serveert (Score:1) Monday December 18 2000, @09:00PM
  • Good by Hard_Code (Score:2) Tuesday December 19 2000, @04:17AM
  • Re:Why not SmallTalk? by mrfrostee (Score:1) Tuesday December 19 2000, @11:33AM
  • Didn't it already test OO? by srichman (Score:1) Monday December 18 2000, @04:24PM
  • Irony? by minusthink (Score:1) Monday December 18 2000, @09:03PM
  • Need more variety ... by vreeker (Score:1) Monday December 18 2000, @04:24PM
  • Biggest Thing Being Ignored by Renstar (Score:1) Tuesday December 19 2000, @04:28AM
  • by goingware (85213) on Monday December 18 2000, @09:14PM (#550023) Homepage
    I am dismayed my the comments here that report that AP Computer Science does not teach much about classes or object-oriented programming. I think it is crucial to teach OOP. Consider this for a second:

    Compare how frequently you have to design and implement classes in your own work to the frequency with which you need to design and implement algorithms. These days, all the algorithms and data structures that would be taught in an AP class are provided by libraries that you just use. I know the vast majority of code anyone writes just sort of does stuff, it can hardly be called an algorithm. But making good choices about program structure (and these days this means class structure) is crucial to having any hope of ever getting a program to work, let alone run efficiently.

    A while back the San Jose State University Professional Development Center [sjsu.edu] asked me to teach some programming classes.

    I proposed to teach two classes, one on the fundamentals of object-oriented programming, and the other an OOP project - writing a program of some significant size (considering the experience level of the students).

    My descriptions of the two classes are given here [goingware.com]. The links to the original course descriptions in that page seem to be dead now.

    I felt that these two courses addressed two signicant flaws in most introductory programming education - one was an inordinate focus on the particulars of a language without concentrating on how to program well, and the other was that the exercises done in a course rarely took more than a week to do, and even if there was a term project, it usually was mixed in with other work, and so it wouldn't be of significant size.

    This means that exercises in most introductory courses typically gloss over important issues that crop up in real software development, like robust error handling and dealing with the architecture of your program on a large scale.

    These courses weren't meant to be that long so I really couldn't get that far into it but the point was that I would be neither teaching the language nor computer science (algorithms, data structures, etc.). Instead, I would be teaching what I could probably get flamed at for calling The Art of Software Engineering.

    In the first course, I would concentrate on how to make good choices for what classes to use in your program and how they should relate to each other (when to use inheritance vs. composition, for example), basically how to acquire a good sense of aesthetics for the best way to divide your problem into maanageable parts. There are an infinitude of ways you can write a program, but a far lesser number of good ways to write a program, and this is not commonly taught.

    I would use Java in the class, but cover the bare minimum of the language required to cover the conceptual material. Someone else was planning on teaching a course on Java itself.

    I also felt that the project course would be of significant value in helping the students find real programming jobs. While they may have to expand on the projects after leaving the class, I knew that (at the time anyway), noone would hire a novice programmer until he'd shipped a product (oh how times have changed) - free software and shareware does count as a real product, but the important thing is that you have to have completed a program of some significant size.

    Ironically, the courses were canceled after only two students signed up for them by the enrollment deadline.

    Our general theory was that the students didn't percieve this classes as having an immediate payoff in a marketable job skill (SJSU Prof Dev was in good part a fundraising component of the regular University so the classes were frequently targeted towards marketable skills) - when really I felt it would do you more good than a class concentrating on Java or any particular language - it's not hard to pick up a language out of a book but what I meant to teach really would need personal interaction and discussion with an instructor and one's classmates.

    I'd still like to teach the classes. I am doing just that in one form by writing GoingWare's Bag of Programming Tips [goingware.com].


    Michael D. Crawford
    GoingWare Inc

  • by Alien54 (180860) on Monday December 18 2000, @04:25PM (#550024) Journal
    The page with the full specs is here [duke.edu].

    to help clarify:

    In this section, we discuss the Java subset that students will be expected to master to take the AP CS exam. We also mention a number of features that are potentially relevant in a CS1/2 course but that the AP CS exam does not cover.

    . . .

    Keep in mind that this subset is intended for the AP CS exam. The purpose of the subset is to enable the designers of the AP CS exam to formulate questions relating to the AP CS syllabus. The AP CS subset is not intended as a prescription for a computer science course. We expect courses to cover language features that go well beyond this subset. For example, many instructors will choose to cover applets, graphics or user interfaces. However, none of these topics are tested on the AP CS exam.

    To help students with test preparation, the AP CS subset is purposefully kept small.

    We omitted language constructs and library features that did not add significant functionality and that can, for the formulation of exam questions, easily be expressed by other mechanisms in the subset.

    For example, inner classes or the StringBuffer class are not essential for the formulation of exam questions -- the exam uses mundane alternatives that can be easily understood by students. Of course, these constructs add significant value for programming.

    Omission of a feature from the AP CS subset does not imply any judgment that the feature is inferior or not worthwhile.

    etc.

    worth looking at just to see what they'll be looking for

  • Regular Expressions by harlan (Score:1) Tuesday December 19 2000, @02:21PM
  • prefer vectors to C-style arrays by GCP (Score:1) Monday December 18 2000, @09:18PM
  • The direction of CSc is pititful... by bmacy (Score:1) Tuesday December 19 2000, @04:32AM
  • Java In Universities by digid (Score:1) Monday December 18 2000, @09:22PM
  • Java by Spit_Fire1 (Score:1) Monday December 18 2000, @04:26PM
  • the reasons why they're not using pseudocode by sethg (Score:2) Tuesday December 19 2000, @04:34AM
  • Good. (Score:3)

    by woggo (11781) on Monday December 18 2000, @04:26PM (#550031) Journal
    One of the nice things about Java is that it's not too difficult to write code that works, even though writing good code still requires some skill and consideration. Contrast this to C++, a language with cancer of the semi-colon, in which writing code that works at all can sometimes be impossible.

    High school students shouldn't have C++ imposed upon them, because then the medium will interfere with the message. How easy is it to contrast a bad algorithm with a good one when you can't even get the bad one to compile? How do you have time to learn what a hashtable or a Hamilton sequence is when you spend half the semester learning the difference between "const char *" and "char * const"?

    I don't hate C++ -- it's not the best designed language, but there are many useful subsets of C++, and combined with engineering discipline, any can produce a successful project. However, it is not a first language. It is not a teaching language, especially in cases (like AP CS was for my little sister) where "C++" basically means "C with cout". A teaching language should be one that a bright student can learn the syntax of in three days, so she can spend the rest of the year learning idioms and concepts that are applicable to CS in general.


    ~wog

  • Re:Lowering the standards once again. by tstorm (Score:1) Monday December 18 2000, @09:27PM
  • by goingware (85213) on Monday December 18 2000, @09:30PM (#550033) Homepage
    -platform independence

    Java isn't platform independent, it is a platform unto itself, and a proprietary one at that. Just try making use of OS-specific features from a Java program, or doing platform-appropriate things that weren't envisioned by the original designers of the Java platform.

    For example, the javax.comm package for serial communications has an API for enumerating the names of the serial ports. On Windows, you get "COM1" and "COM2:" and you can present these in a UI like a popup menu for the user to select a port to use. On Unix, you get something like "/dev/ttya" and so on.

    But on Macintosh, you get the words "printer" and "modem". There is no API for getting the icons for the printer and modem ports, because Java was designed by a bunch of textual unixheads from Sun.

    If you want to see true platform independence, check out the ZooLib [sourceforge.net] cross-platform application framework. ZooLib allows you to write a single set of C++ sources and compile them to native executables on Mac OS, Windows, BeOS and Posix flavors with XWindows such as Linux.

    The platform-specific layer is small and well-architected so it's not a lot of work to bind it to a new platform like, say, QNX.

    And you can do that, and sell the results as you like, because ZooLib is provided under the MIT License [sourceforge.net] so you can use it for both open source and closed source projects. Put that in your "Sun Community License" and smoke it.

    Please read about Why ZooLib is Good for the Community [sourceforge.net].


    Michael D. Crawford
    GoingWare Inc

  • java is a platform by joss (Score:2) Monday December 18 2000, @09:35PM
  • Re:Why confined to a language? by msodfjsalfhlskdhf (Score:1) Tuesday December 19 2000, @03:43PM
  • Re:Why confined to a language? by alexhmit01 (Score:2) Tuesday December 19 2000, @03:57PM
  • Re:Why not SmallTalk? by Erasmus Darwin (Score:2) Tuesday December 19 2000, @04:43AM
  • Re:right on! by Preposterous Coward (Score:1) Tuesday December 19 2000, @07:04PM
  • Re:Mr. Wainwright is gonna freak... by chivo (Score:1) Tuesday December 19 2000, @04:45AM
  • Re:Every response is going to be just about speed. by ewichern (Score:1) Tuesday December 19 2000, @07:08PM
  • Re:Why does everyone on Slashdot hate Java so much by Wolfier (Score:1) Tuesday December 19 2000, @10:02PM
  • Re:Back when I was an AP Comp Sci kid... by djocyko (Score:1) Tuesday December 19 2000, @04:51AM
  • Main Reason They Switched by west (Score:1) Monday December 18 2000, @09:36PM
  • Re:I disagree by iapetus (Score:2) Tuesday December 19 2000, @10:31PM
  • Who will be found to teach it? by Madrox (Score:1) Wednesday December 20 2000, @12:38AM
  • Re:Oh just wonderful... by srichman (Score:1) Monday December 18 2000, @04:28PM
  • Re:Didn't it already test OO? by dulles (Score:1) Monday December 18 2000, @09:39PM
  • Re:Good. by woggo (Score:2) Tuesday December 19 2000, @05:00AM
  • Re:right on! by HoldenCaulfield (Score:1) Wednesday December 20 2000, @04:36AM
  • Why Microsoft .NET is a Threat to Free Software by goingware (Score:1) Monday December 18 2000, @09:42PM
  • So, what's the big deal? by Goose42 (Score:1) Wednesday December 20 2000, @05:00AM
  • That's Bullshit! by macdaddy (Score:1) Tuesday December 19 2000, @05:04AM
  • generally by gimpboy (Score:1) Monday December 18 2000, @04:28PM
  • Re:Painfully mediocre post by bellings (Score:1) Tuesday December 19 2000, @05:11AM
  • This is good and bad by garoush (Score:1) Monday December 18 2000, @04:28PM
  • Re:damn by m3000 (Score:1) Monday December 18 2000, @04:30PM
  • Re:damn by c_g12 (Score:1) Monday December 18 2000, @04:31PM
  • Re:Why? by Doctor Memory (Score:1) Tuesday December 19 2000, @05:24AM
  • Re:Doesn't matter by Aelcyx (Score:1) Monday December 18 2000, @04:31PM
  • Hey... they said the language for _delivery_ by EnVisiCrypt (Score:1) Monday December 18 2000, @04:31PM
  • What Stroustrup Says About C++ Education by goingware (Score:2) Monday December 18 2000, @10:07PM
  • The actual exam. by josecuervo (Score:1) Monday December 18 2000, @10:17PM
  • Re:Every response is going to be just about speed. by ocie (Score:1) Wednesday December 20 2000, @09:44AM
  • yeah by Srin Tuar (Score:1) Wednesday December 20 2000, @10:05AM
  • Re:Every response is going to be just about speed. by elflord (Score:1) Wednesday December 20 2000, @10:22AM
  • Re:Why not SmallTalk? by Malc (Score:2) Tuesday December 19 2000, @05:34AM
  • Real CS Teachers can teach PASCAL in any language by sethg (Score:2) Tuesday December 19 2000, @05:36AM
  • Re:Lowering the standards once again. by electricmonk (Score:2) Wednesday December 20 2000, @10:48AM
  • Re:Every response is going to be just about speed. by ocie (Score:1) Wednesday December 20 2000, @10:57AM
  • Re:damn by danheskett (Score:2) Tuesday December 19 2000, @05:46AM
  • Uh uh. by vectus (Score:1) Monday December 18 2000, @04:32PM
  • C# by robertchin (Score:2) Monday December 18 2000, @10:20PM
  • Re:as a student learning java. . . by _xeno_ (Score:1) Tuesday December 19 2000, @05:54AM
  • Hmm.... (Score:3)

    by Daemosthenes (199490) on Monday December 18 2000, @04:32PM (#550074)
    Having recently taken the test (last year), I really think that it really doesn't matter what language the tests are administered in.

    The test evaluates one's fundamental knowledge on algorithms, data structures, classes, structures, and other processes. Syntax and structure are important, but still secondary. Having not worked with Java too much, I cannot make any proclamations, but I'd say about 90% of what I learned is easily transferrable across all the languages.

    Perhaps Java is not a bad thing, although it's gonna be hell for my school, which has something like 250 computers using MS Visual C++.


    47.5% Slashdot Pure(52.5% Corrupt)
  • Back when I was an AP Comp Sci kid... by KFury (Score:2) Monday December 18 2000, @10:23PM
  • Re:Good. by woggo (Score:2) Wednesday December 20 2000, @03:52PM
  • Why not SmallTalk? (Score:5)

    by TagrenHawk (19856) on Monday December 18 2000, @04:32PM (#550077) Homepage
    Yes, Java is much easier to learn than C++. (Although, I have heard some purists argue the point.) Yes, Java does teach basic "object orientedness," but if the aim of the Board is to teach true object oriented programming they ought to teach/endorse SmallTalk where EVERYTHING is either an object or a message between objects. Granted, we want our high-schoolers to stay sane, however, there is something to be said for teaching the right way the first time.

    Sometimes I worry that our high-schoolers are being taught tools instead of concepts. I know that univerities go much more in depth than any high school can. At the same time, I sure wish that I had had a stronger theoretical background in computer science from my high school that only taught Word Processing and Basic.

  • And just look at the curriculum... by JediCeleste (Score:1) Monday December 18 2000, @10:23PM
  • Re:Why not SmallTalk? by Fjord (Score:2) Tuesday December 19 2000, @06:10AM
  • AP Comp Sci is supposed to teach concepts by KFury (Score:2) Monday December 18 2000, @10:29PM
  • Re:Why confined to a language? by lizrd (Score:2) Tuesday December 19 2000, @06:11AM
  • Eep?! Hoorah! by Skwirl (Score:1) Monday December 18 2000, @04:33PM
  • Functional Programming as a Base? by gotscheme (Score:1) Monday December 18 2000, @10:30PM
  • Re:This is good and bad by acceleriter (Score:1) Wednesday December 20 2000, @05:32PM
  • Platform Independence by Ånubis (Score:1) Monday December 18 2000, @04:33PM
  • Re:Oh just wonderful... by Bruce Perens (Score:2) Monday December 18 2000, @04:33PM
  • Re:Why not SmallTalk? by mrfrostee (Score:1) Tuesday December 19 2000, @06:17AM
  • Re:Why does everyone on Slashdot hate Java so much by macpeep (Score:2) Monday December 18 2000, @10:42PM
  • Best of Both Worlds by mattwardfh (Score:1) Monday December 18 2000, @11:01PM
  • Re:This is good and bad by acceleriter (Score:1) Monday December 18 2000, @04:34PM
  • NOOOOO! by Spazntwich (Score:1) Monday December 18 2000, @04:34PM
  • Perl by BenGarvey (Score:1) Monday December 18 2000, @11:07PM
  • Re:Java: Great for concepts, but hurts overall by KidIcarus (Score:1) Monday December 18 2000, @11:07PM
  • Re:Every response is going to be just about speed. by elflord (Score:1) Wednesday December 20 2000, @06:48PM
  • Re:Why not SmallTalk? by Stu Charlton (Score:1) Wednesday December 20 2000, @09:33PM
  • Pedophilia by ffatTony (Score:1) Thursday December 21 2000, @11:33AM
  • Python! by imagineer_bob (Score:1) Tuesday December 19 2000, @06:26AM
  • Re:Why does everyone on Slashdot hate Java so much by Chagrin (Score:1) Wednesday December 27 2000, @06:37PM
  • I don't need to fix *my* code. by jcr (Score:1) Thursday December 28 2000, @04:59AM
  • Re:Why not SmallTalk? by mrfrostee (Score:1) Tuesday December 19 2000, @06:26AM
  • Re:Doesn't matter (Score:3)

    by istartedi (132515) on Monday December 18 2000, @04:34PM (#550101) Journal

    For a true understanding of how stupid the recursion is, see the previous post and follow all replies.

  • Re:Oh just wonderful... by UVABlows (Score:1) Monday December 18 2000, @04:36PM
  • Re:damn by tidge (Score:1) Tuesday December 19 2000, @06:38AM
  • It doesn't matter because... by GreyMatter (Score:1) Monday December 18 2000, @04:36PM
  • Money must have changed hands by Dr. Tom (Score:2) Monday December 18 2000, @04:37PM
  • Re:who cares? by Spazntwich (Score:1) Monday December 18 2000, @04:37PM
  • Re:Why not SmallTalk? by woggo (Score:2) Tuesday December 19 2000, @06:47AM
  • Learning programming and Java by gregbaker (Score:2) Monday December 18 2000, @04:37PM
  • Re:Why not SmallTalk? by ~MegamanX~ (Score:1) Tuesday December 19 2000, @06:49AM
  • Good thing... by RainbowSix (Score:1) Monday December 18 2000, @04:37PM
  • Re:Why confined to a language? by ~MegamanX~ (Score:1) Tuesday December 19 2000, @06:55AM
  • Politics?! by garoush (Score:1) Monday December 18 2000, @04:37PM
  • Re:Why not SmallTalk? by woggo (Score:1) Tuesday December 19 2000, @06:55AM
  • Good programming, bad programming by dsplat (Score:2) Tuesday December 19 2000, @06:57AM
  • Best Programming Language by Aloekak (Score:1) Tuesday December 19 2000, @07:00AM
  • Re:Good. by istartedi (Score:2) Monday December 18 2000, @04:40PM
  • Re:who cares? by KurdtX (Score:1) Monday December 18 2000, @04:40PM
  • Re:Good. by swingkid (Score:1) Monday December 18 2000, @04:41PM
  • Re:It gives teachers something else to bitch about by dgr116 (Score:1) Tuesday December 19 2000, @07:12AM
  • Re:damn by maan (Score:1) Monday December 18 2000, @04:42PM
  • It already is object oriented!!! by stuyman (Score:1) Monday December 18 2000, @04:43PM
  • Unbelievable! by FrostedChaos (Score:1) Tuesday December 19 2000, @07:16AM
  • Again?? by jreilly (Score:1) Monday December 18 2000, @04:43PM
  • Next, cull AP questions from MSCE exam. by (Score 5:Insightful) (Score:2) Monday December 18 2000, @04:43PM
  • Re:Didn't it already test OO? by Col. Klink (retired) (Score:2) Monday December 18 2000, @04:43PM
  • Re:Every response is going to be just about speed. by elflord (Score:2) Tuesday December 19 2000, @07:26AM
  • by 1nt3lx (124618) on Monday December 18 2000, @04:44PM (#550127) Homepage Journal
    I am a application developer and network administrator for a public school department in Massacuhsetts. Ironically, there is no Academic Computer Department. It operates as a function of the Business and Math departments.

    With the two contesting course of studies (Math: APCS, BASIC, PASCAL;Business: MS Office, Corel, etc.) it is becoming increasingly difficult to afford the demands for software alone.

    It was a swift decision to move from the Pascal-Based AP program to the C++ based course. In fact, the move was made so quickly for almost a year and a half the students were forced to use joe / g++ to compile the programs on a FreeBSD computer a student was kind enough to set up.

    We have 30 licensed copies of Borland C++, the teacher didn't know how to use it. Actually for him to be able to teach the class he needed to equate almost all the C++ syntax to a corresponding Pascal statement. Needless to say, Object Orientation was not covered.

    Qualified teachers are needed more than anything else. Funding is a huge issue for secondary education.

    Certainly the case with this particular institution is a lack of a clear course progression. DEC BASIC is hardly a lead-in to C++.

    The College Board should provide the outlines for a progressive approach to an eventual APCS (Java) course. Something that doesn't involve antiquated languages would be helpful.

    We offered Fortran and Cobol classes until 3 years ago, and we were using DEC VT 320 terminals until 2 years ago aswell. Talk about Modern Technology. FEH!
  • Re:right on! by HoldenCaulfield (Score:1) Tuesday December 19 2000, @07:26AM
  • Re:Lowering the standards once again. by aziraphale (Score:1) Tuesday December 19 2000, @07:34AM
  • C++ exam by Bulldawg2000 (Score:2) Monday December 18 2000, @04:44PM
  • A note from a "REAL" university by JacktheKeen (Score:2) Tuesday December 19 2000, @07:38AM
  • by minusthink (218231) on Monday December 18 2000, @04:44PM (#550132)
    Last year, which was my senior year, I took the AP Computer Science course which was billed as the hardest course I'll ever take in highschool.

    The first day of class we were introduced into to the wonderful world of C++. We were told how great is was, and how perfect Object Oriented Programming is.

    Excited, I took this anticipation that was instilled in me and what general knowledge of OO languages I hadto the teacher after class.

    I introduced myself, and asked when in the course would we learn about pointers.
    Response "... Thats college level material"
    (Pointers! Pointers college level? um...)
    Okay, I then asked about Classes.
    Response "MAYBE at the end if we have time."
    Discouraged, I asked if we would be at least doing memory management with new and delete.
    Response: "Nope, college level"

    Now, admittedly it was a novice level course; but whats the point of teaching us OO when they don't even bother to teach us to use classes.
    (We did end up looking at them for about a day before the exam)

    I think a problem that these intro to CS classes have is that they pander to harshly to the 'non-nerd'. They try to get Jonny QuarterBack to take the course.
    Now it might just happen that Jonny QB is an excellent programmer and has a great interest in Design Patterns or something; but most likely he doesn't.
    There are of course, exceptions; but anyone who has any real interest in programming, already has experience and/or has enough intelligence to learn a lot more in these classes.
    The Jonny QBs and Stacy Makeups in my class were the ones who kept us on for loops for two weeks and are the the peopel who drop out of the class in college.

    I believe this is a huge problem with Intro classes in any subject, but especially CS where most of its students already have experience with the subject.

    just my opinion,
    js.skulski


    --
    minusthink [Code poet or super hero? (you decide)]
  • Re:Didn't it already test OO? by Ig0r (Score:1) Monday December 18 2000, @04:45PM
  • Re:Why confined to a language? by elflord (Score:1) Tuesday December 19 2000, @07:41AM
  • Wonder if they'll make it harder by grappler (Score:2) Monday December 18 2000, @04:47PM
  • Re:Good. by woggo (Score:1) Monday December 18 2000, @04:47PM
  • Teachers need to be taught by MicroBerto (Score:1) Tuesday December 19 2000, @07:48AM
  • Re:Good. by MAXOMENOS (Score:2) Monday December 18 2000, @04:47PM
  • right on! (Score:3)

    by Preposterous Coward (211739) on Monday December 18 2000, @04:58PM (#550139)
    CS should be about computer science more than computer programming. Students need to be learning about algorithms, data structures, big-O, proofs of correctness, modularity, and so on -- concepts that will benefit them in any language they later choose to employ -- rather than get bound up in the syntactical nuances of any particular language or environment. Sometimes I think that rather than use a language that actually has likely commercial applications, such as C++ or Java, the courses should be based in something obscure but transparent such as Scheme (as in Abelson & Sussman's classic Structure and Interpretation of Computer Programs) or a variant of the hypothetical machine language that Knuth proposes in The Art of Computer Programming.

    Though I must add, from my experience as a former employer of Web developers, that I wish every high-school CS student learned at least basic regular expression syntax. (Maybe they do now; it's been more than a decade since I took the CS APs.) Regular expressions are one of the single most powerful and productive constructs I've encountered in all of computing, and they are also a great vehicle for learning about things like state machines.

  • by Anne Marie (239347) on Monday December 18 2000, @04:49PM (#550140)
    Back when the College Board made the original move from pascal to C++, people complained: why move to C++ when alternatives like java existed? People even went so far as to articulate their complaints in protest letters like this [williams.edu] from 1996. This quote is particularly telling:
    Will Java be the solution to all of our problems? It's probably too early to tell right now, but I suspect it will be pretty obvious within the next 12 months, and it looks now like Java is going to be a winner. If this happens, very few schools will be teaching C++ in introductory courses by 1999, when the new ETS exam is first given.
    Which is exactly what happened. Whether it's in brick/mortar colleges or upstart online learning programs, java is eating C++'s lunch, for better or worse. And the results are reflected in the workplace. A quick search on monster.com [monster.com] shows well more than a thousand jobs with java, and such jobs tend to pay more, as anyone who's been looking, lately. I'm glad to see the College Board listen to the best educational interests of our children.
  • Re:right on! by elflord (Score:1) Tuesday December 19 2000, @07:57AM
  • I'm taking Computer Science courses "just for fun" at my college (I'm mechanical engineering) and they start with Java first. Although I can't say that I'm entirely thrilled with the language (hey! lets have the Stack class return the Object you just passed it when you .push, that will be appreciated!), and the fact that its inherently slow, I think its a wonderful language to start learning on. I first learned BASIC, and was told that those who learned BASIC first have a hard time learning other languages, but that hasn't been the case; Java seems to be a high-level enough language not to lose people only familiar with BASIC. Another nice point is that the programs we wrote in lab I can take home and run on my Wintel machine, and my lab partner can run it on his Macintosh, and Joe on his Linux box, and so on; all without recompiling.

    The point isn't to put out useful programs your first year, its to get you interested and teach a programming foundation. Java is not a bad choice.

    But my teacher keeps telling me I think in C, a language I'm not at all familiar with, so I can't wait to get into that.

    Stephen Byrne
  • Slow Java by Anonymous Coward (Score:1) Monday December 18 2000, @04:50PM
  • Re:Good. by Malc (Score:1) Monday December 18 2000, @05:00PM
  • Java: Great for concepts, but hurts overall by tentac1e (Score:2) Monday December 18 2000, @05:01PM
  • by crow (16139) on Monday December 18 2000, @05:02PM (#550146) Homepage Journal
    When I took it in 1986, it was based on Pascal.

    The language doesn't really matter, the programming concepts do. However, it's very difficult to talk about programming concepts in the absence of a language, so they need to settle on one.

    It makes sense to use one that has real practical use, so students can learn relevant skills along with the theory. That makes the education more valuable and easier to grab onto for the students.
  • Re:Next, cull AP questions from MSCE exam. by Ig0r (Score:1) Monday December 18 2000, @04:50PM
  • Re:Hmm.... by MAXOMENOS (Score:2) Monday December 18 2000, @04:50PM
  • Why does everyone on Slashdot hate Java so much? by Listen Up (Score:2) Monday December 18 2000, @04:51PM
  • Re:Doesn't matter by garcia (Score:2) Monday December 18 2000, @04:51PM
  • Now To Java??? by The Madpostal Worker (Score:1) Monday December 18 2000, @04:51PM
  • Re:Why confined to a language? by so.what (Score:1) Monday December 18 2000, @04:51PM
  • by barracg8 (61682) on Monday December 18 2000, @05:03PM (#550153)
    I am a final year CS student, in the UK. On my course, we were taught SML, lisp, mips assembly & C in the first year and Java from the second year (amongst other languages). From next year on, SML & C will be cut, and they will teach Java from day 1 of the course.

    The C course was tough for people new to the language - and most people like me who knew the language well skipped every lecture & aced the exam. I can see an arguement for dropping C from the core compulsory syllabus - most of the language overlaps with Java - and there are many CS related jobs in the world for which you never need know what a pointer is.

    But it is a shame that SML has to go. SML is a functional language, and few people had programmed in it prior to starting the course, so it brought everyone to the same level. It taught something new to everyone, and opened up the minds of a bunch of hardened C hackers to a different paradigm. I'm sure exactly the same could be said for lisp, but I hated the lousy stinking language myself ;-)

    I'm sure that most people reading this have probably never programmed in a functional language, and if you are a C hacker I recommend you do so - it will expand the way you approach programming. Or try something ever more, uh, different - go look up the language brainfuck, and get yourself stuck in a turing tarpit.

    End rant. Just thought I'd relate this experience :-)

    cheers,
    G
  • Re:Good. by HeghmoH (Score:1) Monday December 18 2000, @05:03PM
  • Re:Why confined to a language? by FreeMath (Score:1) Monday December 18 2000, @04:52PM
  • Re:Good. (Score:5)

    by woggo (11781) on Monday December 18 2000, @05:03PM (#550156) Journal
    Yeah. While we're at it, let's not impose Latin, French, difficult sheet music, The President's physical fitness test, or calculus on them either. God forbid anybody should be challenged by an AP exam.
    You're missing the point. Teaching high-school students Latin is teaching them a language. Teaching high school students computer science is teaching them a sort of epistemology; an entry into a discipline. Teaching students difficult sheet music is teaching them an application of a physical skill and intellectual interpretation.

    C++ is the medium, not the message. The class isn't "AP C++", it's "AP Computer Science", and my original point was that C++ is an unnecessary encumberance on learning computer science. I learned French in high school by studying grammar and conversing, not by reading Sartre. The medium can interfere with the message. Why do you think children don't learn to play, say, the oboe or bassoon at a very young age, instead starting on the clarinet? Unnecessary complication gets in the way of learning the basics.

    The goal of computer science education is not to churn out C++ coders; rather, it is to churn out people who are capable of describing solution generators rather than merely "solving problems", people who are capable of procedural epistemology, abstraction, and analysis. That is why the language for the AP class ought to be absolutely as simple as possible to convey the concepts. I taught myself Java and implemented LZW in a total of three hours, because I had a strong foundation in the basics. Making students learn computer science via C++ is like making them take the President's physical fitness test in shackles.

  • Why java works/doesn't work by captaint (Score:1) Monday December 18 2000, @04:53PM
  • It's already like this in Quebec by xbasic (Score:2) Monday December 18 2000, @05:04PM
  • Re:Didn't it already test OO? by pork9 (Score:1) Monday December 18 2000, @05:05PM
  • by spludge (99050) on Monday December 18 2000, @05:05PM (#550160)
    I originally learned C in highschool and then moved onto C++ in college. So I had been programming in C/C++ for about 5-6 years before I tried Java.

    I would say that Java is the perfect language for introductory courses. Perhaps a good C++ programmer can produce code with no memory leaks, proper exception handling and a good object oriented structure.. but very few beginners!

    Java has excellent standard classes that allow beginners to quickly get to work. Need a hashtable to experiment with.. try java.lang.HashTable. No messing around with Templates and complicated STL on top of learning basic C++.

    Sure, Java may not be the best language for creating speedy GUI's but it's one of the easiest and most powerful languages to pick up quickly.

  • Mod this up! by Anonymous Coward (Score:2) Monday December 18 2000, @04:53PM
  • It doesn't matter what language the test covers. by hepatitis_bee (Score:1) Monday December 18 2000, @04:55PM
  • Why just CompSci?? by Red Pointy Tail (Score:1) Monday December 18 2000, @04:56PM
  • AP = Advanced Placement by toybuilder (Score:1) Monday December 18 2000, @04:56PM
  • What's an AP - how does it fit with american ed sy by daveb (Score:1) Monday December 18 2000, @04:56PM
  • Does it really matter? by Stickerboy (Score:2) Monday December 18 2000, @05:05PM
  • Re:Lowering the standards once again. by stuyman (Score:2) Monday December 18 2000, @05:07PM
  • Re:Platform Independence by Ig0r (Score:1) Monday December 18 2000, @05:07PM
  • Re:Wonder if they'll make it harder by Ig0r (Score:1) Monday December 18 2000, @04:58PM
  • Re:Why not SmallTalk? by LameBrain (Score:1) Monday December 18 2000, @05:10PM
  • Re:Why not SmallTalk? by Malc (Score:2) Monday December 18 2000, @05:12PM
  • Java in schools by trolebus (Score:1) Monday December 18 2000, @05:12PM
  • bwahaha by rebelcool (Score:1) Monday December 18 2000, @06:26PM
  • Current C++ AP Cource by This is RobV (Score:1) Monday December 18 2000, @06:26PM
  • by rjh (40933) <rjh@NoSpAm.sixdemonbag.org> on Monday December 18 2000, @06:28PM (#550175)
    Why does everyone on Slashdot hate Java so much?

    The losers and poseurs hate Java. The real hackers see Java as just another tool in the toolbox. It's not a tool I have much use for, nor a tool that I'm particularly fond of. But I don't go out of my way to slam Java, either, and more to the point, I don't know a single serious programmer who does.

    I consider the One True Language belief to be a childhood disease.

    C++ is simply a pain in the ass and it's [sic] OO design is crap.

    Please show me how its OO design is crap. Just give me a good, solid example of unadulterated crap in the C++ spec. I've been looking for years and I haven't found any. That's not to say there aren't warts and blemishes on C++; but unlike almost every other language out there, C++ was not designed--it evolved.

    There isn't a single feature in C++ which went in just because it was "elegant". Nor is there a single feature in there which was left out to "enhance the purity". C++ was originally C With Classes, when Bjarne was just starting out... and then people gave him feedback, and then people began to mutate Bjarne's C With Classes to fit their own needs.

    A lot of people complain that C++ lacks garbage collection. That's a fair criticism; that is one of the warts of the language. What people don't understand is that C++ lacks garbage collection because GC is something that's very hard to implement correctly. C++ lacks a standard thread library for the same reason.

    Compare C++'s lack of GC and thread libs to Java. Does Java have GC? Yes, and it's Godawful. Does Java have a thread lib? Yep, but it changed dramatically between 1.0 and 1.1, and even now Java threads still are being tweaked on.

    I originally learned OO programming in Eiffel for NeXtStep here and that was coming from learning Pascal for the AP test back in 1996.

    I'm happy for you. Now open your mind a little bit and realize that Eiffel is not the be-all end-all of OOP. Nor is Smalltalk, nor is Clu, nor is Simula67.

    OOP is a concept, not a concrete reality. Just like a PIII is conceptually a Turing machine, but it doesn't have a paper tape and a symbol scanner. There are dozens of implementations of the OOP concept--I've seen them done in C, in C++, in Java, in LISP (!), in Simula67, in Smalltalk, in Objective C... and all of them have their warts and flaws. But by studying them and realizing where they're flawed and where their flaws are actually stunning successes, I've been able to better grasp the abstract notion of OOP.

    If the only thing you study and appreciate in your CompSci career are languages you think are neat, you're going to wind up a well-educated idiot.

    Java is NOT bad

    Undisputed by every programmer I respect. Of course, just because it's not bad doesn't mean it's good, either. I'd give Java a grade of "painfully mediocre", myself.

    Java has the best networking API on the planet

    How many networking APIs have you studied? Have you fully grokked the raw power of the UNIX C socket API? Have you seen the beautiful elegance of some of the C++ socket libs out there? What about Perl and its networking abilities? Python? CORBA?

    They're all just tools in the toolbox. Use the right tool for the job. If you like the Java networking API, fine; I'm not going to tell you it's bad (because it's not). But if you're going to say Java's API is unquestionably the best, you're going to have to prove it, and I don't think you can.

    C++ is crap for OO

    You apparently don't know beans about OO, or programming in general, or else you'd know that this statement is false.

    Is C++ perfect? God, no, not by a longshot. I beat my head against it frequently. But that doesn't change the fact that for OO, C++ is one of the best languages out there. Not the cleanest, not the most elegant, not the best-designed... just one of the best.

    If true OO design philosophies are held so highly by all of the geniuses on Slashdot why do programmers for Linux make EVERYTHING in C and then try to fool themselves into thinking they are actually OO when they are not?

    Ever seen GTK+ or GNOME? Both are object-oriented. Written in C, natch. This probably boggles your mind, since you think that C isn't OO. The truth, which all of us real OO programmers know, is that almost any language can be used to write OO code. C++ just provides some syntactic sugar to make it easier.

    The kernel is also rife with objects.

    Motif is OO C as well.

    Maybe if people learned OO programming...

    ... like you did?

    and used decent OO languages...

    ... like the ones you think are decent?

    before trying to do everything in C and half attempts at C++...

    Define a "half attempt" at C++, please. I can write procedural code in C++ and have it be perfectly valid C++.

    then we would have a better Linux/Unix today.

    I think you need to learn a lot about OO, and expose yourself to a lot more languages and paradigms, before you'll be able to sell me on any of this.
  • Re:Politics?! by joto (Score:1) Monday December 18 2000, @06:28PM
  • Re:What's an AP - how does it fit with american ed by HeghmoH (Score:1) Monday December 18 2000, @05:12PM
  • Re:Why does everyone on Slashdot hate Java so much by QuoteMstr (Score:1) Monday December 18 2000, @06:29PM
  • Re:Wonder if they'll make it harder by grappler (Score:1) Monday December 18 2000, @06:31PM
  • Security for Sun by waldoj (Score:1) Monday December 18 2000, @06:31PM
  • Re:C++ exam by Ig0r (Score:1) Monday December 18 2000, @05:15PM
  • Re:So whoever cracks the best.... by duncan (Score:1) Monday December 18 2000, @05:16PM
  • Re:It already is object oriented!!! by joto (Score:1) Monday December 18 2000, @06:33PM
  • by nebby (11637) on Monday December 18 2000, @05:16PM (#550184) Homepage
    There are data types (int, float, etc.) which are not objects in Java. There are static methods and variables which do not belong to a particular object, either.

    I've never used Smalltalk, but either of these two things (the first more than the second) take away from the "true" OOPness of Java.

  • Re:Eep?! Hoorah! by CommieOverlord (Score:1) Monday December 18 2000, @06:33PM
  • Re:It looks like they're finally listening by rebelcool (Score:1) Monday December 18 2000, @06:34PM
  • At my school by Maurice (Score:1) Monday December 18 2000, @05:18PM
  • Re:Lowering the standards once again. by Ig0r (Score:1) Monday December 18 2000, @05:19PM
  • Re:Good. (Score:3)

    by woggo (11781) on Monday December 18 2000, @05:20PM (#550189) Journal
    This is a good point, and I humbly suggest that Java does not meet this criterion. The AP CS exam should switch instead to Python.
    Yeah, the problem with Java at the HS level is that you have to teach objects to recovering BASIC programmers. :-) Python is an excellent teaching language, and it would be in my top five choices. I'd be pulling for Scheme above all, except then I'd be modded down as a troll and/or yelled at by some 1337 "c++ h4x0r".

    I TAed for a C++ class as an undergrad for three years, and it never ceased to amaze me how many students kept making the same class of mistakes throughout every semester. By contrast, the Scheme class I TAed for had students doing harder work with fewer dumb language-related errors. It is all in the medium in teaching this stuff. C++ is just pedagogically unsound.

  • Back in my day... by Kismet (Score:1) Monday December 18 2000, @05:20PM
(1) | 2 | 3 | 4 | 5