Overview of Collected Java Teaching Materials
Total Page:16
File Type:pdf, Size:1020Kb
Overview of collected Java teaching materials M. Ivanović, N. Ibrajter DAAD Project “Joint Course on OOP using Java” Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Version: Oct. 23, 2003 (D Sep. 22, 2003) Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 2 1 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 3 DAAD project „Joint Course on OOP using Java“ © 4 2 DAAD project „Joint Course on OOP using Java“ © 5 DAAD project „Joint Course on OOP using Java“ © 6 3 DAAD project „Joint Course on OOP using Java“ © 7 DAAD project „Joint Course on OOP using Java“ © 8 4 DAAD project „Joint Course on OOP using Java“ © 9 DAAD project „Joint Course on OOP using Java“ © 10 5 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 11 Collected material Berlin prepared slides in German (based on previous teaching material) N. Ibrajter translated several lessons in English Novi Sad prepared Java book in Serbian (good base for teaching .ppt material) University of Aberdeen (complete .ppt course material from Internet) DAAD project „Joint Course on OOP using Java“ © 12 6 Novi Sad and Berlin Course Differences Both courses cover same topics Presentation will show the differences by the example of one topic Berlin students have the course in 1st and Novi Sad students in 3rd semester Berlin course, mainly concerns to introduce OO programming paradigm Novi Sad course is much more language specific DAAD project „Joint Course on OOP using Java“ © 13 Same Content of the Course Primitive Data Types Operators Operations Statements Object-Oriented Programming in Java Objects Classes References Inheritance Polymorphism Exceptions Inner Classes DAAD project „Joint Course on OOP using Java“ © 14 7 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 15 Topics in English Introduction (1): Objects, Classes, Abstract Data Types (48 slides) Introduction (2): Useful Concepts of OO Paradigm (78 slides) Inheritance (56 slides) Exception Handling (46 slides) DAAD project „Joint Course on OOP using Java“ © 16 8 Introduction (1): Objects, Classes, Abstract Data Types Programming paradigms: imperative and object-oriented Data abstraction – Abstract data types – Classes – Instances Instance variables, instance methods Example: Stack DAAD project „Joint Course on OOP using Java“ © 17 Introduction (2): Useful Concepts of OO Paradigm ADT reuse (classes): • Parenthesis structure checked by a stack • Transformation of recursion to iteration with a stack Comparison of an imperative with an OO program: TimeTable.java, Time.java, Scheduler.java ADT as Java API classes: String Data classes: Pascal, C++ Further concepts: Overloading, this – the actual object, private methods, public variables, alias-problem, lexicographical order DAAD project „Joint Course on OOP using Java“ © 18 9 Inheritance Inheritance • Subclasses • Superclasses • Hierarchy building Simple inheritance (Java) Multiple inheritance (C++) Once more: private, public Æ protected Polymorphism: Method overloading (<> overriding) Class hierarchy and the class ‘Object' Dynamic binding: dynamic search for methods final-methods, abstract classes "Wrapper-classes" DAAD project „Joint Course on OOP using Java“ © 19 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 20 10 NS Course – OO Paradigm and Its Concepts 1/2 19 slides 8 code slides, the rest are textual slides No pictures Strictly Java language specific On quite a high level considering terminology Cover OOP paradigm, notion of object, class and reference DAAD project „Joint Course on OOP using Java“ © 21 NS Course – OO Paradigm and Its Concepts 2/2 Basic philosophy – “structuring programs in a way the objects are organized in a real world” Creating and using types that group data and code segments which use the data Type values are called instances Basic notions of OO programming style: • object •class • inheritance DAAD project „Joint Course on OOP using Java“ © 22 11 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and Conclusion DAAD project „Joint Course on OOP using Java“ © 23 Chapters 8 and 9 Inheritance Inheritance Method Subtyping polymorphism Substitution Overriding Polymorphic Dynamic method variables lookup Static and dynamic type DAAD project „Joint Course on OOP using Java“ © 24 12 The Object class All classes inherit from Object … DAAD project „Joint Course on OOP using Java“ © 25 DoME hierarchy All classes inherit Object from Object … Item CD Video DAAD project „Joint Course on OOP using Java“ © 26 13 Polymorphic variables Instance variables in Java can be polymorphic. (They can refer to objects of more than one type – but not simultaneously!) They can hold instances of the declared type, or of subtypes of the declared type. This is another example of substitution. DAAD project „Joint Course on OOP using Java“ © 27 Adding items to an ArrayList public class Database{ private ArrayList items; … public void addItem(Item theItem) { items.add(theItem); } ... } Sometimes contains a CD, sometimes a Video DAAD project „Joint Course on OOP using Java“ © 28 14 Subtyping and assignment subtype instances may be assigned to supertype variables (substitution again) Vehicle v1 = new Vehicle(); Vehicle v2 = new Car(); Vehicle v3 = new Bicycle(); DAAD project „Joint Course on OOP using Java“ © 29 Content 1. SubProject site 2. Collected material 3. Some topics by “Berlin” way 4. Same topic by “Novi Sad” way 5. Some Internet material 6. Further steps and conclusion DAAD project „Joint Course on OOP using Java“ © 30 15 Further Steps and Conclusion Courses organize content of the topics by different criteria The main impression is that the major goal of the Berlin course is to offer a student a clear overview of the OOP using Java • First semester, first programming language NS course goal, on the other hand, is to deeply involve students with the Java programming language specifics • Third semester, second programming language DAAD project „Joint Course on OOP using Java“ © 31 Conclusion NS teaching material • More compact Berlin teaching material • Student is forced to struggle •More interesting with terminology • Much more easy to follow • Puts stress on the Java • Puts stress on the difference programming language between OOP and other specifics programming paradigms • More detailed • Clearly shows the difference • Students prefer this way of between Java and Pascal, C presentation • Introduces some basic data - Most of them like to structures, like stack minimize home work - No suitable additional literature DAAD project „Joint Course on OOP using Java“ © 32 16 General Idea about Course Material Prepare a collection of different topics and concepts (just language, emphasize on OO design and style of programming, advanced topics, some real complex applications,…). Use different versions of the same topics (Berlin. Novi Sad, Timisoara, Belgrade, Skopje,…) Prepare complete materials for various stiles of courses • Kernel of same basic topics • Material for a general course on Java programming language • Material for OO programming course •… Possibility to prepare different courses based on available material (lecturer can make specific selection) DAAD project „Joint Course on OOP using Java“ © 33 17.