August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

Slides:



Advertisements
Similar presentations
CS1203 SCCC/ATS COURSE SYLLABUS Introduction to Computer Concepts and Applications Revised 8/16/2014 Online 7/14 revision Ed Hall Instructor.
Advertisements

Nevena Ackovska/Magdalena Kostoska Faculty of Computer Science and Engineering (FCSE) UKIM, Skopje, Macedonia 11 th DAAD Workshop on “Software Engineering.
ECE 355 Introduction to Computer Networks and Data Communications
Software Engineering at Faculty of EE in Belgrade Prof. Dr Miroslav Bojovic Baile Herculane, August 2005.
11th Workshop "Software Engineering Education and Reverse Engineering" Ohrid, Macedonia August 2011 Selected student software projects in the field.
Two e-Learning elective seminars in Novi Sad Putnik Z., Komlenov Ž., Budimac Z. DMI, Faculty of Science University of Novi Sad.
Web Design! John Paxton Montana State University - Bozeman CCSC Northwestern Region Saturday, October 8 th, 2004.
Welcome to CS697B! Special Topics on Concurrent and Distributed Systems Tue Thu 8:30pm to 9:45 :-(
: Distributed Systems Dr. Rajkumar Buyya Senior Lecturer and Director of MEDC Course Grid Computing and Distributed Systems (GRIDS) Laboratory Dept.
General information CSE 230 : Introduction to Software Engineering
Revision Week 13 – Lecture 2. The exam 5 questions Multiple parts Read the question carefully Look at the marks as an indication of how much thought and.
Lecture 1: IntroductionIntro to IT COSC1078 Introduction to Information Technology Lecture 1 Introduction James Harland
Addressing software engineering issues in student software projects across different curricula Dušanka Bošković Computing and Informatics Bachelor Programme.
BORIS MILAŠINOVIĆ FACULTY OF ELECTRICAL ENGINEERING AND COMPUTING UNIVERSITY OF ZAGREB, CROATIA Experiences after three years of teaching “Development.
CSS-304: Computer Systems Interface Duisebekov Zhasdauren Faculty of Engineering Suleyman Demirel University.
10th Workshop "Software Engineering Education and Reverse Engineering" Ivanjica, Serbia, 5-12 September 2010 First experience in teaching HCI course Dusanka.
.NET Mobile Application Development Remote Procedure Call.
2° cycle degree programme (lm) in Telecommunications Engineering Principles Models and Applications for Distributed Systems Prof. Maurelio Boari
1 OO Java, Baile Herculane, Romania, 2005 OO Java Requirements Specification - Produce highly adaptable teaching materials - 1 st step: collect all useful.
Tools of the Trade: Using Technology in Your Course Tools of the Trade: Using Technology in Your Course 1 Ms. Darla Runyon Assistant Director/Curriculum.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.
Warren County Middle School Business And Information Technology Program “ A Different Approach”
Computer Network Fundamentals CNT4007C
Instructional Plan Template | Slide 1 AET/515 Instructional Plan Advanced Enterprise Java Platform Class and Lab Mark K. Reha.
1 USING EXPERT SYSTEMS TECHNOLOGY FOR STUDENT EVALUATION IN A WEB BASED EDUCATIONAL SYSTEM Ioannis Hatzilygeroudis, Panagiotis Chountis, Christos Giannoulis.
CE0825 Object-Oriented Programming 2 © Allan C. Milne Abertay University v
Computer Networks Paper Coordinator: Dr. Napoleon H. Reyes, Ph.D. Computer Science Institute of Information and Mathematical Sciences Rm
GROUP PROJECTS IN SOFTWARE ENGINEERING EDUCATION Jiang Guo Department of Computer Science California State University Los Angeles April 3-4, 2009.
Information Security and Computer Systems: An Integrated Approach Mark A. Holliday and Bill Kreahling, Dept of Mathematics and Computer Science Western.
August 27, th Workshop Software Engineering Education and Reverse Engineering Role of Agent Middleware in Teaching Distributed Network Application.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
WXGE 6103 Digital Image Processing Semester 2, Session 2013/2014.
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Tuesday from 12:05-1:05 and Thursday from 11:05-1:05.
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
Introduction to Grid Computing to students attending Concurrent and Distributed Programming courses Zaharije Radivojević School of Electrical Engineering.
Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of Plovdiv, University of Belgrade DAAD project “Joint.
1 CS6320 – SW Engineering of Web- Based Systems L. Grewe.
Welcome! CSI 4118: Computer Networks and Protocols (3,0,0) Professor: Dr. Robert L. Probert Office: SITE 5098 Phone: x6709
CSC 450/550 Part 1: Introduction. CSC 450/550 Summary (1)Contact information (2)Course objective and topics (3)Course evaluation (4)* The layering principle.
Computer Science, FSU1 CNT5505 DATA/COMUTER COMMUNICATIONS FALL 2008 Time: 3:35AM-4:50AM, MW Location: Love 103 Fall 2008, 3 credits.
Most of contents are provided by the website Introduction TJTSD66: Advanced Topics in Social Media Dr.
CSE 1105 Week 1 CSE 1105 Course Title: Introduction to Computer Science & Engineering Classroom Lecture Times: Section 001 W 4:00 – 4:50, 202 NH Section.
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment.
REVIEW OF ACTIVITIES OF THE WORK GROUP FOR INTERNET AND e -TECHNOLOGIES Prof. Dr Milena Stanković Faculty of Electronic Engineering TEMPUS Project CD-JEP.
Introduction & Overview Prepared by: TGK First Prepared on: Last Modified on: Quality checked by: Copyright 2009 Asia Pacific Institute of Information.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
1 CDA 4527 Computer Communication Networking (not “analysis”) Prof. Cliff Zou School of Electrical Engineering and Computer Science University of Central.
Computer Science, FSU1 CNT5505 DATA/COMUTER COMMUNICATIONS Fall 2010.
1 CNT 4704 Analysis of Computer Communication Networks Cliff Zou Department of Electrical Engineering and Computer Science University of Central Florida.
Computer Networks CNT5106C
A Multi-Agent and Service-Oriented Architecture for Developing Integrated and Intelligent WBES Computing and Information Systems Oscar Lin Peter Holt.
1 Welcome to COE 431: Computer Networks Instructor: Wissam F. Fawaz Office 103, Bassil Bldg. Required.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Distributed Systems 0. Overview Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015.
INTE 290 Summer 2015.
Introduction to Web Technologies Module Introduction to Web Technologies – CS th January 2005 Dr Bogdan L. Vrusias
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Yvon Kermarrec Telecom Bretagne Institut Mines Télécom
Computer Networks CNT5106C
NWEN 243 Network Applications
Artificial Intelligence (CS 461D)
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Teaching Java with the assistance of harvester and pedagogical agents
CSS-304: Computer Systems Interface
DT001A, Simulation of communication systems, 7.5 ECTS
Presentation transcript:

August 30, th Workshop Software Engineering Education and Reverse Engineering1 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 2 Talk Outline Introduction Overview Experience Conclusions

August 30, th Workshop Software Engineering Education and Reverse Engineering 3 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 4 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 5 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 6 Overview – Prerequisites Location in curricula:  Main trunk  3 rd year, 6 th 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 7 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 8 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 9 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 10 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 11 Overview – Structure No single textbook, although a good base is the CDK5 book.CDK5 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)

August 30, th Workshop Software Engineering Education and Reverse Engineering 12 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)

August 30, th Workshop Software Engineering Education and Reverse Engineering 13 DNAD 2011/ enrolled students 1 student withdrew 32 did less than half of the laboratory assignment work

August 30, th Workshop Software Engineering Education and Reverse Engineering 14 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?

August 30, th Workshop Software Engineering Education and Reverse Engineering 15 ‘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. Source agentAgent 1Agent 2Agent 3

August 30, th Workshop Software Engineering Education and Reverse Engineering 16 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  invoke a service that gives location by IP  etc.

August 30, th Workshop Software Engineering Education and Reverse Engineering 17 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.

August 30, th Workshop Software Engineering Education and Reverse Engineering 18 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 19 Lab Progress Monitoring Column height increases when student gets credit for his/her work. Making progress public generates competition

August 30, th Workshop Software Engineering Education and Reverse Engineering 20 Exam Grades Average grade for exam 8.1 All students passed 11 marks of 10

August 30, th Workshop Software Engineering Education and Reverse Engineering 21 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 22 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

August 30, th Workshop Software Engineering Education and Reverse Engineering 23 Conclusions – Difficulties Writing a proper documentation Performing experiments and collecting experimental data Implementing anything without very specific instructions

August 30, th Workshop Software Engineering Education and Reverse Engineering 24 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.

August 30, th Workshop Software Engineering Education and Reverse Engineering 25