Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    2 of 3 committers (66.7%) from academic institutions
  • Institutional organization owner
    Organization se2p has institutional domain (www.fim.uni-passau.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: se2p
  • License: other
  • Language: Scala
  • Default Branch: master
  • Size: 14.4 MB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 5 years ago · Last pushed almost 4 years ago
Metadata Files
Readme License Citation

README.md

Catnip

Catnip is a next step recommendation generation tool for Scratch projects.

Catnip is developed at the Chair of Software Engineering II and the Didactics of Informatics of the University of Passau.

This branch contains the version of Catnip as presented at ITiCSE 2022. For our ITiCSE 2021 paper (c.f. Publications), see the branch previous_version.

Checkout with git clone --recursive to clone the scratch-gui and whisker submodules.

Running The Hint Generator

Using docker-compose

  • In build_containers.sh change the path to a Java 11 JDK.
  • Run build_containers.sh to
    • apply the necessary patches to Whisker and the Scratch GUI
    • Build the Docker containers for the GUI and the backend modules.
  • Add some solution sb3-programs to the run_conf/tasks/.../solutions/ folder.
  • Adapt the settings in run_conf/application.conf.
  • docker-compose up to start the containers.
  • The GUI can be reached on http://localhost:8080/.
  • Ctrl + C stops the containers, they can then be removed with docker-compose down.

With Whisker

  • In run_conf/application.conf enable the option runTestSuite.
  • In docker_compose.yml uncomment/adapt the paths to the Whisker tests file and the Whisker folder.

Without Docker

Server

  • Run ./sbtx -java-home $JDK11 serve/assembly where $JDK11 is the path to some Java 11 JDK.
  • The runnable JAR file is placed in serve/target/scala-2.13/hintgen-serve.jar. Copy it into run_conf.
  • Adapt the settings in run_conf/application.conf.
    • Especially the settings receivedProgramsDir, tasksBasePath, and tasks have to be adapted.
    • You can ignore the whisker… settings if runTestSuite is false.
  • Start the server with shell cd run_conf $JDK11/bin/java -Dconfig.file=application.conf -Dplay.http.secret.key="…" -jar hintgen-serve.jar

GUI

  • Adapt the URL to the server component in run_conf/server-info.txt.
  • Run the same commands as in the GUI-section of build_containers.sh.
    • Instead of running the docker command, place the content of the scratch_gui/build directory into a folder that is served by some HTTP server like nginx or Apache2.

Project Structure

  • algorithm: the actual implementation of the hint generator.
  • serve: the backend server connecting the GUI to the algorithm.
  • run_conf: configuration files for the server components.
  • example_programs: sb3 files used for unit-testing the various components.
  • scratch-gui, whisker: git submodules containing the respective projects.
  • program_fixer.py: The comments added by the hint generator to the programs sometimes cannot be removed properly when copying blocks during application of the hints. This results in an invalid program that neither LitterBox nor the scratch-vm itself can parse.

This program removes all comments from a program to make it usable again. Takes the filename of the program as first argument.

Publications

To learn more about Catnip and its hint generation technique, see the following papers:

  • F. Obermüller, U. Heuer, and G. Fraser, “Guiding Next-Step Hint Generation Using Automated Tests”, in 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE 2021), ACM, 2021. https://doi.org/10.1145/3430665.3456344
  • B. Fein, F. Obermüller, and G. Fraser, “Catnip: An Automated Hint Generation Tool for Scratch”, in 27th ACM Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE 2022), ACM, 2022. https://doi.org/10.1145/3502718.3524820

Contributors

Benedikt Fein\ Gordon Fraser\ Florian Obermüller

Licence Information

  • Packaged with the APTED algorithm (algorithm/lib/apted.jar), published under MIT licence. No source code has been changed.

Modules algorithm, common

Licenced under the EUPL, Version 1.2 or – as soon as they will be approved by the European Commission - subsequent versions of the EUPL (the ‘Licence’). You may not use this work except in compliance with the Licence. You may obtain a copy of the Licence at:

https://joinup.ec.europa.eu/software/page/eupl

Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an ‘AS IS’ basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied. See the Licence for the specific language governing permissions and limitations under the Licence.

Module serve

This module contains the class CustomScratchBlocksVisitor that is directly based on the source of the LitterBox class ScratchBlocksVisitor as it can be found in LitterBox version 1.5.

Therefore, this module is licensed GPL-3.0 identically to LitterBox. You may use, distribute and copy it under those licence terms.

Owner

  • Name: Chair of Software Engineering II, Uni Passau
  • Login: se2p
  • Kind: organization
  • Location: Passau, Germany

Citation (CITATION.cff)

cff-version: '1.1.0'
message: 'If you want to reference Catnip in your work, please cite this paper.'
authors:
  - family-names: 'Obermüller'
    given-names: 'Florian'
  - family-names: 'Heuer'
    given-names: 'Ute'
  - family-names: 'Fraser'
    given-names: 'Gordon'
doi: '10.1145/3430665.3456344'
identifiers:
  - type: 'doi'
    value: '10.1145/3430665.3456344'
  - type: 'url'
    value: 'http://dx.doi.org/10.1145/3430665.3456344'
title: 'Guiding Next-Step Hint Generation Using Automated Tests'
url: 'http://dx.doi.org/10.1145/3430665.3456344'

GitHub Events

Total
Last Year

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 88
  • Total Committers: 3
  • Avg Commits per committer: 29.333
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Florian Obermueller o****l@f****e 86
Benedikt Fein f****n@f****e 1
Hallomann93 f****r@o****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels