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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, LOTS_OF_MONEY autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!GWUVM.BITNET!MFELDMAN From: MFELDMAN@GWUVM.BITNET (Michael Feldman) Newsgroups: comp.lang.ada Subject: Ada in University Computer Science Message-ID: <8902182258.AA19085@ajpo.sei.cmu.edu> Date: 18 Feb 89 22:59:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet List-Id: Now that we seem to be in another round of "Ada in Universities" discussion, I thought I'd weigh in with a little chat about my own experience here. I warn you that this piece is a tad long, so those of you not interested in Ada in the university computer-science curriculum can hit your delete key now. I hope to keep the rest of you from getting bored. At George Washington University, Ada is the language of our data structures course, and has been for 4 years [DISCLAIMER: I wrote the book for this course]. (There are other courses too, but let's keep it simple.) We are located in central DC, midway between the White House and Watergate; several subway stops from the Pentagon. I got involved with learning and teaching Ada back about '81, at which time Ada was, of course, only a proposal. But it appeared to beat the dickens out of any other "real" language for teaching data structures. [ASIDE: my publisher talked me into putting out a second version of my book, with Modula-2 as the coding language; the conversion project make me like Ada even more for this stuff. That's a discussion for another time.] Many of our students are from other countries, with no hope of ever getting a job in the U.S. DoD world. Many of our students are U.S. citizens but don't much care to work in the DoD world, anyway. Then there are the grad students who are in fact working in the DoD-related industry here. Teaching Ada as the (required) design and coding language of the (required) data structures course has gotten somewhere around 600 students to learn (some) Ada. Often they use it in subsequent courses when they have a choice. What I am leading up to here is a re-iteration of my long-standing view that Ada really _should_ be seen as "just another programming language." Before Ed Berard and Bill Wolfe jump on me too hard, let me explain this heresy. I have no quarrel with the view that Ada can be seen as more than the language, rather a culture. Certainly it can. Certainly it oughta be. I have no quarrel with the view that software engineering should be taught more resolutely and systematically in academic computer science. I agree. (Details of why it isn't, in most schools, has nothing to with this discussion or of Ada; let's save it for another time). But let's get real. Lots of good software engineering gets done using other languages as the coding tool (pick up your favorite well-done commercial package: was it written in Ada?). Obviously Ada helps; that's why I presume we're all interested in it. But it's not essential. OK. If you agree with that Ada isn't _required_ for software engineering, perhaps you will agree that software engineering isn't _required_ for Ada. That is, given the way knowledge is chopped into little course-sized hunks in a curriculum, why can't Ada be taught _everywhere_ in the curriculum, just like Pascal often is (OK, the Turbo version, which sorta supports ADTs)? Data structures with Ada; operating systems with Ada; graphics with Ada; data processing with Ada; you get the idea. My experience tells me that students will in general learn what you decide to make 'em learn. If we say Ada is the main language, they will learn it as easily as they currently learn Pascal. More easily than C or Modula-2, because (most of) Ada is more uniform syntactically and semantically than either of those. My students usually come out of the data structures course actually _liking_ Ada; the foreign students' like for Ada cannot be dismissed as mere job-hungriness. What we have here, I'm convinced, is a perception problem among _faculty_, not students. Ada has a certain mystique, which we in the Ada business have at times fostered. It's also expensive to buy (see below). And there are undeniably those who will always see it as a DoD toy and reject it for ideological reasons. On the other hand, many teachers are open-minded, and this gives us all a golden opportunity that we should grab. The time is ripe for schools to change away from vanilla Pascal as the language of choice. In February each year the SIGCSE (SIG on Computer Science Education) meets; this is the only conference exclusively devoted to CS education issues. I can't go this year, but let me tell you what I learned last year. I participated in a panel on teaching concurrency, and organized, with Carl Brandon, a birds-of-a-feather session on teaching Ada. Further, I attended several sessions on freshman courses. This was my third CSE conference, and in each one the openmindedness toward Ada increased. Here is the gist of the "what shall we do in the freshman course" discussion (if any of you were there, correct me if you wish). (I'm only focusing on language-related issues here). There's a constituency that says "stick with vanilla Pascal"; freshmen shouldn't focus on the language details, rather on the formalisms of algorithm development at the program level. This group was pretty quiet. Most speakers on stage and in the audience believed that students should have a language they can grow into as they progress. The analogy with natural language: English doesn't change as a kid grows, the kid just learns more of the language. Ada isn't nearly as large as English; even still, you don't need to swallow it in one gulp. There's a constituency that goes with Turbo Pascal. Many schools have large labs of PCs; many schools encourage students to buy their own (I use the term PC generically: personally I prefer Macs; obviously Macs are included in this discussion). Turbo Pascal can carry a student through a number of courses, with the nice development environment and the use of units (which are sorta like packages but don't support private types, sadly). My objection to this position is that I don't think Philippe Kahn should unilaterally set the standard for the content of a programming language. Turbo is a de facto standard _only_ in the DOS world; the Mac version is a (somewhat) different language, not even fully compatible at the syntax level with the DOS one, which only makes my point stronger. There is a small group who've tried C with freshmen. The consensus seems to be that freshmen have enough to worry about without falling unwittingly into all of C's "gotcha's". C is OK for upperclass students, but wrong for freshmen (whew! I'm glad they came to that conclusion too!). Then there are the Modula-2 proponents, a growing number. Some of them genuinely like M2. But syntactically it's weirder than Ada (why would a new language be case-sensitive? why shouldn't functions be able to return records?) and only a little bit standard (although to their great credit the M2 compiler writers are converging on a standard even though there's no government forcing them too, and even though Wirth apparently isn't participating). What made this conference different from preceding ones is that a number of people said they'd prefer Ada, but can't really"sell it" yet to the committees in their departments, because the price is simply too high right now. The development environments are, in general, tailored (and priced) for industry, and there are _no_ textbooks suitable for freshmen. (Putnam Texel's is pretty close, but still makes enough assumptions that a rank beginner in programming would be confused). The bottom line is that we've moved from an era of CSE speakers dumping on Ada (for reasons I'm sure you can all imagine) to an era of CS faculty - and not just a few - being ready to go for Ada when the materials are available. And they're openminded not just because they think it'll increase their students' marketability. I think the word is finally getting out that Ada just might _really_ be the right language! I'm quite optimistic about Ada compilers: the price of compilers and environments is coming down, to the point where we have a handful of DOS-world systems in the $100. ballpark. The recent piece by Rich Pattis describes some interesting experiences with acquiring site licenses for Ada; what made it happen was a grant from Boeing, a "sugar daddy" as he put it. And when it happened, the University of Washington switched from M2. It seems to me that the Ada user community could well emulate Boeing. Think about it: a university site license for the PC compilers is in the $10,000 ballpark. This is, I guess, roughly one programmer-month's worth. Or equivalent to sending perhaps 3-4 employees out of town for a 5-day short course. Could this kind of money be liberated to give the university down the street a shot at getting Ada _really_ going in their curriculum? $10000 is, believe it or not, a helluva lotta money for some schools to come up with, and the decision to spend it is an _agonizing_ committee process. Seems to me that if each company adopted a school or two in their area, a little money could go a long, long way. Do you agree? About textbooks: I don't have as ready a solution here. I speak to editors now and then; publishers are _very_ conservative these days, and don't seem thrilled about taking the risk of a freshman-level Ada book. Somehow we need to convince the publishers that they'll make $$ selling Ada books for first-year students. Do any of you have ideas about how to get the word out to publishers? Can you get your friends in the local universities to write to publishers and say that they'll switch to Ada when the books are there to teach with? Are there potential authors out there? [DISCLAIMER: I am a potential author]. I am aware of at least 3 people doing a nice job teaching Ada to freshmen as their first and primary language: Carl Brandon (Vermont Technical College); David Rudd (University of New Orleans); and Rich Pattis (University of Washington at Seattle). Who else is out there that you know of? To conclude: I am not minimizing the problems of re-educating people in industry by focusing on the University structure here.[DISCLAIMER: I do a bit of re-educating myself]. But I think we should look to the long term. In my vision of the long term, Ada will simply be the language of choice in undergraduate computer science, not a "niche" languge suitable only for seniors and grad students (we teach it successfully to sophomores). We ought to work on filling the pipeline with graduates who speak Ada as their "mother tongue," learning C, Lisp, etc., as second or third languages, just as most students do now but with Pascal as the mother tongue. The typical Info-Ada reader may be in a position, either in a school or in a neighboring company or agency, to influence the speed of arrival of the long term. How can we work together to do this? I'd love to continue the discussion with any interested party, either in the Info-Ada forum or by private E-mail. Hope I hear from some of you. ------------------------------------------------------------------------ Michael B. Feldman, Professor residence address for USNail: Dept. of Elect. Engrg. and Comp. Sci Michael B. Feldman The George Washington University 6218 Wagner Lane Washington, DC 20052 U.S.A. Bethesda, MD 20816 U.S.A. +1-202-994-5253 MFELDMAN@GWUVM.BITNET MFELDMAN@GWUSUN.GWU.EDU Acknowledge-To: Michael Feldman