1 / 25

Q Gen

Q Gen. FHARM Team: F lavio Palandri Antonelli –Project Manager H yunmin Lee – System Tester A arthi Venkataramanan – System Architect R upal Shah – System Integrator M ohip Joarder – Language Guru COMS W4115 Programming Languages and Translators Prof. Alfred V. Aho. Outline.

edita
Download Presentation

Q Gen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QGen FHARM Team: Flavio Palandri Antonelli –Project Manager Hyunmin Lee – System Tester Aarthi Venkataramanan – System Architect Rupal Shah – System Integrator Mohip Joarder – Language Guru COMS W4115 Programming Languages and Translators Prof. Alfred V. Aho

  2. Outline • Introduction & Motivations • Language Basics • Language Design & Architecture • Demo • Language Implementation & Testing • Conclusions

  3. What is QGen? • QGen, is a programming language to develop computer-based test applications. + = QGen

  4. With QGen you can.. • Generate computer based tests and surveys • Define different types of questions and organize them into logically meaningful sections • Make your tests adapt to the ability of the user • Provide immediate results/feedback

  5. Use QGen for.. Customer Insights Employee Feedback Research Education and Training Just For Fun !

  6. Why QGen? • Eases the process of creating and evaluating quizzes and surveys • Yet provides ample flexibility to allow for customization and dynamic behavior. • The output is a portable java application

  7. Outline • Introduction & Motivations • Language Basics • Language Design & Architecture • Demo • Language Implementation & Testing • Conclusions

  8. Overall Structure of a QGen Program Pro Program Section 1 Question 1 . . Question n . . Section S Question 1 . . Question m • Main • Display questions • Organize sections • Evaluate results

  9. Sample Program • section HelloWorldSection • { • question q1 • { • type: multipleChoice; • text: "What's the most simplest program usually adopted 2 show a language example?"; • image: "images/hw.jpg"; • answer: "Hello World"; • choices: ("Hello World", "Hello Moon", "Hi World", "Goodbye World"); • score: 5; • } • q1; • } • main • { • showInstruction("Simple test", "Select the correct choice in the next question."); • showSection(HelloWorldSection); • showResult(); • } Section Question Sections organization

  10. Sample Program Output 1 • showInstruction("Simple test", "Select the correct choice in the next question.");

  11. Sample Program Output 2 • showSection(HelloWorldSection);

  12. Sample Program Output 3 • showResult();

  13. Syntactic Constructs • Looping structures • For • While • Conditional structures • if/else • Built in functions • showInstruction(String title, String description) • showResult() • getSectionScore(Section s) • getQuestionScore(Section s, Question q) • getAnswer(Section s, Question q) • addToList(List l, String s)

  14. Outline • Introduction & Motivations • Language Basics • Language Design & Architecture • Demo • Language Implementation & Testing • Conclusions

  15. Abstract Model of a Test followed by SECTION TEST contains Is-a Is-a Is-a INSTRUCTION SECTION QUESTION SECTION RESULT SECTION shows shows contains INSTRUCTION QUESTION RESULTS of for

  16. Architecture QGen Source Program Front End Back End TreeWalker Target Java Program Section Lexer & Parser Syntax Tree ANTLR GUI Manager Question grammar.g walker.g Interactive GUI Test Application Runnable Java Program Java Compiler JVM

  17. Outline • Introduction & Motivations • Language Basics • Language Design & Architecture • Demo • Language Implementation & Testing • Conclusions

  18. Demo Source Code sectionfirstSection{ question q1{ type: yesNo; text: "Is the grammar S -> Sa | b left recursive?"; answer: "Yes"; score: 5; } question q2 { type: fillBlank; text: "___ binding binds the data at run time"; answer: "Dynamic"; score: 5; } q1;q2; } First Section sectioneasySection { question q3 { type: freeText; text: "What is the input language of Assembler?"; answer: "Assembly language"; score: 3; } q3; } Easy Section

  19. sectionhardSection { question q4 { type: multipleChoice; text: "Which is the best parser among the given choices?"; answer: "Canonical-LR"; choices: ("Canonical-LR", "Simple LR", "LALR", "LL(1)"); score: 10; } listl; for (i = 0 to 10){ addToList(l,i); } question q5 { type: multipleChoice; text: "How many no. of min. states will be generated after converting the following NFA to DFA?"; image: "NFA.jpg"; answer: "4"; choices: l; score: 10; } q4; q5; } main{ showInstruction("Computer Adaptive PLT Test", "Depending on your answers different questions will be shown in the next section"); showSection(firstSection); if (getSectionScore(firstSection) > 5) { showSection(hardSection); } else{ showSection(easySection); } showResult(); } Hard Section Main function

  20. Demonstration • Now: Pop PLT quiz!

  21. Outline • Introduction & Motivations • Language Basics • Language Design & Architecture • Demo • Language Implementation & Testing • Conclusions

  22. Development Environment

  23. Test plan

  24. Front-end Test with ANTLR Plugin

  25. Conclusions • Lessons learned • Meet regularly • Keep it simple (Life is hard enough!) • User‐friendly languages are hard to implement and test • Decouple front-end and back-end development • … • Future Work & Improvements • Import questions from a file & store results to a DB • Enforce time-limits • Statistical results

More Related