Teaching Database Courses Using Educational System ADVICE
description
Transcript of Teaching Database Courses Using Educational System ADVICE
Teaching Database Courses Teaching Database Courses Using Educational System ADVICEUsing Educational System ADVICE
Miloš Cvetanović , Zaharije RadivojevićSchool of Electrical Engineering, Belgrade University
12th Workshop “Software Engineering Education and Reverse Engineering”
Opatija, Croatia03-08 September 2012
12th Workshop SEE and RE 2/17
AgendaAgenda
• Course description• Structure of ADVICE• Implementation details• Laboratory exercises and usage of ADVICE• Assessment• Conclusions
12th Workshop SEE and RE 3/17
Database courseDatabase 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 4/17
Course SyllabusCourse 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 Creating a tool for laboratory exercisesexercises• Conceptual Design• SQL DDL• SQL DML• Formal Query Languages• Normalization
12th Workshop SEE and RE 6/17
Creating a tool for laboratory Creating a tool for laboratory exercisesexercises
12th Workshop SEE and RE 7/17
ADVICEADVICE
• 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 modulesADVICE 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 ADVICETypical appearance of ADVICE
12th Workshop SEE and RE 10/17
Model verification algorithmModel 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 exampleModel verification example
“An entity is missing: Journey”
DbInstance1=create(initScript)DbInstance2=create(initScript)
Is Query?
Is SQL?
transform(answer)transform(solution)
result1=execute(answer)result2=execute(solution)
result1=execute(selectAll)result2=execute(selectAll)
Is DDL?
match=pairColumns(result1,result2)
compareRows(result1,result2,match)
modify(testScript,DbInstance1)modify(testScript,DbInstance2)
modify(answer,DbInstance1)modify(solution,DbInstance2)
yes
yes
yes
no
no
no
IN
TR
ES
PC
CR
MD
MT
EA
12th Workshop SEE and RE 12/17
Query verification algorithmQuery verification algorithm
12th Workshop SEE and RE 13/17
Query verification exampleQuery verification example
SELECT J.Distance, T.ModelFROM 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 visualizationQuery visualization
• 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 15/17
AssessmentAssessment
0.00%
10.00%
20.00%
30.00%
40.00%
2005 22.97% 35.14% 20.27% 12.16% 6.76% 2.70%
2006
2007
2008
5 6 7 8 9 100.00%
10.00%
20.00%
30.00%
40.00%
2006 23.46% 31.56% 23.74% 13.41% 5.03% 2.79%
2007
2008
5 6 7 8 9 10
• 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
ConclusionConclusion
Thank you!Thank you!
Radivojevic Zaharije