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
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
Metadata Files
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 --recursiveto clone thescratch-guiandwhiskersubmodules.
Running The Hint Generator
Using docker-compose
- In
build_containers.shchange the path to a Java 11 JDK. - Run
build_containers.shto- 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 therun_conf/tasks/.../solutions/folder. - Adapt the settings in
run_conf/application.conf. docker-compose upto start the containers.- The GUI can be reached on
http://localhost:8080/. Ctrl + Cstops the containers, they can then be removed withdocker-compose down.
With Whisker
- In
run_conf/application.confenable the optionrunTestSuite. - In
docker_compose.ymluncomment/adapt the paths to the Whisker tests file and the Whisker folder.
Without Docker
Server
- Run
./sbtx -java-home $JDK11 serve/assemblywhere$JDK11is the path to some Java 11 JDK. - The runnable JAR file is placed in
serve/target/scala-2.13/hintgen-serve.jar. Copy it intorun_conf. - Adapt the settings in
run_conf/application.conf.- Especially the settings
receivedProgramsDir,tasksBasePath, andtaskshave to be adapted. - You can ignore the
whisker…settings ifrunTestSuiteisfalse.
- Especially the settings
- 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
dockercommand, place the content of thescratch_gui/builddirectory into a folder that is served by some HTTP server like nginx or Apache2.
- Instead of running the
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
- code available on branch
previous_version
- code available on branch
- 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
- code available on branch
master
- code available on branch
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
- Website: http://www.fim.uni-passau.de/lehrstuhl-fuer-software-engineering-ii/
- Repositories: 53
- Profile: https://github.com/se2p
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
Top Committers
| Name | 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