Title: Teaching Database Courses Using Educational System ADVICE
1Teaching Database Courses Using Educational
System ADVICE
- Miloš Cvetanovic , Zaharije Radivojevic
- School of Electrical Engineering, Belgrade
University - 12th Workshop
- Software Engineering Education and Reverse
Engineering - Opatija, Croatia
- 03-08 September 2012
2Agenda
- Course description
- Structure of ADVICE
- Implementation details
- Laboratory exercises and usage of ADVICE
- Assessment
- Conclusions
3Database course
- Type Mandatory course
- Starts 3 semester SE, 5 semester CE (of 8
semesters for bachelor studies) - Prerequisites -
- Class hours 221
- Format
- Midterm 20
- Laboratory 20
- Final 60
- SE 60 students, CE 110 students
4Course Syllabus
- Database systems
- Data modeling
- Relational databases
- Database query languages
- Relational database design
- Transaction processing
5Creating a tool for laboratory exercises
- Conceptual Design
- SQL DDL
- SQL DML
- Formal Query Languages
- Normalization
6Creating a tool for laboratory exercises
System Conceptual Design SQL DDL SQL DML Formal Query Languages Normalization Correctness Checking Distance Learning Progress Monitoring
SQL-Tutor No No Yes No No Yes Yes Yes
NORMIT No No No No Yes Yes Yes No
KERMIT Yes No No No No Yes Yes No
SQL Trainer No No Yes No No Yes Yes Yes
Gradiance SQL No No Yes No No Yes Yes Yes
SQLCourse No Yes Yes No No No Yes No
WinRDBI No No Yes Yes No No No No
Web-based Normalization Tool No No No No Yes No Yes No
LDBN No No No No Yes Yes Yes No
ADbC Yes Yes Yes No Yes No Yes No
7ADVICE
- ADVICE (Automated Database Verification with
Interactive Counter Example) - Tool for laboratory exercises
- Modular structure
- Teaching support
- Interactive tutoring
8ADVICE modules
- Core modules
- login
- users
- defining problems
- additional test
- Additional modules
- SQL DDL
- SQL DML
- relational algebra
- relational calculus
- conceptual modeling
- normalization
9Typical appearance of ADVICE
10Model 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
11Model verification example
An entity is missing Journey
12Query verification algorithm
13Query verification example
SELECT J.Distance, T.Model FROM Journey J, Truck
T WHERE T.IDTruJ.IDTru AND (SELECT COUNT()
FROM Drives D WHERE D.IDJouJ.IDJou)2
SELECT J.Distance, T.Model FROM Journey J, Truck
T WHERE T.IDTruJ.IDTru AND (SELECT COUNT()
FROM Drives D WHERE D.IDJouJ.IDJou)gt2
You have 1 row(s) less. Missing row (157,MAN)
14Query visualization
15Assessment
- main effect
- year factor is significant (F(2, 721)5.1286,
p0.00614) , difference between the years. - group factor is significant (F(1, 721)90.489,
p0.0000), difference between groups. - Interaction is not significant (F(2,
721)0.90318, p0.40574), difference between
groups is not dependent on the year.
16Conclusion
- 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
17Thank you!