Title: eAssignment A Case for EMF
1eAssignment A Case for EMF
- Marcel Bruch
- Christoph Bockisch
- Thorsten Schäfer
- Mira Mezini
2Talk in a Nutshell
- Focus on features and usage of eAssignment
- Problem statement
- Computer science courses have programming
exercises - Cant concentrate on primary tasks
- Different workbenches (IDE, web browser, email,
spreadsheet) - Few secondary tasks automated
- eAssignment integrated, automated handling of
assignments - Easy to configure / extend (see paper for
details) - Suggestions how to improve Eclipse
3Example Workflow for an Assignment
- Goal learn the use of certain API
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
4Example Workflow for an Assignment
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
5Example Workflow for an Assignment
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
6Example Workflow for an Assignment
2 projects
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
Teachers maintaintwo projectsper assignment.
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
7Example Workflow for an Assignment
2 projects
Different possibleexchange formats.
format
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
8Example Workflow for an Assignment
2 projects
repetition
format
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
Repetitive andautomatable tasks.
92 projects
repetition
format
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
Poor integration,little automation.Can we do
better?- Yes, with eAssignment.
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
10eAssignment
2 projects
repetition
format
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
- Server based exchange
- Upload from context menu
- Download from repository view
11eAssignment
2 projects
repetition
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
- Resources have roles (sample solution, private
test, student read-only, student read/write) - Different publishing modes (assignment, sample
solution, )
12eAssignment
repetition
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
- Automatically run checks (JUnit, CheckStyle,
Implementation Restriction Checker, )
13eAssignment
- Manage
- Courses
- Students
- Assignments
Teacher
- Create same setup as student
- Run tests
- Review code
- Document feedback
- Rate solution
- Manage the result
- Send feedback to student
- Teacher
- Download libraries
- Setup class path and environment variables
- Implement test drivers and stubs
- Implement sample solution
- Publish assignment
14eAssignment Future Work
- Reporting
- Generate detailed reports from automatic checks
- Increase awareness of mistakes
- Cross-reviews
- Let students review student solutions
- They learn necessity for clean code
- They see and try to understand other solutions
- They get more reviews to their solutions
- Extend distribution facility
15Evaluation of Eclipse
- Why Eclipse?
- General notion of project
- Many tools already integrated
- Large community
- Shortcomings of Eclipse
- Generic data formats
- Loose type-safety
- Data unstructured
- Examples preference store, extension registry
- JFace FieldEditors only for preference store
- Suggestion
- Use EMF for generically handling typed,
structured data - Implemented in eAssignment
16