University of Otago Department of Computer Science
University of Otago

Comments


New Zealand

University of Auckland
  • Until the second semester last year we used Pascal as our first language. Since Pascal was no longer being widely used and support for the compiler we had been using was no longer provided we decided we had to move to another language.

    Java was chosen because it was seen as relevant by staff/students and industry. The connection with the Web was seen as positive and a way of motivating students. The language itself is reasonably simple (though not as simple as Pascal). It was seen as a good thing to start the students with an Object Oriented language, rather than having to move them to this way of thinking in the second year.

    The explicit event model was seen as approximating more closely the way real user-centred applications are written.

    It solved some of the problems with C++, especially garbage collecting, while making it easy for our students to pick up C++ if they need to. We have a Macintosh laboratory and most of our students have PCs at home, therefore the cross-platform aspect was also important, enabling students to work on their assignments outside of our lab.


University of Canterbury
  • Our first introductory programming course had been using modula for some years. [...] Many issues were involved and debate was vigorous. C++ and C were suggested---but only by people who had no idea of what is involved in teaching such a course! We have been very pleased with the way Java has worked out.

    HUGS stems from the split of our old courses into two half year courses. The course in which it is used tries to emphasise abstraction and functional languages have worked well in teaching data structures etc. Interestingly, we decided this morning to switch to Java for that course also! Students, often only with hindsight, did seem to appreciate an early introduction to a radically different paradigm.


Lincoln University
  • [...] The decision to use VB was a departmental one taken last year. Our previous language was Turbo Pascal for DOS and this was looking pretty creaky in relation to Windows, etc.

    Our main goals were:

    - Move to a visual elements/GUI component language
    - Be able to introduce OO concepts (use of properties, methods, objects in the intro paper, developing simple classes in the follow-on)
    - Use a language that was an "industry standard"
    - Use something that would appeal to more students

    VB seemed to meet most of these criteria, although its OO implementation is incomplete (no inheritance). We also considered Delphi as this was Pascal based and handled the OO stuff butter, but it didn't seem as well know as VB. In addition, we use/teach some VB for MS Office applications in some of our other papers and this was a tie-in and advert for the intro programming papers.

    I'm pleased to say that VB met the criteria we set and indeed was very well received by the students. It is our intention to switch the students over to a "proper" OO language in subsequent papers, eg Java or C++ or Jade (this has to be decided for next year).


University of Otago
  • We use pascal as a first language as it is well structured. At the time it was chosen it provided the best combination of textbook and environment for our Macintosh Labs (THINK Pascal).
    Currently we are planning to change our language in the year 2000, with Java as the main contender.

Waikato University
  • We chose C++ as our introductory language for the reasons below:
    1. Needed to move to an OO language as part of a departmental decision to push this paradigm.
    2. Many of our part III courses were using (and therefore teaching) C at the time.
    3. A survey of the job market showed that it was going to be useful for students to have familiarity with the language.



Australia

Australian National University
  • [...] We do indeed teach Modula 2 as our first major programming language. We have used it for (guessing) 8 years, before which we used Pascal.

    The reason for choosing Modula 2 was its clean design, which we find good for teaching correct programming practice. We don't consider that its comparitive lack of "real life" use is important, though it is a PR problem.

    Currently the issue is under review, and it is very likely that Modula 2 will be replaced in the next year or two. The most likely candidate is Java.


Deakin University
  • We taught Pascal as the introductory language until 1991.

    We taught C as the introductory language from 1992 to 1998. There was opposition,[...] but it was seen as a unit which gave access to what we wanted later in the course, such as operating systems, [...]

    We reviewed the first course and went back to fundamentals. We felt that a lot of the purpose for learning languages in a command line environment could no longer be justified. We also knew we were spending our time teaching language syntax and semantics rather than understanding, learning and using programming concepts. [...] Most students, both off and on campus, come to us now Windows oriented.

    We reviewed the environments and determined that Visual Basic was a way to connect with the students and focus on programming concepts most directly for the present. We have a chance to focus on programming concepts because we are not focusing on syntax.

    Why VB? It connects directly with what they know about spreadsheets, word processors and so on. We can draw on already justified material, because they already know examples of techniques applied in real life. We can work through a series of exercises illustrating, using and exploiting programming concepts wihtout getting sucked in to the syntax of C or C++. [...]

    Why not C++? That introduces more syntax.

    Why not Eiffel? It is not close enough to the windows environment yet, but this language would be my long term preference for this slot.


Griffith University
  • We use Haskell in CIT1103 because:

    The learning curve is gentler than for imperative languages. The functional style leads to better imperative programmers. Some students come in knowing Pascal or C or other imperative languages and just coast for the first semester or two, while other students struggle. Haskell forces students to gain a good understanding of types early. The experience helps with other subjects: mathematics, logic, logic programming, formal specification. The commonly used operators are (almost) a subset of the C operators.

    We use C in CIT1104 because:

    It is required in later subjects, on operating systems etc.


Monash University
  • The reason for choosing C (which was picked a few years ago) was that it was a comprehensive language that was also used in industry and which students could use to learn a variety of concepts. Having said that, it appears that we will move to Java in the near future (probably the year 2000).

    MIPS was chosen to replace ML (a home grown architecture and machine language). MIPS was chosen because of its simplicity and the relative simplicity of the underlying architecture + the availability of a reasonably working simulator (which didn't require too many changes to suit our needs).


Northern Terrritory University
  • Our main reason for teaching C/C++ as the intro language is:

    - influence of a staff member [...]
    - desire to penetrate a perceived market demand (this will go - we are in
    progress of moving to Vis Basic as a first language, followed by C/C++), and
    - (the real reason) we are a small university & the rationalisation implied required that we teach the first unit in C, since that's what the engineers want.

    My own personal preference would be for a more abstract language - starting with Eiffel say - then using a systems programming language (C/C++) in 3rd year when required.


Queensland University of Technology
  • Yes we are using Modula-2 for our introductory first semester unit Software Development 1 - 'classical' intro unit covering the software development process, algorithm development, and programming up to procedure/parameters, arrays, records, file I/O. Then Software Development 2 in the second semester continues with recursion, dynamic allocation, and more abstraction and alternative implementations including contiguous and linked structures. In addition, in their second semester, they do a Programming Laboratory unit which introduces C, but only to about the level of Software Development 1 - ie they reinforce the basic concepts and get more programming practice, in the new language.

    These three units are part of a common first year program done by all our students - the others are intensive lab skills in the first few weeks, mathematical tools, intro database (SQL/Access), intro information management, machine and operating system concepts, and intro data comms. Majors are chosen in second semester and commence in second year. Some students, particularly those planning to do the Information Management major, find the programming stream very difficult.

    Our reasons for choosing Modula were those that recommended Pascal before it - small, well-structured, safe. We wanted the improvements over Pascal that were in most compilers as non-Standard additions, and we wanted a cheap, consistent environment on all our machines. That led us to develop gpm (Gardens Point Modula) which is available free to our students as the PC (DOS and Linux) versions, and also on our Faculty SPARC Unix server.

    Those reasons still apply, but we are facing the market drive to integrated environments with good debuggers (gpm offers gdb, but that's a bit heavy for struggling first-years), and to the 'well-known' languages - C, C++ Java, ...

    We have reviewed a wide range of options recently, and are likely to proceed with a small, cautious change option: change the Programming Lab unit to Java (this was the original plan at our last major course reconstrcution, but at that time Java was still changing too rapidly, texts were few/poor), evaluate that, and then decide about Software Development 1 & 2, with front-runners Java (just one language for all three units) or Component Pascal (better language, again local expertise and compiler products).

    So, as I said above, a small change to meet the 'market expectation', and use that to guide further change; the Modula is not exactly broken, so no urgent need to fix it. It's an open question whether the motivation of an environment like Java will be sufficient to overcome the fundamental problems with software development that many students suffer.


Swinburne Institute of Technology
  • Here at Swinburne, the School of IT (formerly School of CS & S/w Eng) dropped Ada as a first language starting Feb 1997. We did this to
    a) rationalise -- half our students (CSSE) started in Ada and half in C (other degree programs, and never saw Ada)
    b) go OO -- we decided that Ada95 OO was just too hard to teach and too different to mainstream OO. Our approach is objects from the beginning.
    c) use a clean language -- not C++, students in our more technical degrees go onto C++ halfway through their third semester
    d) use Java (ahead of the pack ie for a marketing edge) because it is a powerful up-coming industry standard language, in particular it is a REAL language, and is comprehensive eg threads, event-driven APIs..

    I am now teaching the 4th subject in the sequence (all C++), meanwhile Java has been introduced in final year to Ada students as the language for the large team project.


University of Melbourne
  • The Computer Science Department at The University of Melbourne currently teaches Miranda as the first programming language for computer science and software engineering majors. From 1999 Miranda will be replaced by another functional language, Haskell.

    We feel functional languages are good for rapidly teaching important concepts such as recursion and higher order programming, and students are able to develop large programs. It is also an advantage for all students to take a language they have not seen previously.

    The second language is C. C is also used as the introductory language for students taking only one programming course.


University of New England, Armidale
  • [...] Language is still C. Reasons for: it was the most widely used language; it is available on any platform; there are a lot of C introductory books available; it is simpler than C++ and Java;

    Reasons against: pointers and assignment rules are difficult to understand without having a good understanding of the underlying hardware/software (should we teach computer architectures, then programming?); syntax is not well defined; ...


University of South Australia
  • [...] The main language of the course was C. We had to decide whether it was better to use Pascal as an introductory language, then move to C, or whether to go straight to C.

    Finally, we decided to take the second course.

    We are now reviewing the course again. This time it may be a debate between C and Java.


University of Sydney
  • (Comments taken from, "An Introduction to Computer Programming with Blue" produced by the Basser Department of Computer Science.)

    "Blue is an imperative, srongly typed, garbage collected object-orientated language similar to Eiffel....... The Blue language and programming environment were designed to present modern computer programming concepts to novices with minimum possible unnecessary complexity. The progrmming environment includes a very clean graphical interface, intergrated editor, complier, interpreter, debugger, and library browser."


University of Technology, Sydney
  • At UTS we use Eiffel for all the students doing full degrees in Computing.

    We wanted Object-Oriented. C++ is dreadful and we feel Java is not nice and quite difficult for beginners. Eiffel is well structured (The OO equivalent of Pascal) and a good teaching language. We have now taught it for 10 years. We revisit periodically but can as yet see no reason to change.

    Most students doing just a few computing subjects, (Business, Info Studies, Maths, etc) opt for Visualbasic which is OO, easier than Java and likely to be useful to them in industry.


University of Wollongong
  • Over the years we had used Pascal on UNIX boxes, then Mac Pascal on the Mac, then Modula2 on the Mac. We contemplated going to Oberon but did not like the way Wirth had fused the language and the operating system ( perhaps he was just exploring the Explorer/Windows paradigm a little early) We briefly considered Modula-3 but people felt that teaching a language in common industrial use was a better choice. [...]

    [...] People argued for C++ as a better C, and that's what we chose. The introductory course tends to be procedual, even though we are using C++, with a progressive shift to classes and object oriented design in later courses. Of course our first year students have such a variety of programming experience, from nothing all the way to being competent in some language, that really no one set of lectures and programming assignments can do them all justice.

    We have considered going to java as the first language but have so far resisted that, as the change to C++ has only now worked its way through our courses, it needs an evangelist to do it all again with java, and there is a lot to be taken on trust to get started in java.

    One disadvantage I see with using C++ in that first course is that students may stumble over features of the language we have not explained to them. This simply reflects the fact that C++ is a big language. [...]


Victoria University of Technology
  • At Victoria University of Technology we currently use C++. However we are currently reviewing the first year language with a move to Java being under consideration.

    The purpose of our first year language is to provide a foundation for further studies in Comp Sci. However it is our intent to offer a language that has a strong usage base in the wider community. Thus C was followed by C++ and now we are contemplating Java.



The comments expressed here need not represent departmental views. Any editing of remarks are indicated by [...]. Thankyou very much to all those who replied. If you would like any of your comments altered, added to or, removed, please contact Anthony Robins.


[Introduction] [Language Choices] [Comments] [Other Resources]