daad project “joint course on oop using java” development in teaching design patterns in the...

27
DAAD project “Joint Course on OOP using Java” Development in teaching Design Patterns in the course OOP with Java Ana Madevska Bogdanova Faculty of Computer Science and Engineering Skopje, Macedonia

Post on 18-Dec-2015

224 views

Category:

Documents


2 download

TRANSCRIPT

DAAD project “Joint Course on OOP using

Java”

Development in teaching Design Patterns in the course OOP with Java

Ana Madevska Bogdanova

Faculty of Computer Science and Engineering

Skopje, Macedonia

2

Agenda Recapture - the motivation The second generation with OOP with Java

and Dessign Patterns Impact of having OOP with Java to DSA Inquery – student opinion Expected results

3

The saga – after two years First time introduced the idea – Neum 2009

How about if we teach Java in the first OOP course Second semester

How about if we introduce pattern design in the same course

Expected results1) easier understanding the OO paradigm

- with Java2) Sooner understanding the world of real programming

- The Design Patterns 3) Easier and deeper comprehending the course “Data

Structures and Algorithms” in the next semester Used to be: in the same course

First learn Java Then data structures with Java

4

What did you think about the idea? Warm afternoon in Neum … You were suspicious You were worried if it is too soon to talk

about the dessign patterns in the first Java course

5

Agenda Recapture - the motivation The second generation with OOP Java

and Dessign Patterns Impact of having OOP with Java to DSA Inquery – student opinion Expected results

6

What has happened?

Two years ago (two generations) We introduced Java in the course ‘Object oriented

and visual programming‘ It is THE first OOP course It is the second semester

7

The realization of the idea NOW:1. the existing course in OO programming is

shifted C++ Java.2. The general plan of the course stayed the

same Encapsulation Polymorphism Inheritance

With a CHANGE: we replaced some topics of the previous ‘OOP with C++’ course with the introduction of the

… DESIGN PATTERNS!

8

Introducing the Design Patterns Implemeted the idea :

In the OO programming course we can introduce some problems and discuss them with the students

How to create OO model – to go through the process of OO modeling

9

How did we introduce DP in a painless way? After the common Java beginners course The DP were incorporated in the last 5

classes of the course. Learn about ONE design pattern Starting from scratch Choosing interesting problem

Discuss with the students every step of developing the model by putting different subproblems as new requirements for the model

10

Design Pattern - Strategy First – hierachy Superclass that contains methods common

for each of the subclasses But with speciffic behavior

Students propose to extract them as interfaces

Thay have to change a lot Good idea to program in the interfaces…

11

The NEW lesson is learned Learned how to program in the interface

Not the construction Interface in Java Answer – to program in the classes that

implemets the interfaces Defines family of algorithms – classes that

implements the interfaces Encapsulates each of them Enables robust changing

Connects them with the beginning hierarchy.

12

Student opinion:YES – the introduction of Design patterns was a

good idea “Great finish for the OOP course, it helped me

to see ‘the big picture’” “DP are helpful. It is good that they are

introduced in the first year, it helped me to manage bigger projects and programming tasks in the latter courses.”

“I had pratctice in an IT company, DP helped me to understand their work” In the third semester

13

So, on Dessign PatternsBenefits of introduction of DP in the first

OOP course1. This state of mind helps to understand other

principles in other courses (even in the 3-rd and 4-th semestar)

2. It helps them to deal with their projects in the other courses

3. It helps them to have succesful pactice work in the IT companies Obligatory for every student

4. Prepares the students to be ready to learn more design patterns in the latter courses

14

Agenda Recapture - the motivation The second generation with OOP Java and

Dessign Patterns Impact of having OOP with Java to

Data Structures and Algorithms” Inquery – student opinion Expected results

15

Impact on the “Data Structures and Algorithms “ courseDSA is in one semester latter – third

semester

The intention: Learning JAVA in the first OOP course would

make ‘Data Structures and Algorithms’ course more comprehendible in the third semester

Students didn’t have to learn the basics of JAVA, they used it immediately for simulating data structures included the course

16

Student’s Opinion

“I didn’t have problems with the programming in DS, because I knew the basics of Java from the OOP course”

“This is my second time taking DSA, mostly because I had C++ in the OOP course and it took me time to learn Java and DSA”

… similar

17

The goal is REACHED The problem with the course Data Structures and

Algorithms (DSA) - third semester is OVERRIDEN - Basics of Java is already known

Even the concept od Design patterns Data structures in Java are covered from the beginning of

the course About student projects DSA – on Thursday

We have changed the DSA course in the practice part, because teaching basic of Java is removed

The idea of introducing JAVA in the first year (second semester) was SUCCESFUL

18

Agenda Recapture - the motivation The second generation with OOP Java and

Dessign Patterns Impact of having OOP with Java to DSA Inquery – student opinion Expected results

19

Two ways of measuring the results

Two qeistioners OOP course (for second time) DSA course (for first time)

Using a qeistioner If the second generation thinks the same ? If last year’s first generation finds

Easier to cope with DSA

20

Part of the questions1. Was it difficult to learn about the Pattern

Design?YES 57%NO 23%

2. Was it revealing to go further, not only to learn the OOP basics?

YES 100%NO 0%

21

As last year, the second generation… thinks the same: 100 % - found to be interesting to talk about

the problem and the DP 90% - could understand the problem and to

follow the line of the solution 20% - understood the complete DP we

worked through Including the new elements that weren’t covered

in the previous sections of the OOP course The same percentage of students that understand

ANY new concept when it is introduced for the first time

22

The results of introducing JAVA and Design Patterns in JAVA As mentioned in the motivation part

Students to embrace the higher level of producing OO modeling early - in their first OO course

They will be ready to learn more OO design patterns in the latter courses

Ready to develop OO models on their own in the different courses in the latter semesters.

23

Java vs. C++ Java

2010/2011 86/142 61%

C++ 2009/2010

103 / 116 88%

2008/2009 100/212 47%

24

Introduction of DP - Solution of another existing problem… It is never to early to introduce the

thinking in the design pattern level Until …

Four uears ago – master level Two years ago - the 5th semester NOW – in the 2-nd semester, course OOP

25

Conclusions 1. The questionnaire has showed that introducing

the DP has broaden students mind 2. Using a right example with the guidance from

the teacher, students are able to Understand the problem To see the limitations of the ‘obvious’ solution To suggest change in the current solution Understand the whole process of thinking to come to the

right solution Learned something new – programming in interfaces Managed to recognize different design patterns in other

problems in their latter courses and practice in IT companies

the course DSA is easier to comprehend

26

Yet to see if …

… OOP is easier to understand with Java

or C++

… (this year) the “Software design and Architecture “ course where more design patterns are learned will be easier to understand Easier to learn more Design Patterns

27

Thank you!

Now: Time for questions