overview-collected
Download
Report
Transcript overview-collected
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.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
Further steps and Conclusion
DAAD project „Joint Course on OOP using Java“ ©
2
Content
1.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
Further steps and Conclusion
DAAD project „Joint Course on OOP using Java“ ©
3
DAAD project „Joint Course on OOP using Java“ ©
4
DAAD project „Joint Course on OOP using Java“ ©
5
DAAD project „Joint Course on OOP using Java“ ©
6
DAAD project „Joint Course on OOP using Java“ ©
7
DAAD project „Joint Course on OOP using Java“ ©
8
DAAD project „Joint Course on OOP using Java“ ©
9
DAAD project „Joint Course on OOP using Java“ ©
10
Content
1.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
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
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
Content
1.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
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
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
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.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
Further steps and Conclusion
DAAD project „Joint Course on OOP using Java“ ©
20
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
Content
1.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
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
The Object class
All classes inherit
from Object …
DAAD project „Joint Course on OOP using Java“ ©
25
DoME hierarchy
All classes inherit
from Object …
Object
Item
CD
DAAD project „Joint Course on OOP using Java“ ©
Video
26
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
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.
2.
3.
4.
5.
6.
SubProject site
Collected material
Some topics by “Berlin” way
Same topic by “Novi Sad” way
Some Internet material
Further steps and conclusion
DAAD project „Joint Course on OOP using Java“ ©
30
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
• Student is forced to struggle
with terminology
• Puts stress on the Java
programming language
specifics
• More detailed
• Students prefer this way of
presentation
- Most of them like to
minimize home work
- No suitable additional
literature
DAAD project „Joint Course on OOP using Java“ ©
Berlin teaching material
• More interesting
• Much more easy to follow
• Puts stress on the difference
between OOP and other
programming paradigms
• Clearly shows the difference
between Java and Pascal, C
• Introduces some basic data
structures, like stack
32
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