Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 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 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 results 1) easier understanding the OO paradigm - with Java 2) 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 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 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 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 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 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 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 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 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 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 13 So, on Dessign Patterns Benefits of introduction of DP in the first OOP course 1. 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 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 15 Impact on the “Data Structures and Algorithms “ course DSA 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 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 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 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 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 20 Part of the questions 1. 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 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 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 23 Java vs. C++  Java 2010/2011  86/142  61%  C++ 2009/2010  103 / 116  88% 2008/2009  100/212  47%

24 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 5 th semester NOW – in the 2-nd semester, course OOP

25 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 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 27 Thank you! Now: Time for questions


Download ppt "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."

Similar presentations


Ads by Google