250 likes | 261 Views
This talk discusses the educational experiences and outcomes of a course on distributed network applications development, including the motivation, topics covered, prerequisites, goals, and assessment.
E N D
Distributed Network Applications Development -- Educational Experiences Costin Bădică and Sorin Ilie University of Craiova Faculty of Automation, Computers and Electronics Computers and Information Technology Department 13th Workshop Software Engineering Education and Reverse Engineering
Talk Outline • Introduction • Overview • Experience • Conclusions 13th Workshop Software Engineering Education and Reverse Engineering
Introduction - Motivation • CS curricula recommendations are continuously developed by ACM and IEEE • CS Body Knowledge (2013) • 18 Knowledge Areas KA • Knowledge Units KU • Topics • Learning Outcomes • Levels of mastery: • Familiarity • Usage • Assessment 13th Workshop Software Engineering Education and Reverse Engineering
Introduction - Motivation • Knowledge Areas Updates: • KA: Networking and Communication (NC) • It was split, because of growth and divergence, and part of it was included in PBD • KA: Platform-Based Development (PBD) • New KA, mainly from NC • KA: Parallel and Distributed Computing (PD) • New KA, collected topics previously distributed in other KAs 13th Workshop Software Engineering Education and Reverse Engineering
Introduction - Motivation • Distributed Networks Application Development • New course introduced in 2002 • It was planned to address the requirements of introducing students to the principles, methods and technologies of distributed software development • Alignment as much as possible with CS curricula recommendations from ACM and IEEE 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Prerequisites • Location in curricula: • Main trunk • 3rd year, 6th semester • No mandatory prerequisites. All the courses before DNAD are in the main trunk, i.e. they are mandatory by default • Some courses must be passed before DNAD: • Operating systems • Object-oriented programming • Courses that benefit from DNAD: • Electronic Commerce • Web Application Design 13th Workshop Software Engineering Education and Reverse Engineering
Overview - Goals • To introduce the principles of distributed software • To introduce the basic technologies of distributed software with a focus on core middleware technologies based on Internet • To provide an opportunity to obtain practical experience in applying these techniques for programming small-scale distributed software applications 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Topics I • Distributed systems • Definition, classification and characteristics • Models of DS • Physical, architectural, fundamental • Inter-process communication in DS • TCP, UDP, group communication • Core technologies for Web-based DS • HTML/CSS, XML, HTTP, Web clients and servers • Servlets and Apache/Tomcat 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Topics II • Object-based DS and RMI • Design of RMI • Programming Java RMI • P2P systems • Structured and unstructured • Agent-based DS • FIPA and JADE • Web Services • Concepts and standards • Axis2 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Relation to CS BK • KA: Networking and Communication (NC) • KU: NC/Networked Applications • KA: Platform-Based Development (PBD) • PBD/Introduction • PBD/Web Platforms • PBD/Mobile Platforms • KA: Parallel and Distributed Computing (PD) • PD/Distributed Systems • PD/Cloud Computing 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Structure • No single textbook, although a good base is the CDK5 book. • 2 modules: • Course (4 ECTS - European Credit Transfer and Accumulation System points) • Project (1 ECTS points) • Both have a duration of 14 weeks: • Course: 2 h lectures/week (28h) + 2 h lab/week (28h - mandatory) • Project: 1 h project/week (14h) 13th Workshop Software Engineering Education and Reverse Engineering
Overview – Grading • Final exam (60%) • Questionnaire (30%) • Knowledge questions • Apply skills (30%) • Exercise: design a small-scale distributed software application • Laboratory assignments (40%) • 5 assignments (8% each) 13th Workshop Software Engineering Education and Reverse Engineering
DNAD 2011/2012 • 41 enrolled students • 1 student withdrew • 32 did less than half of the laboratory assignment work 13th Workshop Software Engineering Education and Reverse Engineering
Sample Knowledge Questions • Enumerate 3 architectural patterns of DS? • Define communication cost of a distributed algorithm? • What is the role of the dispatcher object in RMI? • When is interaction history necessary in request-reply protocol? 13th Workshop Software Engineering Education and Reverse Engineering
Source agent Agent 1 Agent 2 Agent 3 ‘Apply skills’ Exercise • Each Agent is specialized in performing a single type of task • Tasks are ‘injected’ by Source agent. Results are returned to Source agent. • Each Agent has an Executor and a Transceiver. • The Executor can be free or busy. • Transceiver gets a task from left Agent, assigns them to the Executor if it is free or passes it to the right Agent if Executor is busy. If there is no left Agent it returns error to the right Agent. • Transceiver returns to the left Agent any message received from the right Agent. • Agent types? Interaction protocols? Agent behaviors? DS with 2 agents specialized in t1 and 2 agents specialized in t2. • Source randomly injects 3 messages with task t1 and 2 messages with task t2 at each 1ms. 13th Workshop Software Engineering Education and Reverse Engineering
Laboratory Assignments • Initiate a ping protocol between distributed software entities using the following technologies: • Java Sockets • Java RMI • Java Servlets • Web services • JADE agents • Bonus challenges = tasks for extra credit • send an e-mail • invoke a service that gives location by IP • etc. 13th Workshop Software Engineering Education and Reverse Engineering
Project Assignment I • Each student had to implement a FIPA protocol of his/her choice using the technology of their choice. • The number of interacting entities had to be varied from 10, 50, 100, 500, until loss of messages or other fatal error occur. • The students must deliver a technical report including their conclusions and experimental data. 13th Workshop Software Engineering Education and Reverse Engineering
Project Assignment II • The program must execute and the student must be able to answer a simple question to determine code ownership, in order for the project to be evaluated. The grade is then based on the quality of the report, covering: • Structure • Readability • Experiment description including experimental data 13th Workshop Software Engineering Education and Reverse Engineering
Lab Progress Monitoring • Column height increases when student gets credit for his/her work. • Making progress public generates competition 13th Workshop Software Engineering Education and Reverse Engineering
Exam Grades • Average grade for exam 8.1 • All students passed • 11 marks of 10 13th Workshop Software Engineering Education and Reverse Engineering
Conclusions – Students Liked • The first labs where they got very detailed instructions • Knowing their grades in real time and monitoring their progress • Receiving personal attention from the lab assistant • The bonus challenges for extra credit in lab assignments 13th Workshop Software Engineering Education and Reverse Engineering
Conclusions – Students Hated • The increasingly vague programming instructions in the presentation of lab assignments • That the documentation of the project was the main criteria of evaluation of their work • Writing the documentation of the project • When lab assistant answered their questions with other questions • Getting points deducted when presenting their work late 13th Workshop Software Engineering Education and Reverse Engineering
Conclusions – Difficulties • Writing a proper documentation • Performing experiments and collecting experimental data • Implementing anything without very specific instructions 13th Workshop Software Engineering Education and Reverse Engineering
Other Conclusions • Maybe the grades are were a bit high, although we think that the course was successful as all the students passed. • The students do not achieve good practical results unless they are guided at each step with detailed instructions. • For motivation we plan to challenge students with 1-2 more practical laboratory assignments. • Students perform very weak in writing the project report. They preferred a lower grade rather than spending more time to improve the project report. 13th Workshop Software Engineering Education and Reverse Engineering
13th Workshop Software Engineering Education and Reverse Engineering