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 September 2012
12th Workshop SEE and RE 2/17 Agenda Course description Structure of ADVICE Implementation details Laboratory exercises and usage of ADVICE Assessment Conclusions
12th Workshop SEE and RE 3/17 Database course Type: Mandatory course Starts: 3 semester SE, 5 semester CE (of 8 semesters for bachelor studies) Prerequisites: - Class hours: Format: –Midterm 20 –Laboratory 20 –Final 60 SE 60 students, CE 110 students
12th Workshop SEE and RE 4/17 Course Syllabus Database systems Data modeling Relational databases Database query languages Relational database design Transaction processing
12th Workshop SEE and RE 5/17 Creating a tool for laboratory exercises Conceptual Design SQL DDL SQL DML Formal Query Languages Normalization
12th Workshop SEE and RE 6/17 Creating a tool for laboratory exercises System Conceptual Design SQL DDL SQL DML Formal Query Languages Normalization Correctness Checking Distance Learning Progress Monitoring SQL-TutorNo YesNo Yes NORMITNo Yes No KERMITYesNo Yes No SQL TrainerNo YesNo Yes Gradiance SQLNo YesNo Yes SQLCourseNoYes No YesNo WinRDBINo Yes No Web-based Normalization ToolNo YesNoYesNo LDBNNo Yes No ADbCYes NoYesNoYesNo
12th Workshop SEE and RE 7/17 ADVICE ADVICE (Automated Database Verification with Interactive Counter Example) Tool for laboratory exercises Modular structure Teaching support Interactive tutoring
12th Workshop SEE and RE 8/17 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 9/17 Typical appearance of ADVICE
12th Workshop SEE and RE 10/17 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 11/17 Model verification example “An entity is missing: Journey”
12th Workshop SEE and RE 12/17 Query verification algorithm
12th Workshop SEE and RE 13/17 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 14/17 Query visualization
main effect –year factor is significant (F(2, 721)=5.1286, p= ), 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)= , p= ), difference between groups is not dependent on the year. 12th Workshop SEE and RE 15/17 Assessment
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 16/17 Conclusion
Thank you! Radivojevic Zaharije