DAAD project “Joint Course on OOP using Java” Design Patterns in the course ‘OOP in Java’ - first experiences Ana Madevska Bogdanova Institute of informatics.

Slides:



Advertisements
Similar presentations
Reading to Learn in all content areas
Advertisements

Apprenticeship and Workplace Mathematics Meeting the Needs of Today’s Students.
Project Proposal.
Learning and Teaching Conference 2012 Skill integration for students through in-class feedback and continuous assessment. Konstantinos Dimopoulos City.
Nevena Ackovska/Magdalena Kostoska Faculty of Computer Science and Engineering (FCSE) UKIM, Skopje, Macedonia 11 th DAAD Workshop on “Software Engineering.
Antonio Anne Margarette Madalang Kyle Marron Ritual Krizza
Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.
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.
Group 7. Goals and Objectives to teach the children about genes and how different combinations produce different offspring. To help children easily recognize.
Nevena Ackovska Institute of Informatics FNSM, UKIM, Skopje, Macedonia.
Language of Meetings PPTX What needs to be said?.
Dept. of Computer Engineering, Amirkabir University of Tech. 1 Design Patterns Dr. Noorhosseini Introduction.
Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Design Patterns: someone has already.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
By Jennifer Adams. The traditional approach (or algorithm) for large number division is the most abstract and difficult approach to division. Yet many.
Test Preparation Strategies
INFLUENCE OF UNDERGRADUATE COURSE SOFTWARE DESIGN AND ARCHITECTURE TO POSTGRADUATE COURSE ARCHITECTURE, DESIGN AND PATTERNS Magdalena Kostoska Nevena Ackovska.
Student view of SE study program at FER, Zagreb Ivan Belfinger Mentor: prof. dr. sc. Krešimir Fertalj Faculty of Electrical Engineering and Computing,
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE Ana Madevska Bogdanova, FCSE, Skopje, Macedoia.
COMP 121 Week 02. Agenda Review this week’s expected outcomesReview this week’s expected outcomes Review Guided Learning Activity solutionsReview Guided.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Feb. 10, 2009 Math Resource Review Day Moving Math Forward in SD71 Charles Schilling, Highland.
Chapter 1: Introduction to Design Patterns. SimUDuck Example.
An analysis of exam results in the Object-Oriented Programming course at „Politehnica” University of Timisoara Ioan Jurca.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SEE&REZagreb, On the course architecture and course homepage Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
DAAD project “Joint Course on OOP using Java” On Object Oriented modeling in Java (Why & How) Ana Madevska Bogdanova Institute of informatics Faculty of.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
DAAD project “Joint Course on OOP using Java” Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of.
Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of Plovdiv, University of Belgrade DAAD project “Joint.
HOW TO TEACH WRITING IN A NON-ELA SETTING District Learning Day 10:20-11:30 August 5, 2015.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
1 6th Workshop "SEERE", Ravda, September 2006 OOJava course materials – what happened during last year? M. Ivanovic, K. Bothe.
Object Oriented Modeling David Li CTO, DigitalSesame.
Design Patterns Introduction “Patterns are discovered, not invented” Richard Helm.
The influence of the new administrative law upon teaching OOP course Ana Madevska Bogdanova Nevena Ackovska University “Sts. Cyril and Methodius”, Skopje,
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
Watching the movie the hard way…. Page 256 – Head First Design Patterns.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
Five Minute Design Patterns Doug Marttila Forest and the Trees May 30, 2009 Template Factory Singleton Iterator Adapter Façade Observer Command Strategy.
SFTW241 Programming Languages Architecture 2002~2003 Semester II Duration: 2003/2/11~ 2003/4/11 University of Macau Faculty of Science and Technology Computer.
An object's behavior depends on its current state. Operations have large, multipart conditional statements that depend on the object's state.
DAAD project “Joint Course on OOP using Java” Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of.
Industrial Group Project Introduction to Object Oriented Programming Adelina Basholli, February, 2016.
Course Code : 15ECSC204 Object Oriented Progamming.
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
SE 461 Software Patterns Welcome to Design Patterns.
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Design Patterns: MORE Examples
CompSci 280 S Introduction to Software Development
CSC 222: Computer Programming II
Strategy Pattern.
Chapter Nine The Strategy Pattern
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
CSC 222: Object-Oriented Programming
Strategy Design Pattern
Objects First with Java A Practical Introduction using BlueJ
Object Oriented Practices
OOP vs Structured Programming
Experiment with course materials concerning ‘Threads’
Objects First with Java A Practical Introduction using BlueJ
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
Objects First with Java A Practical Introduction using BlueJ
Presentation transcript:

DAAD project “Joint Course on OOP using Java” Design Patterns in the course ‘OOP in Java’ - first experiences Ana Madevska Bogdanova Institute of informatics Faculty of Natural Sciences and Mathematics Skopje, Macedonia

DAAD project „Joint Course on OOP using Java“ © 2 Agenda  The motivation  The need of introducing design patterns in the first year of studies  Incorporation of the design patterns in the concepts of the existing OOP course  Expected results

DAAD project „Joint Course on OOP using Java“ © 3 The motivation (last year)  We had a problem with the course Data Structures and Algorithms (DSA) - third semester in the same course -First learn Java -Then data structures in Java  The reality (till last year): The first two courses in the first year -I. Structured programming (C++) -II. Object oriented and visual programming (C++) The second course, OOP -Encaptulation -Inheritance -Polymorphism -Solving problems = coding when given OO Design - scheme

DAAD project „Joint Course on OOP using Java“ © 4 The solution of the problem  Last semester We introduced Java in the course ‘Object oriented and visual programming‘ It is THE first OOP course It is the second semester

DAAD project „Joint Course on OOP using Java“ © 5 Agenda  The motivation  The need of introducing design patterns in the first year of studies  Incorporation in the concepts of the existing OOP course  Expected results

DAAD project „Joint Course on OOP using Java“ © 6 Another existing problem…  Thinking in the design pattern level  Introduced in the course of software engineering in the 5 th semester Software design and architecture  In the first two programming courses the students mind is focused only on technical clarity in developing the OO system

DAAD project „Joint Course on OOP using Java“ © 7 Introducing design patterns in the first semester  What if we introduce DP in the FIRST semester?  Last year’s 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 To broaden their point of view for the proper programming To be ready to learn more design patterns in the latter courses

DAAD project „Joint Course on OOP using Java“ © 8 The realization of the idea  NOW: 1. the existing course in OO programming is shifted towards  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!

DAAD project „Joint Course on OOP using Java“ © 9 What did we change with the course?  First: Learn about -Encapsulation -Polymorphism -Inheritance  The introduction of Design Patterns The students were presented a problem and asked to BUILD the OO model

DAAD project „Joint Course on OOP using Java“ © 10 Agenda  The motivation  The need of introducing design patterns in the first year of studies  Incorporation of the concepts in the existing OOP course  Expected results

DAAD project „Joint Course on OOP using Java“ © 11 Some facts  The design pattern part was incorporated in the last 5 classes of the course.  By that time students had the opportunity to experience the OO programming Programming in NetBins environment

DAAD project „Joint Course on OOP using Java“ © 12 The levels of the OOP with Java - course  1. OO basics encapsultion, polymorphism, inheritance, also: interfaces, downcasting, exceptions  2. OO principles  3. Introducing the OO design patterns 1. Strategy -Defines a family of algorithms, encapsulates each one, and makes them interchangable - let the algorithm vary independently from clients that use it

DAAD project „Joint Course on OOP using Java“ © 13 How we did that?  So, after the common Java beginners course Introduction of the DESIGN PATTERNS  The idea is to learn 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 The model must develop with the new requirements

DAAD project „Joint Course on OOP using Java“ © The Strategy pattern  Along the way the students will understand the main OO principles - why to develop the software in that particular way 1. Encapsulate what varies 2. Program to interfaces, not implementation 3. Favor composition over inheritance

DAAD project „Joint Course on OOP using Java“ © 15 Simple problem  We chosed a simple problem  To explain the students that the only thing that we can be certain about - is the change in every software development  No matter how well one designs an appliication, it must grow and develop over time  So, the design pattern we worked with was about flexibility in the OO model

DAAD project „Joint Course on OOP using Java“ © 16 Have we succeeded?  On every step of the presentation, students were asked a question – how to proceed.  Usually there were 2-3 ideas Additional question leaded to the correct answer The class had a good dynamics, everybody understood the ‘story’ and the line of the problem’s solution.

DAAD project „Joint Course on OOP using Java“ © 17 Was there a lot of new material?  Almost everything that was needed for the introduction of this Pattern Design was already incorporated into the course Classes with inheritance Interfaces -within the inheritance model  The new part: The need of building classes of behavior that are different for the subclasses from the Problem hierarchy New hierarchy of behavioral classes -In the subclasses is the different behavior Introduction of variables in the Problem hierarchy classes that will connect with the classes from the Behavior hierarchy ONLY the last part was a technique that wasn’t covered in the previous material from the course

DAAD project „Joint Course on OOP using Java“ © 18 Agenda The motivation  The need of introducing design patterns in the first year of studies  Incorporation of the concepts in the existing OOP course  Expected results

DAAD project „Joint Course on OOP using Java“ © 19 Facts  Till last year C++  This year Java  Different students  The number of measured results (from the Java’s exams) is not statistically significant.

DAAD project „Joint Course on OOP using Java“ © 20 Two ways of measuring the results  1. Too few data at the presenter’s disposal Students results -2008, 2009 with C with Java, still not finished with the exams -No statistical significance in comparing the results from different generations  The first year students 2 Groups of 80 students  2. Using a questionnaire How did everybody like the introduction to the design patterns? The ultimate answer will be answered after the next course “Software design and architecture” – in their 5-th semester – next year

DAAD project „Joint Course on OOP using Java“ © 21 The questions  1. What is the level of difficulty of the course content? 1(easy) to 5 (very hard) 2. Do you need more previous knowledge to be able to understand this part of the course? 3. Was it difficult to learn about a pattern design? 4. Was it revealing to go further, not only to learn the OOP technique?

DAAD project „Joint Course on OOP using Java“ © 22 The questions  1. What is the level of difficulty of the course content? 1(easy) to 5 (very hard) 5 15% 4 34% 3 42% 2 9 % Do you need more previous knowledge to be able to understand DP part of the course? YES 33% NO 67%

DAAD project „Joint Course on OOP using Java“ © Was it difficult to learn about a pattern design? YES 66% NO 34% 4. Was it revealing to go further, not only to learn the OOP technique? YES 100% NO 0%

DAAD project „Joint Course on OOP using Java“ © 24 In other words  100 % - found to be interesting to talk about the problem and the DP  85% - could understand the problem and to follow the line of the solution  15% - 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

DAAD project „Joint Course on OOP using Java“ © 25 About the understanding part…  Students were asked this questions immediately after the finishing of the DP part of the course  Bigger percentage of correct answers on the exam After they have studied the problem on their own

DAAD project „Joint Course on OOP using Java“ © 26 Expected 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.

DAAD project „Joint Course on OOP using Java“ © 27 Expected results of introducing JAVA and design patterns in JAVA  Learning JAVA in this course will make ‘Data Structures and Algorithms’ course more comprehendible in the third semester -Students wouldn't have to learn the basics of JAVA, they will use it for simulating data structures covered with the course  Next semester (starting this month) we will see if the students are ready to start to program data structures immediately within the course DSA

DAAD project „Joint Course on OOP using Java“ © 28 Conclusions  1. Too few data at the presenter’s disposal to see if this approach (Java & Design Pattern) is success -No statistical significance in comparing the results from past generations  2. EASY transition from C++ to Java  3. The questionnaire has showed that introducing the DP has broaden students mind  4. Through right example with the leading 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 To clarify the right way by discussion and ‘clever’ questions from the teacher Understand the whole process of thinking to come to the right solution Hopefully to recognize this pattern in other problems and to use this pattern as a solution at hand

DAAD project „Joint Course on OOP using Java“ © 29 Yet to see if …  … the next course DSA (the following semester) will be easier to comprehend  … OOP will be easier understood with Java or C++  … the SE course where more design patterns are thought will be easier to be understand Easier to learn more of Design Patterns

DAAD project „Joint Course on OOP using Java“ © 30 Thank you! ? ?