On the (un)suitability of Java to be the first programming language

January 10, 2018 | Author: Sophie McDonald | Category: N/A
Share Embed Donate


Short Description

Download On the (un)suitability of Java to be the first programming language...

Description

On the (un)suitability of Java to be the first programming language Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg Dositeja Obradovica 4, Novi Sad mira @im.ns.ac.yu

Klaus Bothe Humboldt-University, Institute of Informatics Rudower Chaussee 25, Berlin [email protected]

SEE&RE

Zagreb, 5 -12.9.

1

On the (un)suitability of Java to be the first programming language - LITERATURE [1] L. Boeszoermenyi: “Why Java is not my favorite first-course language ”, Software Concepts and Tools. [2] http://www.cs.rit.edu/~ncs/Uppsala97 - “Using Java in Computer Science Education – Panel” [3] M. Koelling, B. Koch, J. Rosenberg: “Requirements for a First Year Object-Oriented Teaching Language ” [4] Author’s experiences SEE&RE

Zagreb, 5 -12.9.

2

1

Choice of First Programming Language How we learn something for the first time seems to have particular importance Nobody can learn a programming language properly just by using it without using it

First programming language serves as a reference for learning additional programming languages SEE&RE

Zagreb, 5 -12.9.

3

Choice of First Programming Language No best paradigm - the importance of historical point of view. Is object-oriented development the right way to go? [1] For many purposes it is the wrong approach (the concept of modularization is much more fundamental then that of objectorientation). There is one single “right way” that universities should try to find and teach. Direction of historical development has not been an accident – programming started with basic concepts as notion of constant, variable, algorithm and function (procedure) – not with notion of objects. All this does not imply that we cannot start with OO, but it surely follows that we do not have to start with it. For example: it is true that every sequential program can be regarded as a special case of parallel program. – Is it good idea to start teach with parallel programming?

“My experience suggest that it is better to start with the classical basic concepts and to introduce OO on top of them.” - L. Boeszoermenyi SEE&RE

Zagreb, 5 -12.9.

4

2

Choice of First Programming Language Requirements for the first programming course [1], [4] It must teach the most basic concepts of programming It must teach them in a way that the student can use them as a reference for advanced concepts and advanced programming notions. That makes students understand that programming paradigms and languages and their concepts are under steady development and (hopefully) improvement. SEE&RE

Zagreb, 5 -12.9.

5

Choice of First Programming Language First of all the question is which paradigm to use in first programming course? Procedural Object-oriented Declarative Parallel J

It is necessary to analyze Good and bad features of language Quality, reliability, friendly environment Pascal- like or C (Java)- like languages

SEE&RE

Zagreb, 5 -12.9.

6

3

Choice of First Programming Language 20th edition 4-8-99, of the list of the languages used in the FIRST course for Computer Science majors at Colleges and Universities that have sent in their listing (597 Institutions). Pascal C + C++

148 74 + 103

Ada Modula + Oberon Scheme ML +SML+Haskell Java SmallTalk + Simula

101 50 + 4 53 18 15 5

Other

26

SEE&RE

Zagreb, 5 -12.9.

7

Choice of First Programming Language Modern trends in IT New dimension – complexity of software development Distributed client/server architectures Internet, WWW, E-Business

Some characteristic problems of software development for Internet Security – non-authorized access Lack of specialized language for Internet applications Real interaction in Internet applications Non-portability

Solution? SEE&RE

Zagreb, 5 -12.9.

8

4

Choice of First Programming Language Solution - JAVA? Java is new fashionable, and to argue against fashion is very similar to fighting against the wind J [1]. “Simple” object-oriented language Faster software life-circle - JAVA is interpretative language Portability Application robustness – memory management Better performances for interactive graphics applications Possibility for development of adaptable applications – reactivity to changes in run-time environment Built-in virus protection in JAVA run-time system SEE&RE

Zagreb, 5 -12.9.

9

JAVA in Real-life Applications Types of Java applications Stand-alone applications Applets Java programs as parts of Web documents Java code as a part of HTML documents Interactive applications Games, commercials, home-page refinement, simulations of real-life situations SEE&RE

Zagreb, 5 -12.9.

10

5

Humboldt-University: history of introductory languages in the 1st semester up to 1975:

Algol 60 imperative (algorithmic) languages

1976 – 1984:

Pascal

1985 – 1996:

Modula-2

modularisation, data abstraction

from 1997:

Java

object-orientation

SEE&RE

Zagreb, 5 -12.9.

11

1st reason for switching to Java (Humboldt): students motivation about 1992 – 1996: Students complain about the “outdated” language Modula-2 (outdated = no more used in practice)

Students vote for C, C++ (We argued: C, and thus C++, are too unsystematic from the point of view of education.) SEE&RE

Zagreb, 5 -12.9.

12

6

2nd reason for switching to Java (Humboldt): Java becomes broadly excepted at universities 1995 / 96: A lot of German universities and universities all over the world start with Java in the 1st semester HU students become aware of this development SEE&RE

13

Zagreb, 5 -12.9.

3rd reason for switching to Java (Humboldt): Java becomes broadly excepted in industry 50 44

45

Cobol

C

47

40 30 19

20 10 0

6 Fortran

10

Asmb.

13

14

Delphi / Pascal

PL1

Java

22

Visual Basic

C++

languages used in German industry in 1998 SEE&RE

Zagreb, 5 -12.9.

14

7

4th reason for switching to Java (Humboldt): OO can be introduced from the very beginning Program paradigms: 1960 1980

1986 / 95

imperative / algorithmic modular OO

Many new projects in industry start with OO languages OO prog. should be taught at universities very early

SEE&RE

Zagreb, 5 -12.9.

15

5th reason for switching to Java (Humboldt):

Pre-knowledge of the beginners New students in first semester already know a lot from school and from self-study when they start at university: Pascal, Basic, C, C++, ... New beginners even know Java ...

SEE&RE

Zagreb, 5 -12.9.

16

8

Faculty of Science, Novi Sad: history of introductory languages in the 1st semester 1979-1983: No PL in 1st semester

FORTRAN in 3rd semester

1984–1990: Pascal

Imperative (algorithmic) approach

from 1991: Modula-2

Modularisation, data abstraction

Now:

Java?

SEE&RE

Object-orientation?

Zagreb, 5 -12.9.

17

Reasons for thinking to switch to Java Java becomes broadly excepted at universities Java becomes broadly excepted at industry Pressure of modern world trends in IT and acceptably of Java in IT community Students complain about the “outdated” language Modula-2 and mostly voted for C-like languages Outdated = no more used in practice, not modern(?) We argued: C, and thus C++, are too unsystematic from educational purposes SEE&RE

Zagreb, 5 -12.9.

18

9

Main reasons not to switch to Java as first PL Teaching Java as a part of Programming language course (III, IV semesters). Some of students have no any experience with programming and programming languages. Most of students have pre-knowledge based on imperative (algorithmic) programming languages (Pascal, BASIC, C). Dilemma: whether OO concepts should be taught at universities very early? Modular languages (Pascal, Modula,…) are still very good languages for teaching and learning basic, systematic, algorithmic programming style SEE&RE

Zagreb, 5 -12.9.

19

Java – general opinions: good, bad, ugly - GOOD “Simple”, concise language Implementation of essential concepts of programming languages Compile-time error checking and diagnosis Expressiveness, advanced features Missing pointers Reliable objects – garbage collection Single inheritance, interfaces – multiple inheritance Real portability, exception handling, serialization SEE&RE

Zagreb, 5 -12.9.

20

10

Java – general opinions : good, bad, ugly - BAD C++ syntax Switch statement – unusual semantics Existence of empty statement For (int i=0;i
View more...

Comments

Copyright � 2017 SILO Inc.