From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f43e6,80ec92800f85d9e7 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,80ec92800f85d9e7 X-Google-Attributes: gid103376,public X-Google-Thread: f8499,80ec92800f85d9e7 X-Google-Attributes: gidf8499,public X-Google-Thread: 109fba,80ec92800f85d9e7 X-Google-Attributes: gid109fba,public From: clin@cs.umd.edu (Charles Lin) Subject: Re: Do college AP tests require C++ knowledge? Date: 1997/12/07 Message-ID: <66cqhg$ama$1@walter.cs.umd.edu>#1/1 X-Deja-AN: 295884604 References: <65vqjn$9tk$1@flood.weeg.uiowa.edu> <3485E349.4ADBDE9F@net1plus.com> Followup-To: comp.lang.ada,comp.lang.c++,misc.education.science,comp.software-eng Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742 Newsgroups: comp.lang.ada,comp.lang.c++,misc.education.science,comp.software-eng Date: 1997-12-07T00:00:00+00:00 List-Id: You can get some of these answers, I suspect, by just heading out to the Web page for the AP stuff (probably www.collegeboard.org or www.ets.org), and they probably have a telephone number as well. But, yes, I believe the tests are making the transition to C++. To address a previous poster's point about testing in a particular language. I'm not sure there are any easy ways around that. Any test that wants the reader to understand code is going to have to be written in some language, even if it is pseudo-code. They can have the students write code in whatever language they are comfortable with, but this would make grading a pain. The move to C++ underscores a few things happening in industry. First, that the OO hype of the 80's has worked, and it's worked primarily through C++, and now Java (though some will argue that true OO languages are more like Smalltalk and Eiffel, and that C++/Java are some bastardization of OO). People seem to believe that the OO style is the right one, or at least, industry believes it (as opposed to, say, functional programming, which is perhaps an academician's answer to a good programming language). It's true you can be taught concepts about programming languages that are mostly independent of a language. Ideas like assignment statements, if-then-else, while loops, arrays, functions, pointers, and even objects. However, it's made much more clear if the student can actually write programs in some language, and it makes it easier for people to communicate if the language is commonly used, such as C++. In addition, the C++ exams would presumably have more emphasis on OO design than a Pascal exam (although the difference may be a little on OO vs. none). The sad part about software is that it is highly dependent on language and OS, and the language is C++ (or possibly Java), and the OS is Microsoft. The reason for the choice of language and OS has more to do with marketing and what everyone else is using rather than which language or OS is best. People won't program in languages like, say, ML, because no one else is programming in it, and so few people know the language or can program well in it, so it's not considered a viable language for solving real worled problesm, and this really has more to do with the popularity of a language vs. how good a job as a language for solving problems. I guess the real issue is what should these tests test. Part of it is general programming principles, but in the real world, that's always just going to be one part. This will give you some ability to move from one language to the next, but each language not only has some syntactic peculiarities that might make it difficult to learn, but it often has different features or even a different paradigm. The kinds of programs people write in Java are probably going to look somewhat different from the ones in C++, and that's not just because of the difference in syntax, but the difference is features of the language. I believe that general programming skills only get you so far in a programming language. If I had a formula, I would say that learning a programming language is a combination of knowing general programming skills (modularity, loops, recursion, pointers, etc) and then learning the details, strengths, and idioms of a given programming language. It's the second part that makes a person a "power user" or "power programmer" of a language, rather than someone who is trying to make their Lisp code look like C since they know C. -- Charles Lin clin@cs.umd.edu