260 likes | 417 Views
Transform the theory into practice – Software Design and Architecture for Computer Science Students. Nevena Ackovska /Magdalena Kostoska Faculty of Computer Science and Engineering (FCSE) UKIM, Skopje, Macedonia. Overview. The team Lets start with history… Structure and topics
E N D
Transform the theory into practice – Software Design and Architecture for Computer Science Students NevenaAckovska/Magdalena Kostoska Faculty of Computer Science and Engineering (FCSE) UKIM, Skopje, Macedonia 11th DAAD Workshop on “Software Engineering Education and Reverse Engineering” , Ohrid, Macedonia 22th August – 27th August 2011
Overview • The team • Lets start with history… • Structure and topics • Survey and results
Overview • The team • Lets start with history… • Structure and topics • Survey and results
The team of SDA undergraduate in Skopje • SDA – Software Design and Architecture • Nevena Ackovska • Lectures • Magdalena Kostoska • Theory and practice exercises • PancheRibarski • Stepped in - help with practice exercises (lots of students!!!)
Overview • The team • Lets start with history… • Structure and topics • Survey and results
History – the beggings… • The course become part of the syllabus in 2008 • Our first experience with the course - 2009 • So how do you start? – Learn from others’ experience
Overview • The team • Lets start with history… • Structure and topics • Survey and results
The structure of the course • Week type 2+1+2 • 2 classes lectures • 1 class theoretical exercises (examples) • 2 classes practical exercises (in lab) • In 2009/10: classes scattered during week • In 2011: one course – one day
Topics • Introduction to software architecture, design and patterns • Design patterns • Factory, Prototype, Composite, Adapter, Decorator, Observer, Template Method, Strategy and finally MVC • Refactoring and refactoring patterns • Introduction to refactoring and many refactoring patterns • More about SA modularity, cohesion and examples of specific software architecture Big hit since 2009 Big hit for working students
Literature • Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Addison-Wesley, 1995 • Head First Design Patterns, O'Reilly, Freeman and Freeman, 2004 • Software Design 2nd edition, Pearson, David Budgen, 2003 • Refactoring: Improving the Design of Existing Code by M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts. Addison-Wesley, 2001
Lectures/Exercises • Lectures: theoretical introduction into the given topic + examples of most common application topic • Exercises: wider examples, application specifics, problem space • Laboratory exercises: student are given real-life problems to recognize and evaluate the preconditions of pattern usage; refactoring bad smells etc.. • This enables the students to turn their theoretical knowledge into real-life codes!!!
Grading • Exams (theory + practice) – 60% • Theory exam – 30% • Practical exam – 30% • Homework – 20% • Project – 20 %
Practical tasks • Java based • Design and Patterns usage: • for each of the patterns a specific task is given • the task is connected to everyday problems • Refactoring: • a certain projects in java are given and the task is to refactor the project • The may include student final projects or real-project code (but partially, due to privacy and ownership of company code)
Overview • The team • Lets start with history… • Structure and topics • Survey and results
Survey in 2011… • At the end of the semester a survey was conducted • 32 participants • 10 questions • 1 text field – comments, suggestions and critiques
Survey in 2011- Results • Most of the comments were satisfactory • This shows the we are on a good course • Maybe introduce more patterns • Suggestions: • More examples of patterns usage • More time spending on patterns • Some of the students found the homework and practical exam related to patters too demanding • More classes of lab exercises per week • More rigorous lab exercises
Expectations • Keep up with the trend: Every year - more students • Even some of the older students (that were not able to enroll this course) choose diploma thesis in this course • Due to the requirements they get from work • This prepares students for ADP
The future • Accept and apply the student suggestions • Review the course materials, change the material distribution (as every year) • Maybe: reverse engineering (new idea)
Conclusions • So far, so good • The students should be prepared to work • Homework • Exercises • Projects • Challenge motivates