190 likes | 360 Views
Teaching Database Courses Using Educational System ADVICE. Miloš Cvetanović , Zaharije Radivojević School of Electrical Engineering, Belgrade University 12th Workshop “Software Engineering Education and Reverse Engineering” Opatija, Croatia 03-08 September 2012. Agenda.
E N D
Teaching Database Courses Using Educational System ADVICE Miloš Cvetanović , Zaharije Radivojević School of Electrical Engineering, Belgrade University 12th Workshop “Software Engineering Education and Reverse Engineering” Opatija, Croatia 03-08 September 2012
Agenda • Course description • Structure of ADVICE • Implementation details • Laboratory exercises and usage of ADVICE • Assessment • Conclusions 12th Workshop SEE and RE
Database course • Type: Mandatory course • Starts: 3 semester SE, 5 semester CE (of 8 semesters for bachelor studies) • Prerequisites: - • Class hours: 2+2+1 • Format: • Midterm 20 • Laboratory 20 • Final 60 • SE 60 students, CE 110 students 12th Workshop SEE and RE
Course Syllabus • Database systems • Data modeling • Relational databases • Database query languages • Relational database design • Transaction processing 12th Workshop SEE and RE
Creating a tool for laboratory exercises • Conceptual Design • SQL DDL • SQL DML • Formal Query Languages • Normalization 12th Workshop SEE and RE
Creating a tool for laboratory exercises 12th Workshop SEE and RE
ADVICE • ADVICE (Automated Database Verification with Interactive Counter Example) • Tool for laboratory exercises • Modular structure • Teaching support • Interactive tutoring 12th Workshop SEE and RE
ADVICE modules • Core modules • login • users • defining problems • additional test • Additional modules • SQL DDL • SQL DML • relational algebra • relational calculus • conceptual modeling • normalization 12th Workshop SEE and RE
Typical appearance of ADVICE 12th Workshop SEE and RE
Model verification algorithm match(answer, solution){ schema1 = toSchema(answer); schema2 = toSchema(solution); reduce(schema1); reduce(schema2); for each (newSchema1, newSchema2) in eliminate(schema1, schema2){ for each renamedSchema1 in rename(newSchema1, newSchema2){ if(compare(renamedSchema1, newSchema2)){ return success; } } } return failure; } 12th Workshop SEE and RE
Model verification example “An entity is missing: Journey” 12th Workshop SEE and RE
Query verification algorithm 12th Workshop SEE and RE
Query verification example SELECT J.Distance, T.Model FROM Journey J, Truck T WHERE T.IDTru=J.IDTru AND (SELECT COUNT(*) FROM Drives D WHERE D.IDJou=J.IDJou)>=2; SELECT J.Distance, T.Model FROM Journey J, Truck T WHERE T.IDTru=J.IDTru AND (SELECT COUNT(*) FROM Drives D WHERE D.IDJou=J.IDJou)=2; “You have 1 row(s) less. Missing row: (157,MAN)” 12th Workshop SEE and RE
Query visualization 12th Workshop SEE and RE
Assessment • main effect • year factor is significant (F(2, 721)=5.1286, p=0.00614) , difference between the years. • group factor is significant (F(1, 721)=90.489, p=0.0000), difference between groups. • Interaction is not significant (F(2, 721)=0.90318, p=0.40574), difference between groups is not dependent on the year. 12th Workshop SEE and RE
Conclusion • Tool for support in laboratory exercises in databases related courses • Modular and extendable structure • Interactive iterative verification with query visualization • Possibility for vertical integration into database course 12th Workshop SEE and RE
Thank you! Radivojevic Zaharije