Giter Club home page Giter Club logo

autoer's Introduction

AutoER: Automatic UML Design Marking integrated into PrairieLearn

The AutoER system supports students learning database design diagrams by providing real-time visualization and feedback during question answering. It targets users first learning the design concepts and process of extracting model elements from written text. Students can answer instructor-created or randomly generated questions by interacting with the question text to develop the design. Unlike other UML design software, the student selects the modeling construct to add (entity, attribute, relationship) but does not directly draw the construct on the diagram itself. The diagram is drawn based on the student answer dynamically.

From the instructor perspective, the AutoER system is completely configurable including the user interface presented to students, the evaluation and feedback, and the parameters and approach for question generation. A demonstration is available at: https://autoed.ok.ubc.ca/demo including a demo video. Instructors may allow their students to use the demonstration site for practice.

The figure below shows the user interface and a student answering the question. The question text contains markup that allows students to select particular words and phrases to add to the diagram. Context-sensitive pop-up menus allow for adding entities and attributes. As the student builds the diagram, it is displayed and can be edited by adding and removing entities, attributes, keys, and relationships. The system uses a text representation of the diagram when evaluating and providing feedback.

AutoER is integrated into the PrairieLearn system and may also be deployed stand-alone. This repository contains a course for use with PrairieLearn. To test the system in your own deployment, install PrairieLearn and import this repository as a course.

Instructors create questions by editing the question.html file. The HTML document has a root element pl-uml-element. If random=False, the question is instructor created and has only one variant. Otherwise, a random question and answer is generated each time the student attempts the question. The instructor can set the maximum grade using the max-grade attribute. The question markup is in a uml-question tag. This text appears to the user. Any element specified in square brackets is shown as a link and the text following in round brackets is the text that is added to the diagram. In the image below, [aquaria](tank) will have the link on the word aquaria and when added to the diagram the word tank is used. This markup allows for the written text to be different than the names used in the diagram. The system marks based on the diagram names.

The uml-answer tag contains an answer to the question in the text format. If there is more than one answer, put more than one uml-answer element. The system will mark against all answers and give the student the highest mark from any of the answers. The answer text format is entities in square brackets. Attributes are after the |. Attributes designed as primary keys are annotated with {PK} and partial primary keys as {PPK}. Relationships consist of the entity name, the cardinality, a separator -, the other cardinality, then the other entity name. See the example below.

Marking is customizable to award different marks for entities, attributes, keys, and relationships. This can be modified by changing the weights in the uml-marking entity.

Publications

  1. S. Foss, T. Urazova, R. Lawrence, Automatic generation and marking of UML database design diagrams, SIGCSE 2022: The 53rd ACM Technical Symposium on Computer Science Education, Providence, RI, USA, March 3-5, 2022, Volume 1, ACM, 2022, pp. 626โ€“632. doi:10.1145/3478431. https://dl.acm.org/doi/10.1145/3478431.3499376

  2. S. Foss, T. Urazova, R. Lawrence, Learning UML database design and modeling with AutoER, Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, MODELS 2022, Montreal, Quebec, Canada, October 23-28, 2022, ACM, 2022, pp. 42โ€“45. https://doi.org/10.1145/3550356.3559091

Installation

  1. Setup PrairieLearn using the Docker deployment instructions.

  2. Clone this repository and put it into the directory TODO.

  3. Open a browser to URL http://localhost:3000. PrairieLearn will be running in development mode. Click on Load from disk to load course directory containing the AutoER code and questions into PrairieLearn instance.

homePage.png

  • Once load from disk is complete, courses properly mounted will be visible to access. loadFromDisk.png

Usage

  1. A video demonstrating use is available. From main PrairieLearn home screen, select the course AutoER Demo.

File Description

  • The folders clientFilesCourse, courseInstances/Sum22, and serverFilesCourse are files used by PrairieLearn to define a course and course instance. They can be modified for your own course.

  • The main code base for the AutoER system is in the folder elements/pl-uml-element that contains the custom PrairieLearn element for graphically creating UML/ER diagrams and performing auto-marking.

    • Key files: randomgrader.py - performs grading, pl-uml-element.py - defines the overall element, randomgeneration.py - random question generator
  • The questions folder contains the sample questions. Each question has an info.json file that defines its metadata including title, and a question.html that provides the question text markup, answer(s), and marking guide. New questions can be created using the PrairieLearn user interface or by copying one of the question folders and editing its info.json and question.html files.

License

License

PrairieLearn

PrairieLearn is an online problem-driven learning system for creating homeworks and tests. It allows questions to be written using arbitrary HTML, JavaScript, and Python, thus enabling very powerful questions that can randomize and autograde themselves, and can access client- and server-side libraries to handle tasks such as graphical drawing, symbolic algebra, and student code compilation and execution.

Documentation website: https://prairielearn.readthedocs.io/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.