[
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week1Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Intro to Software Design Week 1 battery of self-assessment questions: Micro-Worlds",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Design"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Introduction Chapter for CS1: Review Questions 1",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week1Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Intro to Software Design Week 1 battery of self-assessment questions: Turning micro-worlds into code.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Design"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Introduction Chapter for CS1: Review Questions 2",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week1ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week1ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Intro to Software Design Week 1 battery of self-assessment questions: Programming Concepts.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Design"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Introduction Chapter for CS1: Week 1 Reading Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week2Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Inheritance and Polymorphism battery of self-assessment questions: Working with Jeroos.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Subclass"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Review Questions 1",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EGPSurvey&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Intro to Software Design (CS1) course grading policy review questions",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Design"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Course Grading Policy",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week2Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Inheritance and Polymorphism battery of self-assessment questions: Working class hierarchy and inheritance",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Class Hierarchy",
      "Inheritance"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Review Questions 2",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week2Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Inheritance and Polymorphism battery of self-assessment questions: Developing algorithms.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Class Hierarchy",
      "Inheritance"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Review Questions 3",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week2Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Inheritance and Polymorphism battery of self-assessment questions: Writing methods.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Method"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Review Questions 4",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week2ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week2ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Inheritance and Polymorphism battery of self-assessment questions: Chapter review summary.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Inheritance",
      "Polymorphism"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Chapter Summary Review",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Conditional Statement self-assessment questions: Working with if-then-else statements.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Conditional Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Conditional statements: Working with If-Then-Else Statements",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Conditional Statement self-assessment questions: Working with if-then-else statements second quiz.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Conditional Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Conditional statements: Working with If-Then Statements 2",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Conditional Statement self-assessment questions: Deciding when to use each type of conditional structure.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Conditional Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Conditional statements: Using the Right Conditional Statement",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Boolean Operator self-assessment questions: AND, OR, NOT.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Boolean Operator",
      "Conditional Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Boolean Operators: AND, OR, NOT",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz5Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz5Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3Quiz5Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3Quiz5Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "While Loops self-assessment questions.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "While Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Working with While Loops Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week3ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week3ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Chapter review questions for conditional statements and while loops.",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "While Loop",
      "Conditional Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Conditional Statements and While Loops: Chapter Review",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week4Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Software Testing self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Testing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Software Testing Concepts Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week4Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Understanding method signatures self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Method",
      "Signature"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Understanding Method Signatures Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week4Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Understanding methods with parameters self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Method",
      "Parameter"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Methods with Parameters Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week4Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Logical equivalence self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Boolean Operator",
      "Boolean Expression"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Logical Equivalence Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week4ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week4ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Software testing for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Boolean Operator",
      "Boolean Expression"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Chapter Review Questions: Software Testing",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week5Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Variables for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Variable"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Variables Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week5Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Scope for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Scope"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Scope Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week5Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Getters and Setters for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Getters",
      "Setters"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Getters and Setters Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week5Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week5Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Methods and return statement for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Method",
      "Return Statement"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Methods and Return Statements Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week6Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "For-each statement module review questions for CS1.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "For-Each Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "For-each Loop Statement Module Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week6Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week6Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "For-each statement for CS1 self-assessment questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "For-Each Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "For-each Loop Statement Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week7Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Strings introduction for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "String"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Strings Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week7Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Counter controlled loops for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Counter Controlled Loops Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week7Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Random Numbers for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Random Number"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Random Numbers Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week7Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week7Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1 review questions: Method overriding.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Method"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Method Overriding Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week8Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Introduction to interfaces for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Interface"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Interfaces Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week8Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Introduction to lists and the ArrayList class for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "ArrayList Class"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Lists and ArrayList Class Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week8Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Introduction to using nested for loops for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "For Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Nested For Loops Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week8ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week8ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Introduction to lists and nested for loops for CS1 review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List",
      "For Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Introduction to Lists Module Review Quiz",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week9Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1 review questions about loop idioms.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Loop Idioms Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week9Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions about generics.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Generics"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Generics Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week9Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week9Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions about the Null keyword",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Null"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Null Keyword Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week10Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to arrays review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Arrays Introduction Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week10Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level iterating over arrays review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array",
      "For-Each Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Iterating with Arrays Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10ReadingQuizSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10ReadingQuizSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week10ReadingQuizSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week10ReadingQuizSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to arrays module review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array",
      "For-Each Loop"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Arrays Module Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week11Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to 2D arrays review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array"
    ],
    "features": [
      "Question Set"
    ],
    "title": "2D Arrays Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week11Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level interating with 2D arrays review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Iterating with 2D Arrays Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week11Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week11Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to modulus review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Modulus"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Modulus Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week12Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to variable scope review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Variable Scope"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Variable Scope Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week12Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to output in Java review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Java Output Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week12Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level introduction to Java input review questions.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "Scanner"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Java Input Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week12Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week12Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on file I/O testing in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Testing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Java Testing Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week13Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on maps in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Map"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Java Maps Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EGPSurvey&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/EGPSurvey.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Intro to Software Design (CS1) course grading policy review questions",
    "author": [
      "Molly Domino"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Software Design"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Inheritance and Polymorphism: Course Grading Policy",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week13Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week13Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on sets in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Set"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Java Sets Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz1Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz1Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week14Quiz1Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz1Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on the main method in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Main Method"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Main Method Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week14Quiz2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on the static keyword in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Static"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Static Keyword Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week14Quiz3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on exception handling in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Exception"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Throwing Exceptions Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz4Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz4Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Week14Quiz4Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/IntroToSoftwareDesign/Week14Quiz4Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "CS1-level review questions on try/catch blocks in Java.",
    "author": [
      "Molly Domino",
      "Steve Edwards"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Exception"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Try/Catch Blocks Review Questions",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd/pwd-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd/pwd-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pwd-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd/pwd-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "pwd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "pwd Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-2/pwd-2-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-2/pwd-2-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pwd-2-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-2/pwd-2-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Second pwd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "pwd Command Proficiency Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-3/pwd-3-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-3/pwd-3-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pwd-3-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pwd-3/pwd-3-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Third pwd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "pwd Command Proficiency Exercise 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/ls/ls-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/ls/ls-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ls-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/ls/ls-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "ls command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "ls command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd/cd-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd/cd-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cd-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd/cd-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Cd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "cd Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-2/cd-2-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-2/cd-2-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cd-2-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-2/cd-2-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Second cd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Cd Command Proficiency Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-3/cd-3-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-3/cd-3-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cd-3-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cd-3/cd-3-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Third cd command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Cd Command Proficiency Exercise 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/touch/touch-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/touch/touch-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=touch-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/touch/touch-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "touch command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "touch command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mkdir/mkdir-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mkdir/mkdir-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mkdir-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mkdir/mkdir-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "mkdir command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "mkdir command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm/rm-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm/rm-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=rm-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm/rm-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "rm command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "rm Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm-r/rm-r-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm-r/rm-r-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=rm-r-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rm-r/rm-r-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "rm -r command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "rm -r Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rmdir/rmdir-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rmdir/rmdir-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=rmdir-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/rmdir/rmdir-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "rmdir command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "rmdir command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mv/mv-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mv/mv-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mv-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/mv/mv-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "mv command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "mv command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cp/cp-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cp/cp-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cp-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/cp/cp-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "cp command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "cp command proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-1/challenge-1-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-1/challenge-1-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=challenge-1-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-1/challenge-1-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Command line proficency exercise: User provides the appropriate command to achieve some goal. Challenge 1.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Command Line Proficiency Exercise: Challenge 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-2/challenge-2-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-2/challenge-2-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=challenge-2-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-2/challenge-2-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Command line proficency exercise: User provides the appropriate command to achieve some goal. Challeng 2.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Command line proficiency exercise: Challenge 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-3/challenge-3-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-3/challenge-3-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=challenge-3-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/challenge-3/challenge-3-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Command line proficency exercise: User provides the appropriate command to achieve some goal. Challenge 3.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Command Line"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Command Line Proficiency Exercise: Challenge 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/clone/clone-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/clone/clone-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=clone-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/clone/clone-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "clone command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Clone Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/status/status-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/status/status-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=status-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/status/status-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "status command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Status Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/add/add-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/add/add-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=add-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/add/add-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Add command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Add Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-rm/git-rm-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-rm/git-rm-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=git-rm-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-rm/git-rm-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git command proficency exercise: User provides the appropriate command to achieve some goal. rm command.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Command Proficiency Exercise: rm",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit/commit-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit/commit-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=commit-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit/commit-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Commit command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Commit Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/push/push-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/push/push-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=push-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/push/push-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "push command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Push Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore/restore-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore/restore-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=restore-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore/restore-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "restore command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Restore Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore-staged/restore-staged-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore-staged/restore-staged-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=restore-staged-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/restore-staged/restore-staged-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git Restore staged command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Restore Staged Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pull/pull-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pull/pull-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pull-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/pull/pull-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git pull command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Pull Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-a/commit-a-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-a/commit-a-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=commit-a-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-a/commit-a-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Commit -a command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Commit -a Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-path/commit-path-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-path/commit-path-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=commit-path-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/commit-path/commit-path-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Commit Path command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Commit Path Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/branch/branch-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/branch/branch-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=branch-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/branch/branch-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git branch command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Branch Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch/switch-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch/switch-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=switch-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch/switch-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git switch command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Switch Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-c/switch-c-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-c/switch-c-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=switch-c-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-c/switch-c-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git switch -c command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Switch -c Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-diverged/switch-diverged-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-diverged/switch-diverged-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=switch-diverged-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/switch-diverged/switch-diverged-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git switch diverged command proficency exercise: User provides the appropriate command to achieve some goal.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Switch Diverged Command Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-1/git-challenge-1-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-1/git-challenge-1-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=git-challenge-1-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-1/git-challenge-1-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git command proficency exercise: User provides the appropriate command to achieve some goal. Challenge 1.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Command Proficiency Exercise: Challenge 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-2/git-challenge-2-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-2/git-challenge-2-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=git-challenge-2-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-2/git-challenge-2-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git command proficency exercise: User provides the appropriate command to achieve some goal. Challenge 2.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Command Proficiency Exercise: Challenge 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-3/git-challenge-3-exercise.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-3/git-challenge-3-exercise.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=git-challenge-3-exercise&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/CommandLineBased/exercises/git-challenge-3/git-challenge-3-exercise.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Git command proficency exercise: User provides the appropriate command to achieve some goal. Challenge 3.",
    "author": [
      "Ryan Buxton"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Git"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Git Command Proficiency Exercise: Challenge 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/IntroSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/IntroSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IntroSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/IntroSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Data Structures introduction battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Data Structures"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Introduction to Data Structures and Algorithms Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMoopSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMoopSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CMoopSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMoopSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-assessment question battery about the object-oriented programming concept map.",
    "author": [
      "Ehsan Elgendi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Object-Oriented Programming"
    ],
    "features": [
      "Question Set",
      "Concept Map"
    ],
    "title": "Object-oriented programming concept map: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMdatatypeSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMdatatypeSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CMdatatypeSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMdatatypeSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-assessment question battery about the data types concept map.",
    "author": [
      "Ehsan Elgendi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Data Type",
      "Abstract Data Type"
    ],
    "features": [
      "Question Set",
      "Concept Map"
    ],
    "title": "Data types concept map: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/IntroADTSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/IntroADTSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IntroADTSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/IntroADTSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-assessment question battery about data types.",
    "author": [
      "Ehsan Elgendi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Data Type",
      "Abstract Data Type"
    ],
    "features": [
      "Question Set"
    ],
    "title": "ADT Introduction Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TriangleClassifier&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise where user enters input values for a triangle classifier problem with the goal of getting complete code coverage. Use URL parameter code=true to show the associated code, code=false to not show code.",
    "author": [
      "Andrew Eason",
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Test Case",
      "Code Coverage"
    ],
    "features": [
      "Code Testing Exercise"
    ],
    "title": "Triangle Classification TestCase Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TriangleClassifier&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Triangle/TriangleClassifier.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise where user enters input values for a triangle classifier problem with the goal of getting complete code coverage. Use URL parameter code=true to show the associated code, code=false to not show code.",
    "author": [
      "Andrew Eason",
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Test Case",
      "Code Coverage"
    ],
    "features": [
      "Code Testing Exercise"
    ],
    "title": "Triangle Classification TestCase Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BowlingScore&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise where user enters input values for a bowling game scoring function with the goal of getting complete code coverage. Use URL parameter code=true to show the associated code, code=false to not show code.",
    "author": [
      "Andrew Eason",
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Test Case",
      "Code Coverage"
    ],
    "features": [
      "Code Testing Exercise"
    ],
    "title": "Bowling Score TestCase Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BowlingScore&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Testing/Bowling/BowlingScore.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise where user enters input values for a bowling game scoring function with the goal of getting complete code coverage. Use URL parameter code=true to show the associated code, code=false to not show code.",
    "author": [
      "Andrew Eason",
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Test Case",
      "Code Coverage"
    ],
    "features": [
      "Code Testing Exercise"
    ],
    "title": "Bowling Score TestCase Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/primativeVsRefCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/primativeVsRefCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=primativeVsRefCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/primativeVsRefCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing primitive data types in Java and the concept of object and reference.",
    "author": [
      "Cliff Shaffer",
      "Sushma Mandava",
      "Milen John"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Data Type",
      "Object"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Java Data Types",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX1PRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX1PRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PointerEX1PRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX1PRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Pointer assignment proficiency exercise. Users click on objects to show how pointers should be updated.",
    "author": [
      "Jieun Chon",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Object"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Practicing Pointers 1",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/shallowdeepExampleCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/shallowdeepExampleCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shallowdeepExampleCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/shallowdeepExampleCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the distinction between shallow and deep copy.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Shallow vs Deep Copy",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX2PRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX2PRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PointerEX2PRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX2PRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Second pointer assignment proficiency exercise. Users click on objects to show how pointers should be updated.",
    "author": [
      "Jieun Chon",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Object"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Practicing Pointers 2",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/badPointerPowCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/badPointerPowCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=badPointerPowCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/badPointerPowCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the consequence of dereferencing a null pointer.",
    "author": [
      "Cliff Shaffer",
      "Sushma Mandava",
      "Aditya Tikhe",
      "Milen John"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Consequences of Dereferencing a Null Pointer",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/employeePtr2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/employeePtr2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=employeePtr2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/employeePtr2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating assigning a reference to an object.",
    "author": [
      "Sushma Mandava",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Assigning a Reference to an Object",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/examplePointerCodeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/examplePointerCodeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=examplePointerCodeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/examplePointerCodeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating changing the reference to an object.",
    "author": [
      "Sushma Mandava",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Changing the Reference to an Object",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/simpleLifetimeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/simpleLifetimeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=simpleLifetimeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/simpleLifetimeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the lifetime of local storage.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Lifetime of Local Variables",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/T1-T5CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/T1-T5CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=T1-T5CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/T1-T5CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the details of local variable allocation and deallocation.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Reference",
      "Object"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Allocation and Deallocation of Local Variables",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/garbageDisposalCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/garbageDisposalCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=garbageDisposalCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/garbageDisposalCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of garbage collection.",
    "author": [
      "Sushma Mandava",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Garbage Collection",
      "Heap Memory"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Garbage Disposal",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/LocalHeapintptr42.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/LocalHeapintptr42.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LocalHeapintptr42&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/LocalHeapintptr42.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the memory allocation and deallocation.",
    "author": [
      "Sushma Mandava"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Memory Allocation"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "A Heap Example",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linkNodes1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of Link Nodes.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Link Node"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Link Nodes",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linkNodes2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of chaining link nodes to form a linked list.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Link Node",
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Creating a Chain of Links",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX3PRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX3PRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PointerEX3PRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Pointers/PointerEX3PRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Third pointer assignment proficiency exercise. Users click on objects to show how pointers link nodes together into a linked list.",
    "author": [
      "Jieun Chon",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer",
      "Object"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Practicing Pointers: Links",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linkNodes3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of iterating through a linked list.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Link Node",
      "Iteration"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Link Nodes: Iteration",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes4CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes4CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linkNodes4CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes4CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of deleting from a linked list.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Link Node",
      "Iteration"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Link Nodes: Delete",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes5CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes5CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linkNodes5CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Pointers/linkNodes5CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of inserting a new node into a linked list.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Link Node",
      "Iteration"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Link Nodes: Insertion",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMpointersSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMpointersSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CMpointersSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMpointersSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-assessment question battery about the pointers concept map.",
    "author": [
      "Ehsan Elgendi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pointer"
    ],
    "features": [
      "Question Set",
      "Concept Map"
    ],
    "title": "Pointers concept map: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetDefFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetDefFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SetDefFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetDefFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presentation of basic set definitions and terminology review.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Set"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Set Definitions Review",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetNotationFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetNotationFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SetNotationFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/SetNotationFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presentation of basic set notation review.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Set"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Set Notation Review",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/RelationsFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/RelationsFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RelationsFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/RelationsFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presentation of basic relations terminology review.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Set"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Relations Review",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFrelation.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFrelation.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SetTFrelation&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFrelation.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Set relations self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Set Relations: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/EquivFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/EquivFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EquivFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/EquivFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presentation of equivalence relations review.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Set"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Equivalence Relations Review",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFequivrel.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFequivrel.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SetTFequivrel&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFequivrel.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Equivalence relations self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Equivalence Relations: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFpartialorder.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFpartialorder.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SetTFpartialorder&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Background/SetTFpartialorder.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Partial orders self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Partial Orders: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/MathProofFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/MathProofFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MathProofFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/MathProofFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presentation of basic proofs review, including proof by contradiction review.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Proof"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Proof Techniques Introduction",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionIntroFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionIntroFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InductionIntroFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionIntroFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset review of induction proofs.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Induction Proof"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Induction Proofs",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionExamp1FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionExamp1FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InductionExamp1FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductionExamp1FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset examples of induction proofs.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Proof by Induction"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Induction Proof Examples",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductRegionsFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductRegionsFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InductRegionsFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductRegionsFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset examples of induction proof for two-coloring the 2D plane.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Proof by Induction"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Induction Proof For Two Coloring",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductFactFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductFactFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InductFactFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Background/InductFactFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset examples of induction proof proving a Factorial function implementation correct.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Proof by Induction"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Induction Proof For Factorial",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/ProblemAlgorithmCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/ProblemAlgorithmCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ProblemAlgorithmCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/ProblemAlgorithmCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the differences between problems, algorithms, and programs.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Problem, Algorithm, and Program definitions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalPrelimSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalPrelimSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnalPrelimSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalPrelimSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on lower bounds and the relationship of various growth rates.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Problems, Algorithms, and Programs Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/CompareGrowth.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/CompareGrowth.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CompareGrowth&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/CompareGrowth.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions that lets users pick which growth rate is cheapest from several choices.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Comparing Growth Rates Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/GrowthRatesPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/GrowthRatesPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GrowthRatesPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/GrowthRatesPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions that lets users put several growth rates in order.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Growth Rates Ordering Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesSameCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesSameCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnalCasesSameCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesSameCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating analysis when there is only one input of a given size.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Simple analysis cases slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesDiffCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesDiffCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnalCasesDiffCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/AnalCasesDiffCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating analysis when there are different inputs of a given size.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Best, Worst, and Average cases slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/FasterCorASumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/FasterCorASumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FasterCorASumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/FasterCorASumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on the distinction between speeding a computer processor vs. reducing computational complexity of an algorithm",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Faster Computer or Faster Algorithm Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/UpperBoundCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/UpperBoundCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=UpperBoundCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/UpperBoundCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating various misconceptions that can occur related to upper bounds asymptotic analysis.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Misconceptions Related to Upper Bounds",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/UpperBoundsSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/UpperBoundsSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=UpperBoundsSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/UpperBoundsSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions about asymptotic analysis and upper bounds.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Asymptotic Analysis and Upper Bounds Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/LowerBoundCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/LowerBoundCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LowerBoundCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/LowerBoundCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating lower bounds analysis and discussing various associated misconceptions.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Lower Bounds Misconceptions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/LowerThetaSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/LowerThetaSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LowerThetaSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/LowerThetaSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on the distinction between problems, algorithms, and programs.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Growth Rate",
      "Lower Bound"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Algorithm Analysis Lower Bounds Practice Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binarySearchCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating Binary Search and presenting its analysis.",
    "author": [
      "Pavel Hovhannisyan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search",
      "Algorithm Analysis"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Binary Search Algorithm",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Searching/binarySearchPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Searching/binarySearchPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binarySearchPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Searching/binarySearchPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise where users indicate which elements of the array should be searched to reproduce the binary search algorithm's behavior.",
    "author": [
      "Kasper Hellstrom"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Binary Search"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Binary Search Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/BsearchDandCRecurCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/BsearchDandCRecurCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BsearchDandCRecurCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/BsearchDandCRecurCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating Binary Search worst case analysis through analysis of its recurrence relation.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search",
      "Algorithm Analysis",
      "Recurrence Relation"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Binary Search Algorithm Worst Case Analysis Recurrence Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProgramSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProgramSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnalProgramSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProgramSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions about asymptotic analysis and analyzing programs.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Algorithm Analysis",
      "Analyzing Programs"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Program Code Analysis Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProblemSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProblemSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnalProblemSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AnalProblemSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions about asymptotic analysis and analyzing problems.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Algorithm Analysis",
      "Analyzing Problems"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Analyzing Problems Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/MisunderstandingsGraphCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/MisunderstandingsGraphCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MisunderstandingsGraphCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/AlgAnal/MisunderstandingsGraphCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating various growth rate behaviors.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Problem",
      "Algorithm",
      "Program"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Misunderstanding Examples: Graph Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/MisSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/MisSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MisSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/MisSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions related to misconceptions in asymptoic algorithm analysis.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Algorithm Analysis",
      "Misconception"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Common Algorithm Analysis Misconceptions Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS2Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS2Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AlgAnalCS2Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS2Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on Algorithm Analysis. Suitable for a CS2 course.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Algorithm Analysis"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Algorithm Analysis Chapter Summary Questions: CS2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS3Summ.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS3Summ.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AlgAnalCS3Summ&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/AlgAnal/AlgAnalCS3Summ.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on Algorithm Analysis. Suitable for a post-CS2 Data Structures and Algorithms course.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Algorithm Analysis"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Algorithm Analysis Chapter Summary Questions: CS3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDelegateCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDelegateCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurIntroDelegateCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDelegateCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the concept of recusion as delegation of a task.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion",
      "Delegation"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Basics of Writing a Recursive Function",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDetailsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDetailsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurIntroDetailsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurIntroDetailsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the concept of recusion showing the detials of recursive multiplication.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Recursion Introduction Slideshow: Details of Recursion",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteStepsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteStepsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurWriteStepsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteStepsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the basic concepts of base cases and recursive calls in a function.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Recursion Introduction Slideshow: Delegation",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteSumCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteSumCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurWriteSumCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurWriteSumCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing multiple examples of how to write a recursive function to do summation.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Writing a Recursive Function: Variations",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceWindCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceWindCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurTraceWindCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceWindCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating code tracing, showing how the call stack winds and unwinds.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Tracing Recursive Code: Winding and Unwinding",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceFactCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceFactCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurTraceFactCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceFactCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating code tracing, using the factorial function as an example.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Tracing Recursive Code: Factorial Function",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceSumCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceSumCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurTraceSumCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceSumCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating code tracing, using a simple summation function as an example.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Tracing Recursive Code: Summation",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceDmnCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceDmnCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurTraceDmnCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceDmnCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating code tracing, using a domino metaphor.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Tracing Recursive Code: Domino Effect",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceTOHCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceTOHCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=recurTraceTOHCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/RecurTutor/recurTraceTOHCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating code tracing the Towers of Hanoi problem.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion",
      "Towers of Hanoi"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Tracing Recursive Code: Towers of Hanoi",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFwdFlow.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFwdFlow.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummFwdFlow&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFwdFlow.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection focusing on foward flow of information.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Forward Flow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummbckwrdFlow.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummbckwrdFlow.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummbckwrdFlow&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummbckwrdFlow.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection focusing on backward flow of information.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Backward Flow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFuncErr.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFuncErr.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummFuncErr&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummFuncErr.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection focusing on recognizing errors.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Function Errors",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummTwoRC.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummTwoRC.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummTwoRC&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummTwoRC.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection focusing on functions with two recursive calls.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Two Recursive Calls",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHowmany.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHowmany.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummHowmany&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHowmany.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection focusing on counting the number of function calls made.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Call Count",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHard.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHard.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecTraceSummHard&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecTraceSummHard.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursive Code Tracing Exercise collection with some harder tracing exercises.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Code Tracing Exercise: Harder Exercises",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecChapterSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecChapterSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecChapterSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/RecurTutor/RecChapterSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Recursion tutorial chapter summary practice question set.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recursion"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Recursion Tutor: Chapter Summary",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listADTposCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listADTposCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=listADTposCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listADTposCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the concept of current position in a list and its implications for insertion.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "List ADT Positions Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistVarsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistVarsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=alistVarsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistVarsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the private data members from an array-based list implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Array-based List Private Data Members",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistIntroCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistIntroCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=alistIntroCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistIntroCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the array-based list implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Array-based List Introduction Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistInsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistInsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=alistInsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistInsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating array-based list insertion.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Array-based List Insertion Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistInsertPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistInsertPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AlistInsertPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistInsertPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based list interactive proficiency exercise. Users click on values in an array to show how insertion takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Array-Based List Insertion Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistAppendCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistAppendCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=alistAppendCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistAppendCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the array-based list append operation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Array-based List Append Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistRemoveCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistRemoveCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=alistRemoveCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/alistRemoveCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating array-based list remove.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Array-based List Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistRemovePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistRemovePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AlistRemovePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AlistRemovePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based list interactive proficiency exercise. Users click on values in an array to show how remove takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Array-Based List Remove Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ALSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ALSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ALSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ALSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based list battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based List"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Array-Based List Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistBadCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a bad representation for the current node in a linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Bad Linked List Representation Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadDelCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadDelCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistBadDelCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistBadDelCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating why a naive representation for the current node in a linked list leads to problems on deletion.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Linked List Deletion Problem Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistVarsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistVarsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistVarsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistVarsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the data members for a linked list implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Linked List Data Members Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistConsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistConsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistConsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistConsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the constructors for a linked list implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Linked List Constructors Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistInsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistInsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistInsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistInsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating insertion into a linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked List Insertion Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistSpecialCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistSpecialCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistSpecialCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistSpecialCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating some special cases related to insertion into a linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked List Insertion Special Case Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistInsertPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistInsertPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LlistInsertPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistInsertPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked list insert interactive proficiency exercise. Users click on values in a linked list display to show how insertion takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked List Insertion Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistRemoveCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistRemoveCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistRemoveCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistRemoveCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating removing from a linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked List Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistRemovePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistRemovePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LlistRemovePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LlistRemovePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked list remove interactive proficiency exercise. Users click on values in a linked list display to show how remove takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked List Remove Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistOtherCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistOtherCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=llistOtherCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/llistOtherCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating some miscillaneous methods for a linked list implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked List Miscillaneous Methods Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListOverhead.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListOverhead.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ListOverhead&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListOverhead.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User provides overhead computations for specified implementations.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List",
      "Array-Based List",
      "Overhead",
      "List Implementation Comparison"
    ],
    "features": [
      "Question Set"
    ],
    "title": "List Implementation Overhead Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LLSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LLSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LLSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LLSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about linked list costs.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Linked List Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistInsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistInsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=dlistInsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistInsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting insertion into a doubly linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Doubly Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Doubly Linked List Insert Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistAppendCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistAppendCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=dlistAppendCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistAppendCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting appending to a doubly linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Doubly Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Doubly Linked List Append Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistRemoveCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistRemoveCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=dlistRemoveCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistRemoveCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting removing from a doubly linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Doubly Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Doubly Linked List Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistPrevCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistPrevCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=dlistPrevCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/dlistPrevCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how to move to the previous element in a doubly linked list.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Doubly Linked List"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Doubly Linked List Prev Method Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDataCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDataCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=listElementDataCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDataCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the tradeoffs for storing element values in link nodes vs. references to element values.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List Element Implementation"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "List Element Data Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementTypeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementTypeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=listElementTypeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementTypeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the choice between storing non-homogeneous data types in list nodes and limiting to a homogenous data type.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List Element Implementation"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "List Element Type Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDeleteCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDeleteCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=listElementDeleteCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listElementDeleteCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the design choices on what to do when a list element is deleted.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List Element Implementation"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "List Element Deletion Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ListSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Summary self-practice questions on lists.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List"
    ],
    "features": [
      "Question Set"
    ],
    "title": "General List Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackVarCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackVarCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=astackVarCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackVarCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the data members for an array-based stack implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Array-Based Stack Data Members Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackTopCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackTopCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=astackTopCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackTopCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the implementation for the top position in an array-based stack.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Array-Based Stack Top Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPushCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPushCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=astackPushCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPushCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the implementation for the push operation in an array-based stack.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Array-Based Stack Push Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPushPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPushPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AstackPushPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPushPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based stack push proficiency exercise. Users click on values in a linked list display to show how push takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Array-Based Stack Push Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPopCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPopCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=astackPopCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/astackPopCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the implementation for the pop operation in an array-based stack.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Array-Based Stack Pop Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPopPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPopPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AstackPopPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AstackPopPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based stack pop proficiency exercise. Users click on values in a linked list display to show how pop takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Array-Based Stacks Pop Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPushCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPushCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=lstackPushCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPushCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the implementation for the push operation in a linked stack.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Stack"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked Stack Push Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPushPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPushPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LstackPushPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPushPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked stack push proficiency exercise. Users click on values in a linked list display to show how push takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Stack"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked Stack Push Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPopCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPopCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=lstackPopCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lstackPopCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing the implementation for the pop operation in a linked stack.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Stack"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Linked Stack Pop Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPopPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPopPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LstackPopPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LstackPopPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked stack pop proficiency exercise. Users click on values in a linked list display to show how pop takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Stack"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked Stack Pop Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listFreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listFreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=listFreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/listFreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the concept of using a freelist instead of a system memory manager.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Freelist Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueFirstCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueFirstCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueFirstCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueFirstCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting an initial design for storing a queue in an array.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Array-Based Queue Positions Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueDriftCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueDriftCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueDriftCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueDriftCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the a design that allows elements in an array-based queue to drift.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Array-Based Queue Drift Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueBadCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueBadCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueBadCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueBadCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the problem that elements in an array-based queue will eventually run out of space.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Array-Based Queue Design Problem Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueCircularCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueCircularCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueCircularCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueCircularCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the concept of a circular array-based queue.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Circular Array-Based Queue Design Slideshow: Concepts",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueEmptyCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueEmptyCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueEmptyCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueEmptyCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting design options for recognizing when an array-based queue is empty or full.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Circular Array-Based Queue Empty Representation Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueVarCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueVarCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aqueueVarCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/aqueueVarCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the data members for a circular array-based queue implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Circular Array-Based Queue Design Slideshow: Data Members",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueEnqueuePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueEnqueuePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AqueueEnqueuePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueEnqueuePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based queue enqueue proficiency exercise. Users click on values in a circular array display to show how enqueue takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Circular Array-Based Queue Enqueue Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueDequeuePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueDequeuePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AqueueDequeuePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/AqueueDequeuePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Array-based queue dequeue proficiency exercise. Users click on values in a circular array display to show how dequeue takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Queue"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Circular Array-Based Queue Dequeue Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueIntroCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueIntroCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=lqueueIntroCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueIntroCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting data members and constructors for a linked queue implementation.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Queue"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Linked Queue Data Members Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueEnqueueCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueEnqueueCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=lqueueEnqueueCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueEnqueueCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting an implementation for linked queue enqueue.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Queue"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Linked Queue Enqueue Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueEnqueuePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueEnqueuePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LqueueEnqueuePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueEnqueuePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked queue enqueue proficiency exercise. Users click on values in a linked queue display to show how enqueue takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Queue"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked Queue Enqueue Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueDequeueCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueDequeueCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=lqueueDequeueCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/List/lqueueDequeueCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting an implementation for linked queue dequeue.",
    "author": [
      "Jun Yang",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Queue"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Linked Queue Dequeue Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueDequeuePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueDequeuePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LqueueDequeuePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/LqueueDequeuePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Linked queue dequeue proficiency exercise. Users click on values in a linked queue display to show how dequeue takes place.",
    "author": [
      "Junyang Chen",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked Queue"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linked Queue Dequeue Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/StackQSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/StackQSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StackQSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/StackQSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about stacks and queues.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Stack",
      "Queue"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Stack and Queue Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListdsSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListdsSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ListdsSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListdsSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions comparing uses of linear structures.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List",
      "Stack",
      "Queue"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Linear Data Structures Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListChapterSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListChapterSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ListChapterSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/List/ListChapterSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions related to all aspects of lists, stacks, and queues.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "List",
      "Stack",
      "Queue"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Linear Structures Chapter Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignPatternSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignPatternSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DesignPatternSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignPatternSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A battery of self-assessment questions on design patterns.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Design Pattern"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Design Patterns Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/CompareSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/CompareSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CompareSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/CompareSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A battery of self-assessment questions on comparators and design issues related to comparing records.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Record Comparison",
      "Comparator"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Comparison Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignDictionarySumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignDictionarySumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DesignDictionarySumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Design/DesignDictionarySumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A battery of self-assessment questions on the Dictionary ADT.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Dictionary",
      "Abstract Data Type"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Dictionary ADT Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/DefSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/DefSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DefSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/DefSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about binary tree terminology that require calculation of quantities such as node counts and tree heights.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Tree"
    ],
    "features": [
      "Question Set",
      "Calculation Exercise"
    ],
    "title": "Binary Tree Definition Calculation Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/Treeprobs.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/Treeprobs.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Treeprobs&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/Treeprobs.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about binary tree terminology that require calculation of quantities such as descendants and tree heights.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Tree"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Binary Tree Terminology Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/SumBinaryTreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/SumBinaryTreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SumBinaryTreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/SumBinaryTreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow discussing recursive operations on a binary tree.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Array-Based Stack"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Recursive Operations in a Binary Tree",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/preorderCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/preorderCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=preorderCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/preorderCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting a detailed visualization of preorder traversal of a binary tree and how the recursion works.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Preorder Traversal"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Preorder Traversal Shown in Detail",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/postorderCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/postorderCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=postorderCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/postorderCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting a detailed visualization of postorder traversal of a binary tree and how the recursion works.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Postorder Traversal"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Postorder Traversal Shown in Detail",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/inorderCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/inorderCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=inorderCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/inorderCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting a detailed visualization of inorder traversal of a binary tree and how the recursion works.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Inorder Traversal"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Inorder Traversal Shown in Detail",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPreorderPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPreorderPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=btTravPreorderPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPreorderPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for preorder traversal. User clicks on nodes to indicate the proper order of the traversal process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Preorder Traversal"
    ],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Preorder Traversal Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPostorderPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPostorderPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=btTravPostorderPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravPostorderPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for postorder traversal. User clicks on nodes to indicate the proper order of the traversal process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Postorder Traversal"
    ],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Postorder Traversal Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravInorderPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravInorderPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=btTravInorderPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/btTravInorderPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for Inorder traversal. User clicks on nodes to indicate the proper order of the traversal process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Inorder Traversal Exercise",
    "programming_language": [],
    "natural_language": []
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TravSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TravSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TravSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TravSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about binary tree traversals.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Tree Traversal"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Binary Tree Traversal Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BinaryTreeMistakesCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BinaryTreeMistakesCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BinaryTreeMistakesCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BinaryTreeMistakesCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating some typical mistakes when writing recursive binary tree traversals.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Preorder Traversal"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Typical Mistakes During Tree Traversal",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/expressionTraversalCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/expressionTraversalCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=expressionTraversalCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/expressionTraversalCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating traversal of an expression tree. The primary point is to highlight the node implementation for a full binary tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Expression Tree",
      "Binary Tree Traversal",
      "Full Binary Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Traverse an expression tree",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TreeOverheadFIB.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TreeOverheadFIB.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TreeOverheadFIB&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/TreeOverheadFIB.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions that require the user to calculate overhead fractions for various binary tree node implementations.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Tree",
      "Overhead"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Tree Implementation Overhead Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTsearchCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTsearchCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTsearchCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTsearchCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing recursive search in a BST.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "BST Search Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTsearchPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTsearchPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTsearchPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTsearchPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with BST search.",
    "author": [
      "Kasper Hellstrom"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Binary Search Tree Search Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTinsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTinsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTinsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTinsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing recursive insert in a BST.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "BST Insert Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTinsertPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTinsertPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTinsertPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTinsertPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with BST insert.",
    "author": [
      "Kasper Hellstrom"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Binary Search Tree Insert Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTdeletemaxCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTdeletemaxCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTdeletemaxCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTdeletemaxCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing recursive delete of the maximum value in a BST.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "BST Delete Max Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTremoveCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTremoveCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTremoveCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/BSTremoveCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing recursive remove value in a BST.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "BST Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTremovePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTremovePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTremovePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/BSTremovePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with BST remove.",
    "author": [
      "Kasper Hellstrom"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Binary Search Tree Remove Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BSTSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BSTSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BSTSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BSTSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about Binary Search Trees.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Binary Search Tree Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/BTRecurTutor/IneffBinaryTreeRangeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/BTRecurTutor/IneffBinaryTreeRangeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IneffBinaryTreeRangeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/BTRecurTutor/IneffBinaryTreeRangeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing a range query implementation in a BST, contrasting an inefficient and an efficient implementation.",
    "author": [
      "Sally Hamouda",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search Tree"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Inefficient Range Query in a BST Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/CompleteFIB.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/CompleteFIB.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CompleteFIB&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/CompleteFIB.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions requiring user to calcuate node positions and values in an array representation for a complete binary tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linked List"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Complete Binary Tree Calculation Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapinsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapinsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapinsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapinsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing insert into a heap.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Heap Insert Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapinsertPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapinsertPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapinsertPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapinsertPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for heap insertion. User clicks on nodes to indicate the proper order of the insert process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Heap Insert Proficiency Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/HeapBldChoiceCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/HeapBldChoiceCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HeapBldChoiceCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/HeapBldChoiceCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing a naive heap building algorithm.",
    "author": [
      "Dana Gurland"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Heap Inefficient Build Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapbuildCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the efficient heap buiding algorithm.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Heap Build Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapbuildPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapbuildPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapbuildPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapbuildPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for heap building. User clicks on nodes to indicate the proper order of the build process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Heap Build Proficiency Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildProofCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildProofCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapbuildProofCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapbuildProofCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the cost of the efficient heap buiding algorithm, showing that it is a linear-time algorithm.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "Heap Build Proof Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapmaxCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapmaxCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapmaxCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapmaxCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing heap update when removing the max value from a maxheap.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Heap Max Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapremovePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapremovePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapremovePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/heapremovePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice exercise for heap remove. User clicks on nodes to indicate the proper order of the remove process.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Code Tracing Exercise",
      "Algorithm Tracing Exercise"
    ],
    "title": "Heap Remove Proficiency Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapremoveCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapremoveCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapremoveCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/heapremoveCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing heap update when removing a specified value from a heap.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Heap Remove Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HeapSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HeapSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HeapSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HeapSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions about heaps.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heap"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Heap Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanBuildCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanBuildCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=huffmanBuildCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanBuildCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the Huffman Coding Tree construction algorithm: Building the tree from a collection of weighted elements.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Huffman Coding Tree Slideshow: Build",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanLabelCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanLabelCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=huffmanLabelCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanLabelCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the Huffman Coding Tree edge labeling step.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Huffman Coding Tree Slideshow: Label Edges",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanCodesCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanCodesCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=huffmanCodesCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanCodesCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the Huffman Coding Tree code setting step.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Huffman Coding Tree Slideshow: Setting Codes",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanDecodeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanDecodeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=huffmanDecodeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/huffmanDecodeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the process of decoding a string of Huffman Codes.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Huffman Coding Tree Slideshow: Decoding",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HuffmanDecodePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HuffmanDecodePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HuffmanDecodePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/HuffmanDecodePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Practice profiency exercise for Huffman Coding Trees. User must do actions like show the codes for a string, or vice versa.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Computing Exercise"
    ],
    "title": "Huffman Coding Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/huffmanCustomBuildAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/huffmanCustomBuildAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=huffmanCustomBuildAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Binary/huffmanCustomBuildAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization for building a Huffman Coding Tree from a set of weights supplied by the user.",
    "author": [
      "Laura Avakian",
      "Maoyuan Sun",
      "Rich Episcopo",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Huffman Coding Tree"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Huffman Coding Tree Build Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TreeTimelineCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TreeTimelineCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TreeTimelineCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TreeTimelineCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the concept of marking a timeline for the values stored in a BST. This will be contrasted with using a Trie decomposition.",
    "author": [
      "Rich Episcopo"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Trie"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Tree Timeline Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TrieTimelineCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TrieTimelineCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TrieTimelineCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Binary/TrieTimelineCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the concept of marking a timeline for the values stored in a Trie decomposition version of a BST.",
    "author": [
      "Rich Episcopo"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Trie"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Trie Timeline Slideshow",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BinaryChapSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BinaryChapSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BinaryChapSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Binary/BinaryChapSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions for the full Binary Tree chapter.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Tree",
      "Binary Search Tree",
      "Heap",
      "Huffman Coding Tree"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Binary Tree Chapter Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortNotationS1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortNotationS1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortNotationS1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortNotationS1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the sorting problem.",
    "author": [
      "Yujie Chen"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sorting Notation"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Sorting Terminology and Notation Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortIntroSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortIntroSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortIntroSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortIntroSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Sorting introduction battery of self-assessment multiple choice questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sorting Notation"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Sorting Introduction: Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/insertionsortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/insertionsortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=insertionsortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/insertionsortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visualization for the first pass of Insertion Sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Insertion Sort Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionsortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionsortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=insertionsortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionsortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Insertion Sort. Includes code visualization. User can select data for the visualization.",
    "author": [
      "Cliff Shaffer",
      "Aayef Copty"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Insertion Sort Visualization",
    "programming_language": [
      "Java",
      "Python",
      "C++"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InssortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Insertion Sort interactive proficiency exercise. Users click on values in an array to move them around as Insertion Sort would.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Insertion Sort proficiency exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortWorstCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortWorstCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InsertionSortWorstCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortWorstCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Insertion Sort's worst-case behavior and cost.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort",
      "Worst Case"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Analysis Demonstration"
    ],
    "title": "Insertion Sort Worst Case Analysis",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortBestCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortBestCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InsertionSortBestCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortBestCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Insertion Sort's best-case behavior and cost.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort",
      "Best Case"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Analysis Demonstration"
    ],
    "title": "Insertion Sort Best Case Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortAverageCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortAverageCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InsertionSortAverageCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/InsertionSortAverageCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Insertion Sort's average-case behavior and cost.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort",
      "Average Case"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Analysis Demonstration"
    ],
    "title": "Insertion Sort Average Case Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InssortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/InssortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Insertion Sort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Insertion Sort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=bubblesortS1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a simple visualization of the first pass for Bubble Sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Bubble Sort First Pass Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=bubblesortS2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/bubblesortS2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a simple visualization of the second pass for Bubble Sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Bubble Sort 2nd Pass Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/bubblesortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/bubblesortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=bubblesortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/bubblesortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Bubble Sort. Includes code visualization. User can select data for the visualization.",
    "author": [
      "Cliff Shaffer",
      "Brandon Watkins"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization",
      "User Supplied Data"
    ],
    "title": "Bubble Sort Visualization",
    "programming_language": [
      "Java",
      "C++"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BubsortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Bubble Sort interactive proficiency exercise. Users click on values in an array to move them around as Bubble Sort would.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Bubble Sort Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/BubbleSortAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/BubbleSortAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BubbleSortAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/BubbleSortAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Bubble Sort's cost in worst, average, and best cases.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort",
      "Worst Case",
      "Average Case",
      "Best Case"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Bubble Sort Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BubsortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/BubsortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Bubble Sort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Bubble Sort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=selectionsortS1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a simple visualization of the first pass for Selection Sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Selection Sort First Pass Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=selectionsortS2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/selectionsortS2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a simple visualization of the second pass for Selection Sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Selection Sort Second Pass Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/selectionsortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/selectionsortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=selectionsortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/selectionsortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Selection Sort. Includes code visualization. User can select data for the visualization.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization",
      "User Supplied Data"
    ],
    "title": "Selection Sort Visualization",
    "programming_language": [
      "Java",
      "C++"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SelsortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Selection Sort interactive proficiency exercise. Users click on values in an array to move them around as Selection Sort would.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Selection Sort Sort Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SelectionSortAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SelectionSortAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SelectionSortAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SelectionSortAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Selection Sort's cost analysis.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort",
      "Worst Case",
      "Average Case",
      "Best Case"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Selection Sort Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ptrSwapCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ptrSwapCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ptrSwapCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ptrSwapCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing that Selection Sort can be sped up for large records with swapping to records.",
    "author": [
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      ""
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pointer Swap Optimization Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SelsortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SelsortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Selection Sort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Selection Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Selection Sort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/FindInversionsPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/FindInversionsPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FindInversionsPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/FindInversionsPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise to count the number of inversions in an array.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Exchange Sort",
      "Inversion"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Count Inversions Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ExchangeSortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ExchangeSortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ExchangeSortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/ExchangeSortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an analysis of Echange Sorting cost.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bubble Sort",
      "Worst Case",
      "Average Case",
      "Best Case"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Exchange Sort Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ExchangeSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ExchangeSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ExchangeSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ExchangeSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exchange Sorting battery of self-assessment multiple choice questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Exchange Sorts: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionSortWithoutSwapPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionSortWithoutSwapPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=insertionSortWithoutSwapPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/insertionSortWithoutSwapPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive algorithm proficiency exercise for optimized Insertion Sort. User clicks on array elements to reproduce the behavior of Insertion Sort optimized with shifting.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Insertion Sort",
      "Code Tuning"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Insertion Sort Optimized with Shifting Proficiency Exercise",
    "programming_language": [
      "Python"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the sublists that would be processed by the first pass of Shellsort (increments of size n/2).",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort First Pass Sublist Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of what records would be compared and swapped in the first pass of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort First Pass Details Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visualization for the sublists that would be sorted in the second pass of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort Second Pass Sublist Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON5.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON5.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON5&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON5.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of what records would be compared and swapped in the second pass of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort Second Pass Sorting Details Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON7.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON7.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON7&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON7.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of what records would be compared and swapped in the third pass of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort Third Pass Sorting Details Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON9.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON9.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortCON9&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/shellsortCON9.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of what records would be compared and swapped in the final \"cleanup\" pass of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Shellsort Final Pass Details Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSublistSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSublistSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ShellsortSublistSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSublistSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Shellsort proficiency exercises. User clicks on array cells to reproduce the behavior of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Shellsort Proficiency Exercises",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Shellsort. User can select data for the visualization.",
    "author": [
      "Cliff Shaffer",
      "Ville Karavirta"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization",
      "User Supplied Data"
    ],
    "title": "Shellsort Visualization",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en",
      "fi",
      "sv"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSeries.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSeries.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ShellsortSeries&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSeries.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Shellsort battery of self-assessment questions about whether a given diminishing increment series is legal for Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Shellsort: Legal Series Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive proficiency exercise for Shellsort. User clicks on array cells to indicate the behavior of Shellsort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Shellsort Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPerf.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPerf.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=shellsortPerf&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/shellsortPerf.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive proficiency exercise for Shellsort that focuses on the best performing diminishing increments. User selects an increment series and is given feedback on its cost, until the user selects the best choice.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Algorithm Computing Exercise"
    ],
    "title": "Shellsort Performance Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ShellsortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/ShellsortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Shellsort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shellsort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Shellsort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergesortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Mergesort. User can select data for the visualization.",
    "author": [
      "Daniel Breakiron"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Mergesort Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergesortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergesortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergesortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergesortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of merging two sorted runs in Mergesort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Merging Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortMergePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortMergePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MergesortMergePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortMergePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for the Mergesort merge step. User must indicate what values are merged into the results array.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Megesort Merging Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergesortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/mergesortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Mergesort proficiency exercise. User must show all of the merge steps for all values in the array.",
    "author": [
      "Daniel Breakiron"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Tracing Exercise",
      "Code Tracing Exercise"
    ],
    "title": "Mergesort Profiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/MergeSortAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/MergeSortAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MergeSortAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/MergeSortAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual analysis of Mergesort best, average, and worst case performance.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Mergesort Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergeImplS1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of implementing Mergesort using an array. This is the first of a two-part series, showing the final merge step.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Mergsort Implementation Slideshow: Final Pass",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergeImplS2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/mergeImplS2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of implementing Mergesort using an array. This is the second of a two-part series, showing an optimized version of the final merge step.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Mergsort Implementation Slideshow: Optimized Final Pass",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MergesortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/MergesortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Mergesort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Mergesort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Mergesort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPivotPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPivotPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuicksortPivotPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPivotPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for the Quicksort pivot. User must indicate which value in the array is used as the pivot.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Quicksort Pivot Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/quicksortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/quicksortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=quicksortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/quicksortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the partition step for Quicksort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quicksort Partition Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPartitPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPartitPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuicksortPartitPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortPartitPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for the Quicksort partition step. User must reproduce the series of steps taken during the Quicksort partition operation..",
    "author": [
      "Gayathri Subramanian",
      "Dan Breakiron",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Quicksort Partition Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortPartitionAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortPartitionAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuickSortPartitionAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortPartitionAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the cost of the partition step for Quicksort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quicksort Partition Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=quicksortAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Quicksort. User can select data for the visualization.",
    "author": [
      "Daniel Breakiron"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Quicksort Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=quicksortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/quicksortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for Quicksort. User must show the complete sequence of steps for sorting an array.",
    "author": [
      "Daniel Breakiron"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Quicksort Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortWorstCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortWorstCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuickSortWorstCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortWorstCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the worst-case cost of Quicksort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quicksort Worst Case Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortBestCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortBestCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuickSortBestCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortBestCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the best-case cost of Quicksort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quicksort Best Case Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortAverageCaseCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortAverageCaseCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuickSortAverageCaseCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/QuickSortAverageCaseCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the average-case cost of Quicksort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quicksort Average Case Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuicksortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/QuicksortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Quicksort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Quicksort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/heapsortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/heapsortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapsortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/heapsortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visualization of the Heapsort algorithm.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heapsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Heapsort Visualization Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortStepPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortStepPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HeapsortStepPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortStepPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for Heapsort. User must indicate how the array is updated when removing the maximum value during Heapsort.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heapsort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Heapsort Remove Max Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/heapsortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/heapsortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=heapsortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/heapsortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Heapsort proficiency exercise. User must show all of the steps for updating the array during Heapsort.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heapsort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Heapsort Profiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/HeapSortAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/HeapSortAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HeapSortAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/HeapSortAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the cost of Heapsort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heapsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Heapsort Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HeapsortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/HeapsortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Heapsort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Heapsort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Heapsort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binsortS1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of sorting a permutation of the n values from 0 to n-1.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Binsort Slideshow: Sorting a Permutation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binsortS2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/binsortS2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the details of binsort for an arbitrary key range.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binsort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Binsort Slideshow: Generalized Version",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixLinkAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixLinkAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=radixLinkAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixLinkAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Radix Sort, implemented using linked lists. User can select data for the visualization.",
    "author": [
      "Brandon Watkins",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Radix Sort"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Radix Sort Visualization: Linked List Implementation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixsortPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixsortPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RadixsortPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixsortPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for a pass of the Radix Sort algorithm. User must indicate how values in one array are moved to a second array during a pass for a selected digit.",
    "author": [
      "Gayathri Subramanian",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Quicksort"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Radix Sort Profiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixArrayAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixArrayAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=radixArrayAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Sorting/radixArrayAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for Radix Sort, implemented using arrays. User can select data for the visualization.",
    "author": [
      "Brandon Watkins",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Radix Sort"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Radix Sort Visualization: Array Implementation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/RadixSortAnalysisCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/RadixSortAnalysisCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RadixSortAnalysisCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/RadixSortAnalysisCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual analysis for the cost of Radix Sort.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Radix Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Radix Sort Analysis",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixSortSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixSortSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RadixSortSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/RadixSortSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Radix Sort battery of self-assessment questions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Radix Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Radix Sort: Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortAlgCompSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortAlgCompSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortAlgCompSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortAlgCompSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions where user selects which sort is the best to use in a particular situation.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Radix Sort"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Sort Comparison Summary Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortingLowerBoundCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortingLowerBoundCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortingLowerBoundCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Sorting/SortingLowerBoundCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a visual proof for the lower bound of the general sorting problem.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sorting Problem Lower Bound"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Sorting Lower Bound Analysis Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortBoundSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortBoundSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortBoundSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortBoundSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions related to the lower bounds proof for the general sorting problem.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sorting Problem Lower Bound"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Sorting Lower Bound Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortChapterSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortChapterSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortChapterSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Sorting/SortChapterSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions for the entire Sorting chapter.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sorting"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Sorting Chapter Summary Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/buffintroCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/buffintroCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=buffintroCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/buffintroCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an introduction to buffer pools.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Buffer Pool"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Buffer Pool Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LRUCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the Least Recently Used replacement heuristic.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Buffer Pool",
      "Least Recently Used"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "LRU Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUwriteCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUwriteCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LRUwriteCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/LRUwriteCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating optimizing the Least Recently Used replacement heuristic by use of a dirty bit to minimize unnecessary writes.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Buffer Pool",
      "Least Recently Used",
      "Dirty Bit"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "LRU Replacement with Write Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/BufferPoolAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/BufferPoolAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BufferPoolAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/BufferPoolAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for buffer pools. User can selectreplacement heuristic, pool size, and input data for the visualization.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Buffer Pool"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Buffer Pool Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extMergeSortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating standard Mergesort does not make for an optimal external sorting algorithm.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Motivation for External Sorting Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortExampCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortExampCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extMergeSortExampCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMergeSortExampCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating simple modifications to Mergesort to make a better external sorting algorithm.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting",
      "Mergesort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Mergesort Modified for External Sorting",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extRSCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extRSCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extRSCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extRSCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the replacement selection algorithm, used for external sorting.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting",
      "Replacement Selection"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "External Replacement Selection Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extRSPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extRSPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extRSPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extRSPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive algorithm proficiency exercise for the replacement selection algorithm. User clicks on heap nodes to reproduce the behavior of replacement selection.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting",
      "Replacement Selection"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Replacement Selection Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMultiMergeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMultiMergeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extMultiMergeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Files/extMultiMergeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating multiway merge in an external sorting algorithm.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting",
      "Mergesort",
      "Multiway Merge"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Multiway Merge Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extMultiMergePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extMultiMergePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=extMultiMergePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Files/extMultiMergePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive algorithm proficiency exercise for multiway merge. User clicks on positions in the array to reproduce the behavior of multiway merge.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "File Processing",
      "External Sorting",
      "Multiway Merge"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Multiway Merge Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashIntroCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashIntroCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hashIntroCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashIntroCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the simplest of hashing approaches: Just put a key into that array position.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Introduction to Hashing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/Birthday.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/Birthday.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Birthday&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/Birthday.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Simple calculator for computing the probability of a collision occuring given a specified number of inserts into a specified table size.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing",
      "Collision Resolution"
    ],
    "features": [
      "Calculation",
      "User Supplied Data"
    ],
    "title": "Birthday Calculator",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/BirthdayFIB.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/BirthdayFIB.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BirthdayFIB&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/BirthdayFIB.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must use the birthday calculator to determine the smallest number of inserts into a hash table of a specified size needed to have a specified probability of collision.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing",
      "Collision Resolution"
    ],
    "features": [
      "Calculation"
    ],
    "title": "Birthday Calculator Exercises",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hashFuncExCON1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the basic mod function as a hash function.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "The mod Hash Function",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hashFuncExCON2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashFuncExCON2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing basic binning (using high-order digits) as a hash function.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "The Binning Hash Function",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/MidSquare.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/MidSquare.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MidSquare&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/MidSquare.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Calculator for computing value of the middle digits of a squared number.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Calculation",
      "User Supplied Data"
    ],
    "title": "Mid-square Method Calculator",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSimple.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSimple.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StringSimple&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSimple.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Calculator for computing value of hashing a string by simple summation of its characters' ASCII values.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Calculation",
      "User Supplied Data"
    ],
    "title": "Simple String Hash Calculator",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSfold.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSfold.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StringSfold&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/StringSfold.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Calculator for computing value of hashing a string by 'folding'. A better method than character value summing.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Calculation",
      "User Supplied Data"
    ],
    "title": "String Folding Method activity",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncFIBSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncFIBSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashFuncFIBSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncFIBSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must give the result of a specified hash function on a specified input. Where appropriate, user is expected to make use of one of the calculators provided with this module.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Calculation"
    ],
    "title": "Hash Functions Exercises",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashFuncSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashFuncSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions on hash functions.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hash Function"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Hash Functions Summary Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/OpenHashPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/OpenHashPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=OpenHashPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/OpenHashPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the result of doing a series of inserts using open hashing. The user indicates which position in the table will take each value.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Open Hashing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Open Hashing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=buckethashCON1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the basic hash method of hashing to any free position within a computed bucket.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bucket Hashing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Bucket Hashing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucketPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucketPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashBucketPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucketPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must give the result from a series of inserts using bucket hashing. The user clicks on an array to show where values are inserte.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bucket Hashing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Bucket Hashing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=buckethashCON2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/buckethashCON2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a variation on bucket hashing where the key hashes to a slot in the table, and overflows to any other free slot in the bucket.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bucket Hashing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Alternate Bucket Hashing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucket2PRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucket2PRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashBucket2PRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashBucket2PRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must give the result from a series of inserts using  bucket hashing. This version uses a variation on bucket hashing where the hash function goes to a slot in the table, but overflow goes to other positions in the bucket. The user clicks on an array to show where values are inserte.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bucket Hashing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Alternate Form Bucket Hashing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linProbeCON1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a basic linear probing collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Linear Probing Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linProbeCON2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/linProbeCON2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing why linear probing is a poor method of collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Linear Probing Bad Performance Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearPPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearPPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashLinearPPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearPPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must give the result from a series of inserts using linear probing collision resolution. The user clicks on an array to show where values are inserte.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linear Probing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linear Probing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing linear probing with steps collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Linear Probing With Steps Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how the table size and step size affects linear probing with steps collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Improved Linear Probing With Steps Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearStepPPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearStepPPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashLinearStepPPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashLinearStepPPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the result of doing a series of inserts using linear probing with steps. The user indicates which position in the table will take each value.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linear Hashing with Steps Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating pseudo-random probing collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Pseudo-Random Probing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashPseudoRandomPPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashPseudoRandomPPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashPseudoRandomPPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashPseudoRandomPPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the result of doing a series of inserts --",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Pseudo-Random Probing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating why pseudo-random probing helps with collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Pseudo-Random Probing Effectiveness Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON5.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON5.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON5&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON5.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating quadratic probing collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quadratic Probing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashQuadraticPPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashQuadraticPPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashQuadraticPPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashQuadraticPPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the result of doing a series of inserts using quadratic probing. The user indicates which position in the table will take each value.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Quadratic Probing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON6.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON6.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON6&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON6.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating how quadratic probing does not always visit all slots of the hash table during collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Quadratic Probing Problems Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON7.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON7.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON7&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON7.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating double hashing collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Double Hashing Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON8.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON8.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=collisionCON8&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/collisionCON8.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating an alternate version of double hashing collision resolution.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Alternate Double Hashing Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDoublePPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDoublePPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashDoublePPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDoublePPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the result of doing a series of inserts using double hashing. The user indicates which position in the table will take each value.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Double Hashing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashAnalSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashAnalSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashAnalSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashAnalSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions on hashing cost analysis.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing Cost Analysis"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Hash Cost Analysis Summary Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashdelCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashdelCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hashdelCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Hashing/hashdelCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing deletion from a hash table.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Hash Table Deletion Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/HashingDelPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/HashingDelPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashingDelPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Hashing/HashingDelPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for hash table deletion. User must show the complete sequence of steps for removing an element from the hash table.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Hashing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Hash Table Deletion Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDelSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDelSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashDelSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashDelSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions on hash table deletion.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Hash Deletion Summary Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashChapterSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashChapterSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HashChapterSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Hashing/HashChapterSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions for the entire Hashing chapter.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hashing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Hashing Chapter Summary Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for various sequential memory manager schemes. User can select data for the visualization. Multiple versions are available: First Fit; Circular First Fit; Best Fit; Worst Fit.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Fit Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "First Fit Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for first fit memory manager. User must show the complete sequence of steps for allocating memory blocks.",
    "author": [
      "Samantha Fisher",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "First Fit Memory Manager"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "First Fit Memory Manager Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for various sequential memory manager schemes. User can select data for the visualization. Multiple versions are available: First Fit; Circular First Fit; Best Fit; Worst Fit.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Fit Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "First Fit Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for various sequential memory manager schemes. User can select data for the visualization. Multiple versions are available: First Fit; Circular First Fit; Best Fit; Worst Fit.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Fit Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "First Fit Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for various sequential memory manager schemes. User can select data for the visualization. Multiple versions are available: First Fit; Circular First Fit; Best Fit; Worst Fit.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Fit Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "First Fit Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=firstFitAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/firstFitAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for various sequential memory manager schemes. User can select data for the visualization. Multiple versions are available: First Fit; Circular First Fit; Best Fit; Worst Fit.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Fit Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "First Fit Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/BuddyAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/BuddyAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BuddyAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/MemManage/BuddyAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for the buddy method memory manager. User can select data for the visualization.",
    "author": [
      "Cliff Shaffer",
      "Mauricio De La Barra",
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Buddy Method Memory Manager"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Buddy Method Memory Manager Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/varindexCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/varindexCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=varindexCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/varindexCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a simple linear index for variable length records stored on disk.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linear Indexing",
      "File Processing"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Simple linear index Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/linindexCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/linindexCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linindexCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/linindexCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a two-level linear index for variable length records stored on disk.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linear Indexing"
    ],
    "features": [
      "Algorithm Analysis Demonstration"
    ],
    "title": "Two-level linear index Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/linearIndexingPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/linearIndexingPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=linearIndexingPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/linearIndexingPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive proficiency exercise for linear indexing. User clicks on array elements to indicate how the search process progresses from through two levels of linear index to reach the record on disk.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Linear Indexing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Linear Indexing Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/pagedBSTCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/pagedBSTCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pagedBSTCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/pagedBSTCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the use of paging with a BST-based index. Updating the BST to require it to remain a complete tree is expensive.",
    "author": [
      "Elmer Landaverde",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Paged BST Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/rebalanceBSTCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/rebalanceBSTCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=rebalanceBSTCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/rebalanceBSTCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the use of paging with a BST-based index. Reorganizing the nodes to be on optimal disk pages reduces the search time.",
    "author": [
      "Elmer Landaverde",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Paged BST with Page Rebalancing For Use on Disk Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/TreeIndexing.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/TreeIndexing.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TreeIndexing&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/TreeIndexing.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Tree-based indexing proficiency exercise. User indicates the number of disk pages visited for a given tree.",
    "author": [
      "Elmer Landaverde",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Tree Indexing Proficiency Exercise",
    "programming_language": [
      "Java"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/simpleInsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/simpleInsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=simpleInsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/simpleInsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing simple insertion into a 2-3 tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Simple Insertion into a 2-3 tree.",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/promoteCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/promoteCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=promoteCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/promoteCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how keys can be promoted on insertion into a 2-3 tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Promote Key on Insertion into a 2-3 tree.",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/splitCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/splitCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=splitCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/splitCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how node split on insertion is handled by a 2-3 tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Split on Insertion into a 2-3 tree.",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPbuildCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPbuildCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TTPbuildCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPbuildCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of insertions into a 2-3+ tree.",
    "author": [
      "Cliff Shaffer",
      "Liling Yuan"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Building a 2-3+ Tree Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPfindCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPfindCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TTPfindCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPfindCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of search operations in a 2-3+ tree.",
    "author": [
      "Cliff Shaffer",
      "Liling Yuan"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Search in a 2-3+ Tree",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPdeleteCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPdeleteCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TTPdeleteCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/TTPdeleteCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of delete operations in a 2-3+ tree.",
    "author": [
      "Cliff Shaffer",
      "Liling Yuan"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "2-3 Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Deletion from a 2-3+ Tree",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPfindCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPfindCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BPfindCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPfindCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of search operations in a B+ Tree of degree 4.",
    "author": [
      "Cliff Shaffer",
      "Liling Yuan"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "B-Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Search in a B+ Tree of Degree 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuildCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuildCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BPbuildCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuildCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of insert operations in a B+ Tree of degree 4.",
    "author": [
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "B-Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Building a  B+ Tree of Degree 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/bPlusTreeInsertPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/bPlusTreeInsertPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=bPlusTreeInsertPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Indexing/bPlusTreeInsertPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive proficiency exercise for insertion into a B+ Tree. User clicks on tree nodes to indicate how the insert process progresses through the tree.",
    "author": [
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "B-Tree",
      "Tree-Based Indexing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "B+ Tree Insertion Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPdeleteCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPdeleteCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BPdeleteCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPdeleteCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of delete operations in a B+ Tree of degree 4.",
    "author": [
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "B-Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Deletion from a B+ Tree of Degree 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuild5CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuild5CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BPbuild5CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Indexing/BPbuild5CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a series of insert operations in a B+ Tree of degree 5.",
    "author": [
      "Liling Yuan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing",
      "B-Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Building a  B+ Tree of Degree 5",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/IndexChoice.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/IndexChoice.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IndexChoice&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Indexing/IndexChoice.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-test question battery on which is the best indexing choice for a given scenario.",
    "author": [
      "Elmer Landaverde",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Tree-Based Indexing"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Choosing the Best Indexing Method",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePreTravCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePreTravCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GenTreePreTravCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePreTravCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing preorder traveral of a general tree, and demonstrates the general tree ADT.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "General Tree"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "General Tree Preorder Traversal Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePostTravCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePostTravCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GenTreePostTravCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/GenTreePostTravCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing postorder traveral of a general tree, and demonstrates the general tree ADT.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "General Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "General Tree Postorder Traversal Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/ufCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/ufCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ufCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/ufCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating processing of a series of union operations on a collection of disjoint sets. Shows the parent pointer representation used to maintain the set information.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Union/Find Algorithm",
      "Disjoint Set"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Union/Find Examaple Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/pathcompCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/pathcompCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pathcompCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/pathcompCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the path compression optimization for Union/Find. Shows the parent pointer representation used to maintain the set information.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Union/Find Algorithm",
      "Disjoint Set"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Union/Find with Path Compression Examaple Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/General/UnionFindPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/General/UnionFindPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=UnionFindPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/General/UnionFindPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for the Union/Find algorithm to maintain a collection of disjoint sets. User must show the complete sequence of steps for building the set representation by clicking on nodes to show that they are connected in the tree.",
    "author": [
      "Ville Karavirta"
    ],
    "institution": [
      "Aalto University"
    ],
    "keywords": [
      "Union/Find Algorithm"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Union/Find Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow how to reconstruct a binary tree from a serialized representation of its node values.",
    "author": [
      "Kevin Ellis"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Serialization",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Binary Tree Serialization Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the sequential representation for a given binary tree.",
    "author": [
      "Kevin Ellis",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Representation",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Binary Tree Sequential Representation Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeAltCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeAltCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeAltCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeAltCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow how to reconstruct a binary tree from a serialized representation of its node values. Alternative representation using mark bits to distinguish internal from leaf nodes.",
    "author": [
      "Kevin Ellis"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Serialization",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Binary Tree Serialization Slideshow: Internal Node Mark Bits",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeAltPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeAltPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeAltPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeAltPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the sequential representation for a given binary tree. This representation marks internal nodes.",
    "author": [
      "Kevin Ellis",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Representation",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Alternative Binary Tree Sequential Representation Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeBitsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeBitsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeBitsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialTreeBitsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow how to reconstruct a full binary tree from a serialized representation of its node values. All that is needed to represent the structure is a series of bit values indicating whether a node is internal or leaf.",
    "author": [
      "Kevin Ellis"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Serialization",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Full Binary Tree Serialization Slideshow: Mark Bits",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeBitVectorPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeBitVectorPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeBitVectorPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeBitVectorPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the sequential representation for a given full binary tree. The representation uses a bit vector to deduce shape.",
    "author": [
      "Kevin Ellis",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Representation",
      "Full Binary Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Full Binary Tree Sequential Representation Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialGenTreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialGenTreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialGenTreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/General/SequentialGenTreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow how to reconstruct a general tree from a serialized representation of its node values.",
    "author": [
      "Kevin Ellis"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Serialization",
      "Binary Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "General Tree Serialization Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeGenTreePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeGenTreePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SequentialTreeGenTreePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/General/SequentialTreeGenTreePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must show the sequential representation for a given general tree.",
    "author": [
      "Kevin Ellis",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Sequential Representation",
      "General Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "General Tree Sequential Representation Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GspaceCalcSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GspaceCalcSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GspaceCalcSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GspaceCalcSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must calculate the space requirements for a specified graph representation scenario.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Graph Representation"
    ],
    "features": [
      "Calculation"
    ],
    "title": "Space Requirements for Graph Representations Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GraphIntroSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GraphIntroSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GraphIntroSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/Graph/GraphIntroSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-practice questions related to graph terminology and representation.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Graph Representation"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Graph Introductory Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DFSCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DFSCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFSCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DFSCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the depth-first search algorithm for traversing a graph.",
    "author": [
      "Thomas Walton",
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Depth-First Search"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Depth-first graph traversal slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DFSPE.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DFSPE.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFSPE&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DFSPE.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for depth-first search to traverse a graph. User just indicate the order in which nodes are visited by clicking on them.",
    "author": [
      "Mohammed Farghally",
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech",
      "Aalto University"
    ],
    "keywords": [
      "Depth-First Search"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Depth-First Search Graph Traversal Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/BFSCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/BFSCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BFSCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/BFSCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the breadth-first search algorithm for traversing a graph.",
    "author": [
      "Thomas Walton",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Breadth-First Search"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Breadth-first graph traversal slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BFSAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization for breadth-first search to traverse a graph.",
    "author": [
      "Thomas Walton",
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Breadth-First Search"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Breadth-First Search Graph Traversal Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSPE.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSPE.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BFSPE&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/BFSPE.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for breadth-first search to traverse a graph. User must indicate the order in which nodes are visited by clicking on them.",
    "author": [
      "Mohammed Farghally",
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech",
      "Aalto University"
    ],
    "keywords": [
      "Breadth-First Search"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Breadth-First Search Graph Traversal Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortDFSCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortDFSCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=topSortDFSCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortDFSCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the depth-first topological sort algorithm.",
    "author": [
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Topological Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Depth-First Topological Sort Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortQCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortQCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=topSortQCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/topSortQCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the queue-based topological sort algorithm.",
    "author": [
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Topological Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Queue-Based Topological Sort Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DijkstraCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DijkstraCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DijkstraCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/DijkstraCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the Dijkstra's single-source shortest paths algorithm.",
    "author": [
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Shortest Path Problem"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Dijkstra's Single-Source Shortest Paths Algorithm",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DijkstraPE.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DijkstraPE.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DijkstraPE&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/DijkstraPE.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for Dijkstra's single-source --",
    "author": [
      "Mohammed Farghally",
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech",
      "Aalto University"
    ],
    "keywords": [
      "Shortest Path Problem"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Dijkstra's Single-Source Shortest Paths Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/primCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/primCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=primCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/primCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating Prim's algorithm for constructing the minimal cost spanning tree for a graph.",
    "author": [
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Minimal-Cost Spanning Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Prim's Minimal-Cost Spanning Tree Algorithm slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/PrimPE.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/PrimPE.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PrimPE&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/PrimPE.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for Prim's minimal-cost spanning tree. User must indicate the order in which nodes are visited by clicking on them.",
    "author": [
      "Mohammed Farghally",
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech",
      "Aalto University"
    ],
    "keywords": [
      "Minimal-Cost Spanning Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Prim's Minimal-Cost Spanning Tree Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/kruskalCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/kruskalCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=kruskalCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Graph/kruskalCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating Kruskal's algorithm for constructing the minimal cost spanning tree for a graph.",
    "author": [
      "Ivan Wong",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Minimal-Cost Spanning Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Kruskal's Minimal-Cost Spanning Tree Algorithm slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/KruskalPE.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/KruskalPE.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=KruskalPE&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Graph/KruskalPE.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for Kruskal's minimal-cost spanning tree. User must indicate the order in which nodes are visited by clicking on them.",
    "author": [
      "Mohammed Farghally",
      "Kasper Hellstrom"
    ],
    "institution": [
      "Virginia Tech",
      "Aalto University"
    ],
    "keywords": [
      "Minimal-Cost Spanning Tree"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Kruskal's Minimal-Cost Spanning Tree Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMgraphSumm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMgraphSumm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CMgraphSumm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/CMP/CMgraphSumm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Self-assessment question battery about graphs, using a concept map.",
    "author": [
      "Ehsan Elgendi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Graph"
    ],
    "features": [
      "Question Set",
      "Concept Map"
    ],
    "title": "Graph Concept Practice Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PRquadtreeAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for the PR Quadtree with one point per node.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "PR Quadtree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "PR Quadtree Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtree2ptAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtree2ptAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PRquadtree2ptAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtree2ptAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for the PR Quadtree with up to two points per node.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "PR Quadtree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "PR Quadtree Two Points Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeInter.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeInter.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PRquadtreeInter&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/PRquadtreeInter.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "PR Quadtree Visualization that allows the user to click on locations to insert points to be inserted into or deleted from the tree.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "PR Quadtree"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "PR Quadtree Interactive Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/kd-treeAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/kd-treeAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=kd-treeAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/kd-treeAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization illustrating the KD Tree.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "KD Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "KD Tree Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeAV.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeAV.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BintreeAV&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeAV.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for the Bintree data structure.",
    "author": [
      "Souleymane Dia",
      "Antony Rinaldi",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "PR Quadtree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Bintree Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeInter.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeInter.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BintreeInter&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/Spatial/BintreeInter.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive Algorithm Visualization for the Bintree data structure. User can click to indicate where a point should be inserted or deleted to build to tree structure. User can determine the number of points permitted in a node.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Bintree"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Bintree Interactive Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Background/SummationOneToNCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Background/SummationOneToNCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SummationOneToNCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Background/SummationOneToNCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how to calculate the closed form for the summation of the first N integers.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Summation"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Summation of the first N integers visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/GeometricSumProofCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/GeometricSumProofCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GeometricSumProofCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/GeometricSumProofCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how to calculate the closed form for the geometric series.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Summation"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Geometric Summation Proof",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ExpandRecurrenceCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ExpandRecurrenceCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ExpandRecurrenceCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ExpandRecurrenceCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how to calculate the closed form for a divide-and-conquer recurrence using the expansion technique.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recurrence Relation"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Expanding a Divide and Conquer Recurrence",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DandCRecurrenceCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DandCRecurrenceCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DandCRecurrenceCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DandCRecurrenceCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how to calculate the closed form for a divide-and-conquer recurrence using the Master Theorem.",
    "author": [
      "Yuhui Lyu",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Recurrence Relation",
      "Master Theorem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Master Theorem for Recurrence Relations",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/PosetCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/PosetCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PosetCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/PosetCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the use of posets in a proof of the lower bound for search in an unsorted list.",
    "author": [
      "Yuhui Lyu",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Poset",
      "Search in Unsorted Lists"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Using Posets for a Lower Bounds Proof",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binarySearchCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Searching/binarySearchCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating Binary Search and presenting its analysis.",
    "author": [
      "Pavel Hovhannisyan",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Search",
      "Algorithm Analysis"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Binary Search Algorithm",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListIntroCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListIntroCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SkipListIntroCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListIntroCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing an idealized version of the Skip List as an introduction to the concepts.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Skip List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Skip List Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListInsertCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListInsertCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SkipListInsertCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListInsertCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing examples of insertion into a Skip List.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Skip List",
      "Randomized Algorithm"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Skip List Insert Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListRmvCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListRmvCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SkipListRmvCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SearchStruct/SkipListRmvCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing examples of deletion from a Skip List.",
    "author": [
      "Souleymane Dia",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Skip List",
      "Randomized Algorithm"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Skip List Delete Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/BinomialTreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/BinomialTreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BinomialTreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/BinomialTreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a small example of building a binomial tree.",
    "author": [
      "Yuhui Lyu",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binomial Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Constructing a Binomial Tree",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/binaryinsertsortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/binaryinsertsortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=binaryinsertsortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/binaryinsertsortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of using binary search to find the insert location of the next record during Insertion Sort. Used to introduce the Ford and Johnson sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Binary Insertion Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Binary Insertion Sort Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/mergeinsertsortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/mergeinsertsortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=mergeinsertsortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Bounds/mergeinsertsortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow sketching the Merge Insertion Sort, or Ford and Johnson sort.",
    "author": [
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Merge Insertion Sort",
      "Ford",
      "Johnson Sort"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Merge Insertion Sort Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FibTreeCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FibTreeCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FibTreeCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FibTreeCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the tree structure for calls by a recursive implementation of the Fibonacci sequence calculation.",
    "author": [
      "Abishek Jha",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Dynamic Programming",
      "Fibonacci Sequence"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Call Structure for the Fibonacci Sequence Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/MatMulCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/MatMulCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MatMulCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/MatMulCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the tree structure for calls by a solution to the chained matrix multiplication problem.",
    "author": [
      "Abishek Jha",
      "Cliff Shaffer",
      "Angel Velazquez"
    ],
    "institution": [
      "Virginia Tech",
      "Universidad Rey Juan Carlos"
    ],
    "keywords": [
      "Dynamic Programming",
      "Chained Matrix Multplication Problem"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Call Structure for the Chained Matrix Multiplication Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SortingProblemCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SortingProblemCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SortingProblemCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SortingProblemCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing the basic notation for defining a problem, with the example being sorting.",
    "author": [
      "Mohammed Farghally",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Problem Notation Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/pairToSortCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/pairToSortCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=pairToSortCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/pairToSortCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a reduction of Pairing to Sorting. This demonstrates that the upper bound for Pairing is the same as the upper bound for Sorting. So, a standard 'software engineering' form of code reuse.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Pairing to Sorting",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/sortToPairCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/sortToPairCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=sortToPairCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/sortToPairCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a reduction of Sorting to Pairing. This demonstrates that the lower bound for Pairing is the same as the lower bound for Sorting.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Sorting to Pairing",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/matrixMulCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/matrixMulCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=matrixMulCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/matrixMulCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing a reduction of Matrix Multiply to Symmetric Matrix Multiply. This demonstrates that the lower bound for Symmetric Matrix Multiply is the same as the lower bound for (general) Matrix Multiply.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Symmetric Matrix Multiplication Reduction",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cliqueCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the Clique problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Clique Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Clique Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=circuitSATCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the circuit satisfiability problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Circuit Satisfiability Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Circuit Satisfiability Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SATCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the CNF satisfiability problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Satisfiability Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the CNF Satisfiability Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=threeSATCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the 3-CNF satisfiability problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Satisfiability Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the 3-CNF Satisfiability Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/threeSATPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/threeSATPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=threeSATPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/threeSATPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine whether a given 3-CNF expression has a satisfying truth assignment or not.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Satisfiability Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "3-Satisfiability Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATto3SATCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATto3SATCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SATto3SATCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/SATto3SATCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating that 3-Satisfiability is NP-Complete by a reduction from Satisfiability.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Clique Problem"
    ],
    "features": [
      "Proof Visualization"
    ],
    "title": "Proof that 3-SAT is NP-Complete Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cliqueCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the Clique problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Clique Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Clique Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/cliquePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/cliquePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cliquePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/cliquePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine the largest clique in a given graph.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Clique Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "Clique Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/independentSetCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/independentSetCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=independentSetCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/independentSetCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the independent set problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Independent Set Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Independent Set Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/independentSetPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/independentSetPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=independentSetPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/independentSetPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine the largest independent set in a given graph.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Independent Set Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "Independent Set Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/vertexCoverCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/vertexCoverCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=vertexCoverCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/vertexCoverCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the vertex cover problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Vertex Cover Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Vertex Cover Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/vertexCoverPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/vertexCoverPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=vertexCoverPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/vertexCoverPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine the smallest vertex cover in a given graph.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Vertex Cover Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "Vertex Cover Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/hamiltonianCycleCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/hamiltonianCycleCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hamiltonianCycleCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/hamiltonianCycleCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the Hamiltonian cycle problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hamiltonian Cycle Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Hamiltonian Cycle Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/hamiltonianCycPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/hamiltonianCycPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=hamiltonianCycPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/hamiltonianCycPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine whether a given graph has a Hamiltonian cycle.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Hamiltonian Cycle Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "Hamiltonian Cycle Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/TSPCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/TSPCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TSPCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/TSPCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the Traveling Salesman problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Traveling Salesman Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Introduction to the Traveling Salesman Problem",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/TSPPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/TSPPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TSPPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/NP/TSPPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User must determine the shortest complete cycle in a given graph.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Traveling Salesman Problem"
    ],
    "features": [
      "Demonstration Exercise"
    ],
    "title": "Traveling Saleseman Proficency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATtoSATCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATtoSATCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=circuitSATtoSATCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/circuitSATtoSATCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the Circuit Satisfiability problem to an instance of the CNF Satisfiability problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Satisfiability Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Circuit SAT to SAT Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoCliqueCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoCliqueCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=threeSATtoCliqueCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoCliqueCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the 3-Satisfiability problem to an instance of the Clique problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Satisfiability Problem",
      "Clique Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of 3-SAT to Clique Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/IStoVCCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/IStoVCCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IStoVCCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/IStoVCCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the Independent Set problem to an instance of the Vertex Cover problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Independent Set Problem",
      "Vertex Cover Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Independent Set to Vertex Cover Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoHCCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoHCCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=threeSATtoHCCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/threeSATtoHCCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the 3-Satisfiability problem to an instance of the Hamiltonian Cycle problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Satisfiability Problem",
      "Hamiltonian Cycle Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of 3-SAT to Hamiltonian Cycle Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueToISCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueToISCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=cliqueToISCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/cliqueToISCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the Clique problem to an instance of the Independent Set problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Clique Problem",
      "Independent Set Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Clique to Independent Set Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/HCtoTSPCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/HCtoTSPCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HCtoTSPCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/NP/HCtoTSPCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating a reduction from an instance of the Hamiltonian Cycle problem to an instance of the Traveling Salesman problem.",
    "author": [
      "Nabanita Maji",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Reduction",
      "Clique Problem",
      "Independent Set Problem"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Reduction of Hamiltonian Cycle to Traveling Salesman Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/polynomialCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/polynomialCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=polynomialCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/polynomialCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow showing how the terms of a polynomial affect its geometric shape.",
    "author": [
      "Irena Shaffer",
      "Alexandru Cioaca"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Polynomial Multiplication Introduction Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvalandInterpolationCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvalandInterpolationCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EvalandInterpolationCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvalandInterpolationCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow demonstrating the relationships of evaluation and interpolation of a polynomial.",
    "author": [
      "Irena Shaffer",
      "Alexandru Cioaca"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Polynomial Evaluation",
      "Polynomial Interpolation"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Evaluation and Interpolation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ProductCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ProductCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ProductCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/ProductCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of the process for muliplying to polynomials.",
    "author": [
      "Irena Shaffer",
      "Alexandru Cioaca"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Polynomial Product",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvaluationCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvaluationCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EvaluationCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvaluationCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of the relationship between evaluation of polynomials and multiplying polynomials.",
    "author": [
      "Irena Shaffer",
      "Alexandru Cioaca"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Evaluation"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Polynomial Evaluation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Polynomial_multiplication.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Polynomial_multiplication.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Polynomial_multiplication&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Polynomial_multiplication.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Polynomial multiplication concepts battery of self-assessment questions.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Transform",
      "Polynomial Multiplication",
      "Polynomial Evaluation"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Polynomial Multiplication and Evaluation Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvenOddCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvenOddCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EvenOddCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/EvenOddCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Demonstration of the symmetries between even powers versus odd powers for polynomial evaluation of a value and its negation.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Even and Odd Polynomials Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Nth_root.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Nth_root.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Nth_root&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/Nth_root.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Battery of self-assessment questions on the concept of the nth root of unity.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Fast Fourier Transform"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Nth Root of Unity Review Questions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTmatrixCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTmatrixCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFTmatrixCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTmatrixCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Demonstration of multiplying by the FFT symmetry matrix for the 8th power of unity.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Fast Fourier Transform"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Discrete Fourier Transform Matrix",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTpropCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTpropCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFTpropCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/DFTpropCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Demonstration of the symmetries found within the nth powers of unity matrix for the FFT.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Fast Fourier Transform"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Symmetries of the FFT Matrix",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FFTprocedureCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FFTprocedureCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FFTprocedureCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/SeniorAlgAnal/FFTprocedureCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visual demonstration of the Fast Fourier Transform for polynomial multiplication.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Fast Fourier Transform"
    ],
    "features": [
      "Code Tracing Visualization",
      "Algorithm Visualization"
    ],
    "title": "The Fast Fourier Transform",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/FFTAlg.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/FFTAlg.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FFTAlg&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/SeniorAlgAnal/FFTAlg.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Proficiency exercise for the Fast Fourier Transform algorithm.",
    "author": [
      "Irena Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Polynomial Multiplication",
      "Fast Fourier Transform"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "FFT Algorithm Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing generation of a parse tree for a simple math expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Parse Tree Example for a Math Expression",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTreeNodes.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTreeNodes.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTreeNodes&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTreeNodes.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine the number of nodes in a parse tree generated by a given string on a given grammar.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Parse Tree"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Determining Number of Parse Tree Nodes Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StringGenFromGmr.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StringGenFromGmr.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StringGenFromGmr&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StringGenFromGmr.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine which strings can or cannot be derived from a given grammar.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Parse Tree"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Determining Whether a Given String is Derivable from Given Grammar Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise on how to characterize the strings in the language for a given grammar on a's and b's.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Characterizing Languages Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise on how to characterize the strings in the language for a given grammar on palindromes.",
    "author": [
      "Tom Naps",
      "David Furcy"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Characterizing Languages Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5a.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5a.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree5a&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5a.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing how generation of a parse tree from a grammar might be ambiguous.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Ambiguous Parse Tree Example for a Math Expression",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5b.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5b.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree5b&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree5b.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing a second example of how generation of a parse tree from a grammar might be ambiguous.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Ambiguous Parse Tree Example for a Math Expression: 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine whether a given string is parsed ambiguously or not.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Parse Tree"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "CFG Ambiguity 1 Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions where users determine whether a given string is parsed ambiguously or not.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Ambiguity 2 Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/NumParseTrees3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions where users determine whether a given string is parsed ambiguously or not.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Ambiguity 3 Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeterminingAmbiguities.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeterminingAmbiguities.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeterminingAmbiguities&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeterminingAmbiguities.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine whether a given CFG is ambiguous or not.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Determining Ambiguity Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing a parse tree from a grammar that enforces the correct order of operations.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Parse Tree Example: Enforcing Order of Operations",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/AV/parseTree3a.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/AV/parseTree3a.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree3a&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/AV/parseTree3a.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Visualization for generating the parse tree of a user-supplied mathematical expression. Demonstrates that the associated grammar enforces the correct order of operations.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization",
      "User Supplied Data"
    ],
    "title": "Parsing an Expression",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/EvalExp.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/EvalExp.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EvalExp&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/EvalExp.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression under the definition of a given CFG.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Expression Evaluation Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Associativity.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Associativity.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Associativity&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Associativity.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression and deterimine if the grammar enforces correct associativity.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Associativity Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/PrecedenceAndAssociativity.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/PrecedenceAndAssociativity.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PrecedenceAndAssociativity&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/PrecedenceAndAssociativity.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression and deterimine if the grammar enforces correct precedence and associativity.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Precedence and Associativity Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CharacterizeLang3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users select a language description for a given CFG.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Language from CFG Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ExtendedBNF.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ExtendedBNF.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ExtendedBNF&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ExtendedBNF.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users select extended BNF statements matching a normal set of BNF statements.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Extended BNF Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Jison1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users calculate the number of strings parsed successfully by a given grammar.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parser Generator"
    ],
    "features": [
      "Calculation"
    ],
    "title": "Jison Grammar Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Jison2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Jison2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions where users calculate the number of strings parsed successfully by a given grammar.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parser Generator"
    ],
    "features": [
      "Calculation"
    ],
    "title": "Jison Grammar Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AnnotatingJison.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AnnotatingJison.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AnnotatingJison&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AnnotatingJison.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine the results of parsing a given collection of strings.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parser Generator"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Annotating Jison Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPcons.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPcons.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FPcons&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPcons.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the cons operator.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Cons Operator",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FPHdTlCons1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the cons, hd, and tl operators.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Cons, Hd, and Tl",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FPHdTlCons2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPHdTlCons2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to the cons, hd, and tl operators.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Cons, Hd, and Tl, Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPisEq.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPisEq.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FPisEq&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FPisEq.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the isEq operator.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: isEq",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP2Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing basic list processing in a functional programming language: Summation of list values.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming List Processing: Summation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecListProc1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to list processing in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive List Processing 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP2Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing basic list processing in a functional programming language: isMember function.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming List Processing: isMember",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecListProc2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to list processing in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive List Processing 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP2Code3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP2Code3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing basic list processing in a functional programming language: substitution function.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming List Processing: Substitution",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RecListProc3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/RecListProc3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions related to list processing in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive List Processing 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP3Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing list-of-list (tree) processing in a functional programming language: sum all values.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming Recursion: Summing Elements in a Tree",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeepRecur1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to tree processing in a functional programming language: Value summation.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Tree Processing: Value Summation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP3Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP3Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing list-of-list (tree) processing in a functional programming language: Binary Search Tree Search.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming Recursion: BST",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeepRecur2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to tree processing in a functional programming language: Substitution.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Tree Processing: Substitution",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeepRecur3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to tree processing in a functional programming language: Substitution 2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Tree Processing: Substitution 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeepRecur4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/DeepRecur4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to tree processing in a functional programming language: Mystery Function.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Recursive Tree Processing: Mystery Function",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP4Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing split and join operations in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Split and Join",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP4Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP4Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing using pivot as an example in the accumlator pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Accumulator Pattern Pivot",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SplitAndJoin.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SplitAndJoin.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SplitAndJoin&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SplitAndJoin.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to split and join operations with accumulators in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Split anad Join with Accumulators",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/QuickSort.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/QuickSort.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=QuickSort&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/QuickSort.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to using split and join to implement Quicksort.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Quicksort",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AccumulatorPatternPractice.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AccumulatorPatternPractice.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AccumulatorPatternPractice&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AccumulatorPatternPractice.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the accumulator pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Accumulator Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP5Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing scope and closure in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Scope and Closure",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP5Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing variable hoisting in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Variable Hoisting",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP5Code3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating nested scopes in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Nested Scopes",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code4CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code4CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP5Code4CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code4CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating static vs dynamic binding in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming Visualization: Static vs Dynamic Binding",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code5CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code5CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP5Code5CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP5Code5CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating closures in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Closures",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HigherOrderFuncs1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: higher order functions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Higher Order Functions 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HigherOrderFuncs2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to functional programming languages: higher order functions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Higher Order Functions 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=HigherOrderFuncs3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/HigherOrderFuncs3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions related to functional programming languages: higher order functions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Higher Order Functions 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StaticDynamic.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StaticDynamic.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StaticDynamic&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/StaticDynamic.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions related to functional programming languages: static vs. dynamic binding.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming Exercise: Static vs Dynamic Binding",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP6Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the mapping pattern in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming Visualization: Mapping Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Map.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Map.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Map&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Map.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: mapping pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming Exercise: Mapping Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP6Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing functional composition in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming Visualization: Functional Composition",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Compose.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Compose.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Compose&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Compose.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: functional composition.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming Exercise: Functional Composition",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP6Code3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP6Code3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing currying in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Currying",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Curry1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: curry 1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Curry 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Curry2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Curry2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: curry 2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Curry 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP7Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the filter pattern in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Filter Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Filter.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Filter.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Filter&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Filter.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: filter pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Filter",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP7Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the reduce/folding pattern in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Reduce/Folding Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP7Code3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP7Code3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the reduceRight pattern in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: ReduceRight Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Reduce1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: reduce pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Reduce 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Reduce2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: reduce and map pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Reduce and Map",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Reduce3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Reduce3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to functional programming languages: reduce pattern.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Reduce 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP8Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP8Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP8Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP8Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing the Map/Reduce pattern in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: MapReduce Pattern",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/MapReduce.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/MapReduce.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MapReduce&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/MapReduce.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to functional programming languages: map reduce.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Map Reduce",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TailRecursion.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TailRecursion.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TailRecursion&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TailRecursion.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: tail recursion.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Tail Recursion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP9Code1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating continuation passing in a functional programming language.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: Continuation Passing",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FP9Code2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/FP/FP9Code2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow comparing continuation passing with non-tail recursion and accumulation.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Functional Programming: CPS vs non-tail recursion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ContinuationPassing1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to functional programming languages: Continuation Passing Style.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Continuation Passing Style 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ContinuationPassing2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to functional programming languages: Continuation Passing Style.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Continuation Passing Style 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ContinuationPassing3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions related to functional programming languages: Continuation Passing Style.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Continuation Passing Style 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ContinuationPassing4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ContinuationPassing4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A fourth collection of self-practice questions related to functional programming languages: Continuation Passing Style.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Functional Programming: Continuation Passing Style 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=parseTree&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/parseTree.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing building a parse tree for lambda calculus expressions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Lambda Calculus: How to Build a Parse Tree",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LambdaCalcSyntax1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to syntax of the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Lambda Calculus: Syntax 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LambdaCalcSyntax2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSyntax2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to syntax of the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Lambda Calculus: Syntax 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSemantics.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSemantics.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LambdaCalcSemantics&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LambdaCalcSemantics.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to semantics of the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Semantics",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingFreeVars.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingFreeVars.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IdentifyingFreeVars&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingFreeVars.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to identifying free variables in a Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Free Variables",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingBoundVars.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingBoundVars.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=IdentifyingBoundVars&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/IdentifyingBoundVars.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to identifying bound variables in a Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Bound Variables",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AlphaConversionNew.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AlphaConversionNew.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AlphaConversionNew&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AlphaConversionNew.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to alpha conversion in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Alpha Conversion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SubstitutionCase1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to substitution subcases in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Substitution Subcases 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SubstitutionCase2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to substitution subcases in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Substitution Subcases 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SubstitutionCase3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SubstitutionCase3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions related to substitution subcases in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Substitution Subcases 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Substitution1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to substitution in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Substitution 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Substitution2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Substitution2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to substitution in the Lambda Calculus expression.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Substitution 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BetaRedex1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to Beta-redexes in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Beta-Redex",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BetaRedex2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaRedex2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to Beta-redexes with Alpha conversion in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Beta-Redex and Alpha Conversion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReduction.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReduction.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BetaReduction&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReduction.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to performing Beta-reduction in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Performing Beta Reductions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/LCPractice.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/LCPractice.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LCPractice&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/LCPractice.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Proficiency Exercise for determining reduction orders in Lambda Calculus expressions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Practicing Lambda Calculus Reduction",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BetaReductionOrder1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to Beta reduction order in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Beta Reduction Order 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=BetaReductionOrder2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/BetaReductionOrder2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to Beta reduction order in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Beta Reduction Order 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/applicativeOrderPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/applicativeOrderPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=applicativeOrderPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/applicativeOrderPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Proficiency Exercise for determining applicative-order reduction in Lambda Calculus expressions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Applicative-order reduction Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/tempNormalOrderPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/tempNormalOrderPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=tempNormalOrderPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/tempNormalOrderPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Algorithm Proficiency Exercise for determining normal-order reduction in Lambda Calculus expressions.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Normal-order reduction Proficiency Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_boolCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_boolCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=church_boolCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_boolCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow visualizing reduction of true and false using Church bools.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Reduction of True and False using Church Bools",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchIfThen.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchIfThen.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ChurchIfThen&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchIfThen.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to if-then-else in Church encoding in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: If-Then-Else in Church Encoding",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchOR.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchOR.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ChurchOR&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchOR.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to or in Church encoding in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: OR in Church Encoding",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_numeralCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_numeralCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=church_numeralCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_numeralCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating reduction for Church numerals.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Church Numerals",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_multCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_multCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=church_multCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/AV/church_multCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating reduction for Church numerals: Multiplication.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Church Numerals 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchNumerals.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchNumerals.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ChurchNumerals&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ChurchNumerals.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to Church numerals in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Lambda Calculus: Church Numerals",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FixedPointCombinators.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FixedPointCombinators.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=FixedPointCombinators&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/FixedPointCombinators.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to identifying fixed point combinators in the Lambda Calculus.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Lambda Calculus"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Identifying Fixed Point Combinators",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1_new.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1_new.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ConcreteSynSLang1_new&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1_new.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the syntax of functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Concrete Syntax of SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ConcreteSynSLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/ConcreteSynSLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions related to the syntax of functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Concrete Syntax of SLang1: 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AbstractSynSLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AbstractSynSLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AbstractSynSLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/AbstractSynSLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the abstract syntax of functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Abstract Syntax of SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CurryInSLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CurryInSLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CurryInSLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CurryInSLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to curry in the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Curry in SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SemanticsSLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SemanticsSLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=SemanticsSLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/SemanticsSLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the semantics of the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Semantics of SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Environment1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to determining  values bound to a variable in environment of the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Determine Values Bound to a Variable in Environment",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Environment2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to expression evaluation for the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Expression Evaluation for SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Environment3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Environment3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to denoted values in the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Denoted Values in SLang1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetSynSugar.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetSynSugar.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LetSynSugar&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetSynSugar.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to nesting Let expressions implemented only syntactically in the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Nested Lets Syntax-Only",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNested.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNested.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LetNested&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNested.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to nesting Let expressions in the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Nested Lets",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNestedWithClosures.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNestedWithClosures.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LetNestedWithClosures&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/LetNestedWithClosures.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to nested Let expressions with closures in the functional programming language SLang1.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Nested Lets with Closures",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/OutputOfSLang2Prog.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/OutputOfSLang2Prog.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=OutputOfSLang2Prog&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/OutputOfSLang2Prog.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to the output of imperative language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Output of an SLang2 Program",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TyingTheKnot.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TyingTheKnot.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TyingTheKnot&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/TyingTheKnot.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions related to using recursion in imperative language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Functional Programming"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Efficient Recursion in SLang2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByVal.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByVal.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByVal&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByVal.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating parameter passing by value in SLang2.",
    "author": [
      "Cory Sanin",
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Parameter Passing by Value",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByValPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByValPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByValPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByValPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with parameter passing by value.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Parameter Passing by Value Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRef.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRef.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByRef&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRef.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of parameter passing by reference in SLang2.",
    "author": [
      "Cory Sanin",
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Parameter Passing by Reference Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRefPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRefPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByRefPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByRefPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with parameter passing by reference.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Parameter Passing by Reference Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRef.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRef.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CallByValVsRef&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRef.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions to compare parameter passing by value vs passing by reference in language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Parameter Passing by Value vs Reference Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestore.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestore.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingCopyRestore&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestore.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of parameter passing by copy-restore in SLang2.",
    "author": [
      "Cory Sanin",
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Parameter Passing by Copy-Restore Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestorePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestorePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingCopyRestorePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingCopyRestorePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with parameter passing by copy-restore.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Parameter Passing by Copy-Restore Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRefVsCR.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRefVsCR.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CallByValVsRefVsCR&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByValVsRefVsCR.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions to compare parameter passing by value vs passing by reference vs copy-restore in language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Parameter Passing by Value vs Reference Exercise vs Copy-Restore",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacro.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacro.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingMacro&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacro.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of parameter passing by macro in SLang2.",
    "author": [
      "Cory Sanin",
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Parameter Passing by Macro Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacroPRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacroPRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingMacroPRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingMacroPRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with parameter passing by macro.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Parameter Passing by Macro Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByRefVsCRVsMacro.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByRefVsCRVsMacro.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CallByRefVsCRVsMacro&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByRefVsCRVsMacro.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions to compare parameter passing by reference vs copy-restore vs macro in language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Parameter Passing by Reference vs Copy-Restore vs Macro",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByName.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByName.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByName&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByName.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of parameter passing by name in SLang2.",
    "author": [
      "Cory Sanin",
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Visualization"
    ],
    "title": "Parameter Passing by Name Visualization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByNamePRO.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByNamePRO.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=paramPassingByNamePRO&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/PL/paramPassingByNamePRO.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Interactive exercise to demonstrate proficiency with parameter passing by name.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Algorithm Tracing Exercise"
    ],
    "title": "Parameter Passing by Name Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByCRVsMacroVsName.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByCRVsMacroVsName.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CallByCRVsMacroVsName&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByCRVsMacroVsName.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions to compare parameter passing by five methods.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Parameter Passing Comparison of Five Methods",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByAllFive.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByAllFive.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CallByAllFive&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/CallByAllFive.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions to compare parameter passing by copy-restore vs macro vs name in language SLang2.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Parameter Passing by Copy-Restore vs Macro vs Name",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists1CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists1CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists1CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists1CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the concept of a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "From Operation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists2CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists2CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists2CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists2CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the lazy list from operation.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists3CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists3CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists3CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists3CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the map operation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Map Operation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists4CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists4CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists4CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists4CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the filter operation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Filter Operation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists5CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists5CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists5CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists5CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the drop operation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Drop Operation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists6CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists6CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists6CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists6CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the iterates operation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Iterates Operation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists7CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists7CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists7CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists7CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the concept of eager evaluation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Eager Evaluation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists8CON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists8CON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LazyLists8CON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PL/LazyLists/LazyLists8CON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow illustrating the concept of lazy evaluation for a lazy list.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing",
      "Lazy List"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Lazy Lists Lazy Evaluation",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InfSeq1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where user matches code to an output sequence.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Matching Sequence to Code",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InfSeq2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where user writes code to generate a given sequence.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Writing Infinite Sequence",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InfSeq3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where user shows the sequence generated by a given piece of code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Sequences Code Output Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=InfSeq4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/InfSeq4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where user shows the output generated by a given piece of code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Parameter Passing"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "Match Code to Output Exercise",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A fourth collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing5.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing5.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing5&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing5.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A fifth collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 5",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing6.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing6.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Typing6&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/PL/Typing6.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A sixth collection of self-practice questions where user matches a ML type inference with its code.",
    "author": [
      "David Furcy",
      "Tom Naps"
    ],
    "institution": [
      "UW-Oshkosh"
    ],
    "keywords": [
      "Type"
    ],
    "features": [
      "Code Tracing Exercise"
    ],
    "title": "ML Type Inferencing 6",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/LanguagesFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/LanguagesFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LanguagesFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/LanguagesFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing the concept of a language.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Introduction to the Concept of a Language",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/GrammarIntroFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/GrammarIntroFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GrammarIntroFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Intro/GrammarIntroFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing the concept of a grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Introduction to the Concept of a Grammar",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise on how to characterize the strings in the language for a given grammar on a's and b's. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Characterizing Languages Exercise 1: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise on how to characterize the strings in the language for a given grammar on palindromes. Alternate version.",
    "author": [
      "Tom Naps",
      "David Furcy",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Characterizing Languages Exercise 2: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntro3str.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntro3str.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GramIntro3str&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntro3str.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise where user must write the grammar for a given language. This language has three strings.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "Grammar Construction Exercise: Three Strings",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanb2n.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanb2n.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GramIntroanb2n&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanb2n.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise where user must write the grammar for a given language. This language has some a's followed by twice as many b's.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "Grammar Construction Exercise: abb",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanbm.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanbm.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GramIntroanbm&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanbm.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise where user must write the grammar for a given language. This language has some a's followed by some b's.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "Grammar Construction Exercise: a's and b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Parens.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Parens.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Parens&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Parens.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise where user must write the grammar for a given language. This language has balanced and properly nested parentheses.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "Grammar Construction Exercise: Balanced Parentheses",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Palendrome.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Palendrome.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Palendrome&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Grammar/Palendrome.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Exercise where user must write the grammar for a given language. This language is palendromes on a's and b's.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Language",
      "Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "Grammar Construction Exercise: Palendrome",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAintroFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAintroFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAintroFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAintroFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset covering the formal definition of a DFA.",
    "author": [
      "John Taylor",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: DFA Definitions",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/MachineTraceCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/MachineTraceCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MachineTraceCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/MachineTraceCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of how a DFA would process an input string.",
    "author": [
      "Jeffrey Peng"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "DFA Example Trace: How a DFA Traces",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/TraceEvenBinaryDFACON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/TraceEvenBinaryDFACON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TraceEvenBinaryDFACON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/FA/TraceEvenBinaryDFACON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of how a DFA would process input strings for the language of even binary numbers.",
    "author": [
      "Jeffrey Peng",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "DFA Example Trace: Even Binary Numbers",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAEvenBinary.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAEvenBinary.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAEvenBinary&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAEvenBinary.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of even binary numbers.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Even Binary Numbers",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAadvancedFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAadvancedFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAadvancedFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAadvancedFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset covering more advanced DFA concepts.",
    "author": [
      "John Taylor",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: DFA Advanced Concepts",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAodda&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an odd number of a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Odd a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAoddaevenb.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAoddaevenb.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAoddaevenb&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAoddaevenb.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an odd number of a's and an even number of b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Odd a's, Even b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda3b.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda3b.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAodda3b&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda3b.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an odd number of a's and at most 3 b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Odd a's, 3 b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAno3a.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAno3a.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAno3a&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAno3a.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings of a's and b's without 3 consecutive a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: No 3 a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPno3a.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPno3a.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFACOMPno3a&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPno3a.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings of a's and b's that have 3 consecutive a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Compliment of No 3 a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevena.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevena.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAevena&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevena.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an even number of a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Even a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbsurrounda.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbsurrounda.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAbsurrounda&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbsurrounda.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings where every a is surrounded by b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: b Surrounds a",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAdiv4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAdiv4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAdiv4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAdiv4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings of binary numbers divisible by 4.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Divisible by 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenamin3b.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenamin3b.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAevenamin3b&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenamin3b.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an even number of a's and at least 3 b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Even a, 3 b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPevenamin3b.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPevenamin3b.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFACOMPevenamin3b&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPevenamin3b.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the complement of the langugage of strings with an even number of a's and at least 3 b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Complement Even a, 3 b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenaoddb.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenaoddb.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAevenaoddb&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenaoddb.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an even number of a's and an odd number of b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Even a's Odd b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenabsoddas.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenabsoddas.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAevenabsoddas&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenabsoddas.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with an even number of a's, followed by at least one b, followed by zero or an odd number of a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Even a's, b's, odd a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbotheo.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbotheo.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAbotheo&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAbotheo.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with both even a's and b's, or both odd a's and b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Both Even or Odd",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAnoba.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAnoba.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAnoba&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAnoba.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the langugage of strings with a's and b's that does not end in ba.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: No ba",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPnoba.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPnoba.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFACOMPnoba&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFACOMPnoba.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that accepts the complement of the langugage of strings with a's and b's that does not end in ba.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Complement No ba",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFAFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFAFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NFAFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFAFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset introducing the concept of non-determinism and the NFA.",
    "author": [
      "John Taylor",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: Non-Deterministic Finite Automata",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFA2DFAlargeExFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFA2DFAlargeExFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NFA2DFAlargeExFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/NFA2DFAlargeExFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset with an example for converting an NFA to an equivalent DFA.",
    "author": [
      "John Taylor",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: NFA to DFA Conversion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NFAtoDFAex1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User shows the steps to convert a given NFA to an equivalent DFA: Exercise 1",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Convert NFA to DFA Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAex1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAex1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NFAex1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/NFAex1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Construct an NFA: Exercise 1",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "NFA Construction Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAMinFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting the algorithm to minimize the number of states in a DFA.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: DFA Minimization",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx1FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx1FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAMinEx1FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx1FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting the algorithm to minimize the number of states in a DFA: Example 1.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: DFA Minimization Example 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx2FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx2FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAMinEx2FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/FA/DFAMinEx2FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting the algorithm to minimize the number of states in a DFA: Example 2.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Programmed Instruction: DFA Minimization Example 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAMinEx3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User shows the steps in the algorithm to minimize the states in a given DFA. Exercise 1.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Minimize the Number of State Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx4.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx4.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAMinEx4&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx4.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User shows the steps in the algorithm to minimize the states in a given DFA. Exercise 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Deterministic Finite Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Minimize the Number of State Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegExFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegExFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegExFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset introducing Regular Expressions their formal definition.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaba.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaba.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExaba&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaba.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the language of strings containing aba.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings Containing aba",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExbbaeven.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExbbaeven.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExbbaeven&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExbbaeven.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the langugae of strings containing bba in an even position.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings Containing bba in an Even Position",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExnoaa.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExnoaa.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExnoaa&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExnoaa.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the langugae of strings containing no occurance of aa.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings Containing No aa",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExonebbb.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExonebbb.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExonebbb&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExonebbb.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the langugae of strings containing exactly one instance of bbb.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings Containing One bbb",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExevenbinary.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExevenbinary.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExevenbinary&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExevenbinary.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the language of strings that are even binary numbers.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings of Even Binary Numbers",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaby3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaby3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExaby3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaby3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the language of strings that contain a multiple of 3 a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings of Multiples of 3 a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExcb2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExcb2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExcb2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExcb2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the language of strings where the number of b's and c's sums to 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings of 2 b's and c's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExabyb.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExabyb.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegExabyb&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegExabyb.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular expression for the language of strings where every a is either proceeded or followed by b.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Expression Exercise: Strings of a's Preceded or Followed by b",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFA1FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFA1FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEx2NFA1FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFA1FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting Part 1 of 4 parts of a proof of equivalence of Regular Expressions and NFAs.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Equivalent to NFA: Part 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAorFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAorFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEx2NFAorFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAorFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting Part 2 of 4 parts of a proof of equivalence of Regular Expressions and NFAs. Or'ing two Regular Expressions.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Equivalent to NFA: Part 2: Or",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAcatFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAcatFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEx2NFAcatFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAcatFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting Part 3 of 4 parts of a proof of equivalence of Regular Expressions and NFAs. Concatenating two Regular Expressions.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Equivalent to NFA: Part 3: Concatenate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAstarFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAstarFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEx2NFAstarFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAstarFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting Part 4 of 4 parts of a proof of equivalence of Regular Expressions and NFAs. Kleene Star of a Regular Expression.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Equivalent to NFA: Part 4: Star",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAExampleFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAExampleFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEx2NFAExampleFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEx2NFAExampleFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting examples of converting a Regular Expression to an equivalend NFA.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Expressions Equivalent to NFA: Example",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/Regular/REtoMinimizedDFACON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/Regular/REtoMinimizedDFACON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=REtoMinimizedDFACON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/Regular/REtoMinimizedDFACON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization presenting examples of converting a Regular Expression to an equivalend NFA.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Regular Expression to Minimized DFA Example",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ConvertRLREFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ConvertRLREFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ConvertRLREFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ConvertRLREFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting an example of converting a NFA to an equivalent Regular Expression.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "NFA Conversion to Regular Expression Example",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegularGrammarFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegularGrammarFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegularGrammarFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegularGrammarFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting an introduction to regular grammars, their definitions and properties.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Regular Grammars Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RGtoNFAFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RGtoNFAFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RGtoNFAFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RGtoNFAFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting a conversion from a regular grammar to an equivalent NFA.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Converting Regular Grammars to NFAs Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/NFAtoRGFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/NFAtoRGFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NFAtoRGFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/NFAtoRGFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting a conversion from a NFA to an equivalent regular grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language",
      "Non-Deterministic Finite Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Converting NFAs to Regular Grammars Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/LLGrammarFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/LLGrammarFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=LLGrammarFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/LLGrammarFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting right and left regular grammars and conversion between them.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Right and Left Regular Grammars Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoRegGrammarFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoRegGrammarFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEXtoRegGrammarFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoRegGrammarFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting a conversion from a regular expression to a right regular grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Converting a RegEx to a Right Regular Grammar Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoLeftRegGrammarFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoLeftRegGrammarFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegEXtoLeftRegGrammarFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RegEXtoLeftRegGrammarFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting a conversion from a regular expression to a left regular grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Grammar",
      "Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Converting a RegEx to a Left Regular Grammar Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramNFA1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes a regular grammar equivalent to a given NFA: Exercise 1.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Deterministic Finite Automata",
      "Regular Grammar"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: NFA conversion",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGrambbbaaaa.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGrambbbaaaa.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGrambbbaaaa&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGrambbbaaaa.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular grammar for the language of strings that meet this regular expression: bb*aaa*",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: bb*aaa*",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaby3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaby3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramaby3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaby3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular grammar for the language of strings with the number of a's being divisible by 3.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: a's a Multiple of 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramNFA2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes a regular grammar equivalent to a given NFA: Exercise 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Deterministic Finite Automata",
      "Regular Grammar"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: NFA Conversion 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2r.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2r.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramNFA2r&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2r.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes a right regular grammar equivalent to a given NFA: Exercise 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Deterministic Finite Automata",
      "Regular Grammar"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: NFA Conversion to Right Regular Grammar",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaaabba.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaaabba.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramaaabba&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaaabba.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular grammar for the language of strings matching the regular expression (aaab*ba)*.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: aaab*ba",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramanbmodd.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramanbmodd.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RegGramanbmodd&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramanbmodd.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User writes an regular grammar for the language of strings with an odd length.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Expression"
    ],
    "features": [
      "Regular Expression Writing Exercise"
    ],
    "title": "Regular Grammar Exercise: Number of a's and b's is Odd",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ClosureConceptFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ClosureConceptFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ClosureConceptFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/ClosureConceptFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset reviewing the concept of closure properties, in the context of regular languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Review of the Concept of Closure Properties",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosPropFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosPropFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RLClosPropFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosPropFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting some basic operations that are closed for regular languages, like intersection.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Basic Closure Properties of Regular Languages",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosQuotientFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosQuotientFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RLClosQuotientFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLClosQuotientFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting the concept of right quotient, and a proof that this operator is closed for regular languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Closure Properties for Regular Languages: Right Quotient",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLHomomorphFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLHomomorphFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RLHomomorphFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLHomomorphFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset presenting the concept of homomorphism, and a proof that this operator is closed for regular languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Closure Properties for Regular Languages: Homomorphism",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLQuestionsCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLQuestionsCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RLQuestionsCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/Regular/RLQuestionsCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset reviews the concept of decideablilty and presenting some key questions that are decideable for regular languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Decideable Questions about Regular Languages",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introNonRegularFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introNonRegularFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=introNonRegularFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introNonRegularFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing the concept of a non-regular language and ideas for how to recognize one.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Introduction to the Concept of a Non-Regular Language",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/Proof1NonRegularCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/Proof1NonRegularCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Proof1NonRegularCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/Proof1NonRegularCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Introduction to the Pumping Lemma for regular languages. Includes a visualization for how this works.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pumping Lemma",
      "Non-Regular Language"
    ],
    "features": [
      "Proof Visualization"
    ],
    "title": "Introduction to the Pumping Lemma",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introPumpingFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introPumpingFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=introPumpingFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/introPumpingFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing the concept of a the pumping lemma for regular languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Introduction to the Concept of the Pumping Lemma",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/PumpingLemmaCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/PumpingLemmaCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PumpingLemmaCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/NonReg/PumpingLemmaCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Simple demonstration of a Pumping Lemma proof to show that a language is not regular.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pumping Lemma",
      "Non-Regular Language"
    ],
    "features": [
      "Proof Visualization"
    ],
    "title": "Pumping Lemma Slideshow",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampanbnFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampanbnFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PLExampanbnFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampanbnFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow showing the pumping lemma proof that the language a^n b^n is not regular.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Pumping Lemma Example: a^n b^n",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampwwRFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampwwRFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PLExampwwRFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampwwRFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow showing the pumping lemma proof that the language consisting of a string w followed by the reverse of w is not regular.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Pumping Lemma Example: wwR",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampa3bncn3FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampa3bncn3FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PLExampa3bncn3FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/PLExampa3bncn3FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow showing the harder pumping lemma proof where there are multiple cases to consider.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Pumping Lemma Example: Harder Proof",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/VisFormalLang/NonReg/PLGame.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/VisFormalLang/NonReg/PLGame.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PLGame&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/VisFormalLang/NonReg/PLGame.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Demonstration of an adversary argument for the Pumping Lemma, in the form of an adversary game.",
    "author": [
      "Yuhui Lyu",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pumping Lemma",
      "Regular Language",
      "Adversary Argument"
    ],
    "features": [
      "Interactive Proficiency Exercise"
    ],
    "title": "Pumping Lemma Game",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ClosPropFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing the concept of using closure properties to prove a language non-regular.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Closure Properties to Show a Language Non-Regular",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx1FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx1FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ClosPropEx1FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx1FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow demonstrating an example of using closure properties to prove a language non-regular. Language: a^n b^m a^m.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Closure Properties to Show a Language Non-Regular: Example 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx2FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx2FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ClosPropEx2FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/NonRegular/ClosPropEx2FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow demonstrating an example of using closure properties to prove a language non-regular. Example 2.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Non-Regular Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction",
      "Proof Visualization"
    ],
    "title": "Closure Properties to Show a Language Non-Regular: Example 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFLFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFLFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFLFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset introducing Context-Free Languages and their formal definition.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFGDerivationsFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFGDerivationsFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFGDerivationsFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/CFGDerivationsFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing derivations of strings from Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Derivations Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/DerivationTreesFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/DerivationTreesFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DerivationTreesFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/DerivationTreesFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing derivation trees for Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Derivation Trees Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TreeExampleCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TreeExampleCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TreeExampleCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TreeExampleCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization of a derviation tree from a given context-free grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Context-Free Language Derivation Trees Example",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTreeNodes.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTreeNodes.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTreeNodes&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTreeNodes.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine the number of nodes in a parse tree generated by a given string on a given grammar: Alternate.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Parse Tree"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Determining Number of Parse Tree Nodes Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/MembershipFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/MembershipFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=MembershipFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/MembershipFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing how to recognize if a given string is derivable from a given Context-Free Grammar.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Membership Problem Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/StringGenFromGmr.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/StringGenFromGmr.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=StringGenFromGmr&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/StringGenFromGmr.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine which strings can or cannot be derived from a given grammar: Alternate.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Parse Tree"
    ],
    "features": [
      "Calculation Exercise"
    ],
    "title": "Determining Whether a Given String is Derivable from Given Grammar Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/AmbiguityFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/AmbiguityFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=AmbiguityFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/AmbiguityFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing ambiguity in Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Ambiguity Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine whether a given string is parsed ambiguously or not. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Ambiguity 1 Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A second collection of self-practice questions where users determine whether a given string is parsed ambiguously or not. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Ambiguity 2 Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NumParseTrees3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/NumParseTrees3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A third collection of self-practice questions where users determine whether a given string is parsed ambiguously or not. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Ambiguity 3 Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/DeterminingAmbiguities.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/DeterminingAmbiguities.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DeterminingAmbiguities&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/DeterminingAmbiguities.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users determine whether a given CFG is ambiguous or not. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Determining Ambiguity Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/EvalExp.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/EvalExp.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=EvalExp&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/EvalExp.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression under the definition of a given CFG. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Expression Evaluation Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/CFG/ParseTreeForExpCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/CFG/ParseTreeForExpCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ParseTreeForExpCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/CFG/ParseTreeForExpCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Visualization for the parse tree generated for a mathematical expression from a non-ambiguouse CFG.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Parse Tree"
    ],
    "features": [
      "Algorithm Visualization"
    ],
    "title": "Unambiguous CFG Parse Tree Example",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/Associativity.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/Associativity.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=Associativity&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/Associativity.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression and deterimine if the grammar enforces correct associativity. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Associativity Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/PrecedenceAndAssociativity.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/PrecedenceAndAssociativity.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PrecedenceAndAssociativity&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/PrecedenceAndAssociativity.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users evaluate a mathematical expression and deterimine if the grammar enforces correct precedence and associativity. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar",
      "Ambiguity"
    ],
    "features": [
      "Question Set"
    ],
    "title": "CFG Precedence and Associativity Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang3.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang3.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CharacterizeLang3&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/CharacterizeLang3.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users select a language description for a given CFG. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Language from CFG Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/ExtendedBNF.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/ExtendedBNF.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ExtendedBNF&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/Exercises/FLA/ExtendedBNF.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "A collection of self-practice questions where users select extended BNF statements matching a normal set of BNF statements. Alternate version.",
    "author": [
      "David Furcy",
      "Tom Naps",
      "Mostafa Mohammed"
    ],
    "institution": [
      "UW-Oshkosh",
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Question Set"
    ],
    "title": "Extended BNF Exercise: Alternate",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/anbmodd.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/anbmodd.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=anbmodd&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/anbmodd.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a CFG that generates strings in the language a^nb^m where m - n is positive, odd.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Exercise: Odd length",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambicn.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambicn.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ambicn&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambicn.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a CFG that generates strings in the language a^mb^ic^n, i < 3.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Exercise: a^mb^ic^n, i less than 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambian.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambian.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ambian&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ambian.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a CFG that generates strings in the language a^mb^ia^n, i=m+n.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Exercise: a^mb^ia^n, i=m+n",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/asbsequal.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/asbsequal.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=asbsequal&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/asbsequal.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a CFG that generates strings in the language where the number of a's and b's is equal.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Exercise: a's and b's are equal",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TransformGrammarsFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TransformGrammarsFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TransformGrammarsFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/TransformGrammarsFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing reasons for transforming Context-Free Grammars to simpler versions.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUselessFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUselessFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RemoveUselessFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUselessFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing removing useless productions from Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation: Useless Productions Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveLambdaFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveLambdaFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RemoveLambdaFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveLambdaFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing removing lambda productions from Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation: Remove Lambda Productions Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUnitFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUnitFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=RemoveUnitFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/RemoveUnitFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing removing unit productions from Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation: Remove Unit Productions Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/ChomskyNormalFormFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/ChomskyNormalFormFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ChomskyNormalFormFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/ChomskyNormalFormFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing Chomsky Normal Form for Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation: Chomsky Normal Form Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/GreibachNormalFormFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/GreibachNormalFormFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GreibachNormalFormFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/CFL/GreibachNormalFormFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing Greibach Normal Form for Context-Free Grammars.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Grammar Transformation: Greibach Normal Form Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/DFAmod3b.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/DFAmod3b.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DFAmod3b&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/DFAmod3b.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a DFA that recognizes strings with length a multiple of 3 and containing no instance of aab.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "DFA Exercise: Length a Multiple of 3 with No aab",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx1.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx1.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFGTransEx1&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx1.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates an equivalent CFG with no usless, lambda, or unit productions: Exercise 1.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Transformation Exercise 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFGTransEx2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/CFGTransEx2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates an equivalent CFG with no usless, lambda, or unit productions: Exercise 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Transformation Exercise 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ChomskyEx.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ChomskyEx.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ChomskyEx&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/CFL/ChomskyEx.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates an equivalent CFG in Chomsky Normal Form.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Grammar"
    ],
    "features": [
      "Grammar Construction Exercise"
    ],
    "title": "CFG Transformation: Chomsky Normal Form",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset introducing Pushdown Automata and their formal definition.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Pushdown Automata Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDATransitionsFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDATransitionsFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDATransitionsFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDATransitionsFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing Pushdown Automata transition types.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pushdown Automata Transitions Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptanceFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptanceFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAAcceptanceFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptanceFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing Pushdown Automata acceptance models.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pushdown Automata Acceptance Models Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAEmptyStackFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAEmptyStackFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAEmptyStackFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAEmptyStackFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing Pushdown Automata and the empty stack acceptance model.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pushdown Automata Empty Stack Acceptance Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptEquivFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptEquivFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAAcceptEquivFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDAAcceptEquivFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing the equivalence of various Pushdown Automata acceptance models.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pushdown Automata Acceptance Model Equivalence Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAwcwR.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAwcwR.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAwcwR&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAwcwR.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Pushdowns Automata that accepts the langugage WcW^R.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "PDA Exercise: String and Reverse",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaicjbi.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaicjbi.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAaicjbi&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaicjbi.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Pushdowns Automata that accepts the langugage a^ic^jb^i.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "PDA Exercise: Equal a's and b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDA2asperb.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDA2asperb.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDA2asperb&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDA2asperb.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Pushdowns Automata that accepts the langugage of strings that have twice as many a's as b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "PDA Exercise: Twice as many a's as b's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaibjck.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaibjck.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDAaibjck&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/PDA/PDAaibjck.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Pushdowns Automata that accepts the langugage of a's b's and c's with as many a's as either b's or c's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "PDA Exercise: Equal a's to b's or c's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDACFLFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDACFLFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=PDACFLFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/PDACFLFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing the relationship between Pushdown Automata and context free languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Pushdown Automata and Context Free Languages",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/DPDAFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/DPDAFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=DPDAFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/DPDAFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing the differences between deterministic and non-deterministic PDAs.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Deterministic vs Nondeterministic PDAs",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/NCFLProofFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/NCFLProofFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=NCFLProofFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/NCFLProofFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset with a proof that there exists a CFL that is not a deterministic CFL.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Pushdown Automata"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Proof not all CFL are Deterministic",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/GrammarsForDCFLFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/GrammarsForDCFLFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=GrammarsForDCFLFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/GrammarsForDCFLFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction Frameset discussing grammars for deterministic context free languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Grammars for Deterministic CFL",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLClosurePropFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLClosurePropFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLClosurePropFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLClosurePropFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow explaining the concept and giving examples of closure properties for Context-Free Languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Closure Property"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Closure Properties for Context-Free Languages",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingLemmaFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingLemmaFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLPumpingLemmaFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingLemmaFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow introducing a pumping lemma for Context-Free Languages.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Pumping Lemma"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Pumping Lemma for Context-Free Languages",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx1FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx1FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLPumpingEx1FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx1FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow giving an example for using a pumping lemma to prove a language is not Context-Free: a^n b^n c^n.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Pumping Lemma"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Pumping Lemma Example 1",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx2FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx2FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLPumpingEx2FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx2FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow giving an example for using a pumping lemma to prove a language is not Context-Free: a^n b^n c^p.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Pumping Lemma"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Pumping Lemma Example 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx3FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx3FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLPumpingEx3FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx3FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow giving an example for using a pumping lemma to prove a language is not Context-Free: a^j b^k with k = j^2.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Pumping Lemma"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Pumping Lemma Example 3",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx4FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx4FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=CFLPumpingEx4FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/PDA/CFLPumpingEx4FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Programmed Instruction slideshow giving an example for using a pumping lemma to prove a language is not Context-Free: w, reverse w, w.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Context-Free Language",
      "Pumping Lemma"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Context-Free Language Pumping Lemma Example 4",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMGeneralFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMGeneralFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMGeneralFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMGeneralFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow introducing the concept of a Turing machine and its formal definition.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Turing Machines Introduction Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMInterpretingFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMInterpretingFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMInterpretingFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMInterpretingFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the concept of a configuration for a Turing machine, along with defintions for terms like halting, accepting, and computing.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Collision Resolution"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Turing Machines Configurations and Terminology Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMDecidableFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMDecidableFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMDecidableFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMDecidableFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the distinction between a Turing Machine that decides a language (always halts with a decision) vs. one that accepts (only halts when it recognizes the string as being in the language).",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Turing Machines Deciding vs. Accepting Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/TM/TManbncnCON.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/TM/TManbncnCON.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TManbncnCON&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/VisFormalLang/TM/TManbncnCON.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Detailed trace on some examples for a Turing machine that accepts the langugage a^n b^n c^n.",
    "author": [
      "Jeffrey Peng",
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Visualizaiton of the Turing Machine that accepts a^n b^n c^n",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMComplicated3FS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMComplicated3FS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMComplicated3FS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMComplicated3FS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow the formal conepts that support composition of Turing machines, which is a necessary step to building more complicated machines.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Programmed Instruction"
    ],
    "title": "Composition of Turing Machines",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Kochan/TMcopy.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Kochan/TMcopy.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMcopy&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/Kochan/TMcopy.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting the execution of a Turing machine that copies a string.",
    "author": [
      "Ko Chan",
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Algorithm Visualization",
      "Code Tracing Visualization"
    ],
    "title": "Turing Machine to Copy a String",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMExtensionFS.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMExtensionFS.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=TMExtensionFS&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/Metadata/inlineav/PIFLA/TM/TMExtensionFS.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "Slideshow presenting various potential extensions to Turing machines, such as two-dimensional tapes, multiple heads, and non-determinism. Includes proofs that these extensions do not add fundamental capability to a Turing machine.",
    "author": [
      "Mostafa Mohammed",
      "Cliff Shaffer"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Demonstration"
    ],
    "title": "Turing Machine Extensions Frameset",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/addOnea.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/addOnea.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=addOnea&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/addOnea.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that adds an a to a string of a's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Add an a",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/eraseABC.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/eraseABC.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=eraseABC&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/eraseABC.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that erases a string of a's, b's, and c's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Erase abc",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/keepABC.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/keepABC.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=keepABC&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/keepABC.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that moves over a string of a's, b's, and c's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Keep abc",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/aNumsPowerOf2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/aNumsPowerOf2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=aNumsPowerOf2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/aNumsPowerOf2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that accepts strings of a's with the number of characters being a power of 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Accept Powers of 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/ifaNumsPowerOf2.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/ifaNumsPowerOf2.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=ifaNumsPowerOf2&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/ifaNumsPowerOf2.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that decides if strings of a's have a length that is a power of 2.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Decide Powers of 2",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcWInWWROut.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcWInWWROut.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=abcWInWWROut&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcWInWWROut.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that, given string W, outputs WW^R.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Reverse a String",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcNawlargerthanNbw.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcNawlargerthanNbw.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=abcNawlargerthanNbw&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abcNawlargerthanNbw.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that recognizes the language with more a's than b's or c's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: More a's",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/replaceABAbyACA.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/replaceABAbyACA.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=replaceABAbyACA&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/replaceABAbyACA.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that replaces every substring aba with aca.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Replace aba with aca",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  },
  {
    "catalog_type": "SLCItem",
    "platform_name": "OpenDSA",
    "iframe_url": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abPalindromes.html",
    "persistentID": "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abPalindromes.html",
    "protocol_url": [
      "https://opendsa-server.cs.vt.edu/lti/launch?custom_ex_short_name=abPalindromes&custom_ex_settings=%7B%7D",
      "https://opendsa-server.cs.vt.edu/OpenDSA/AV/OpenFLAP/exercises/FLAssignments/TMexercise/abPalindromes.html"
    ],
    "protocol": [
      "LTI 1.1",
      "SPLICE"
    ],
    "license": "https://github.com/OpenDSA/OpenDSA/blob/master/MIT-license.txt",
    "description": "User creates a Turing machine that recognizes the language of palindromes on strings of a's and b's.",
    "author": [
      "Mostafa Mohammed"
    ],
    "institution": [
      "Virginia Tech"
    ],
    "keywords": [
      "Turing Machine"
    ],
    "features": [
      "Automata Construction Exercise"
    ],
    "title": "Turing Machine Exercise: Palindromes",
    "programming_language": [
      "N/A"
    ],
    "natural_language": [
      "en"
    ]
  }
]