english first

This commit is contained in:
Christoph Walther
2024-08-27 12:47:14 +02:00
parent 9c9d44ea43
commit 521d0d2a45
2 changed files with 60 additions and 16 deletions

View File

@ -5,3 +5,44 @@
urldate = {2024-08-25},
file = {The CodeGrade Documentation — CodeGrade QuietStorm.1 documentation:/Users/chris/Zotero/storage/K79YSBN2/docs.codegra.de.html:text/html},
}
@misc{noauthor_check50_nodate,
title = {check50 {Documentation}},
url = {https://cs50.readthedocs.io/projects/check50/en/latest/},
urldate = {2024-08-25},
file = {check50 — check50 Docs:/Users/chris/Zotero/storage/FKGGRXQ8/latest.html:text/html},
}
@misc{noauthor_submit50_nodate,
title = {submit50},
url = {https://cs50.readthedocs.io/submit50/},
abstract = {submit50 is a command-line tool with which you can submit work (e.g., problem sets) to a course (e.g., CS50). Its based on git, a “distributed version control system” that allows you to save diffe...},
language = {en},
urldate = {2024-08-25},
}
@inproceedings{staubitz_codeocean_2016,
title = {{CodeOcean} - {A} versatile platform for practical programming excercises in online environments},
url = {https://ieeexplore.ieee.org/document/7474573/?arnumber=7474573},
doi = {10.1109/EDUCON.2016.7474573},
abstract = {The paper at hand introduces CodeOcean, a web-based platform to provide practical programming exercises. CodeOcean is designed to be used in Massive Open Online Courses (MOOCs) to teach programming to beginners. Its concept and implementation are discussed with regard to tools provided to students and teachers, sandboxed and scalable code execution, scalable assessment, and interoperability. MOOCs bear a tremendous potential for teaching programming to a large and diverse audience. Learning to program, however, is a hands-on effort; watching videos and solving multiple choice tests will not be sufficient. A platform, such as CodeOcean, to work on practical programming exercises and to solve actual programming tasks is required. Due to the massiveness of the courses, teaching teams cannot check, give feedback, or assess the submissions of the participants manually. CodeOcean provides the participants with proper automated feedback in a timely manner and is able to assess the given programming tasks in an automated way.},
urldate = {2024-08-25},
booktitle = {2016 {IEEE} {Global} {Engineering} {Education} {Conference} ({EDUCON})},
author = {Staubitz, Thomas and Klement, Hauke and Teusner, Ralf and Renz, Jan and Meinel, Christoph},
month = apr,
year = {2016},
note = {ISSN: 2165-9567},
keywords = {Automated Assessment, Computer languages, E-Learning, Electronic learning, Hands-on Experience, Interoperability, MOOC, Online Assessment, Programming, Programming profession, Scalability},
pages = {314--323},
file = {IEEE Xplore Abstract Record:/Users/chris/Zotero/storage/QVILNJDL/7474573.html:text/html;Staubitz et al. - 2016 - CodeOcean - A versatile platform for practical pro.pdf:/Users/chris/Zotero/storage/DJY8E9FV/Staubitz et al. - 2016 - CodeOcean - A versatile platform for practical pro.pdf:application/pdf},
}
@article{serth_codeocean_2021,
title = {{CodeOcean} and {CodeHarbor}: {Auto}-{Grader} and {Code} {Repository}},
abstract = {The Hasso Plattner Institute (HPI) successfully operates a MOOC (Massive Open Online Course) platform since 2012. Since 2013, global enterprises, international organizations, governments, and research projects funded by the German ministry of education are partnering with us to operate their own instances of the platform. The focus of our platform instance is on IT topics, which includes programming courses in different programming languages. An important element of these courses are graded hands-on programming assignments. MOOCs, even more than traditional classroom situations, depend on automated solutions to assess programming exercises. Manual evaluation is not an option due to the massive amount of users that participate in these courses. The paper at hand presents two of the tools developed in this context at the HPI: CodeOcean—an auto-grader for a variety of programming languages, and CodeHarbor, a tool to share auto-gradable programming exercises between various online platforms.},
language = {en},
journal = {Seventh SPLICE Workshop at SIGCSE 2021 “CS Education Infrastructure for All III: From Ideas to Practice (SPLICE'21)},
author = {Serth, Sebastian and Staubitz, Thomas and Teusner, Ralf and Meinel, Christoph},
year = {2021},
file = {Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:/Users/chris/Zotero/storage/ECQHYIQ8/Serth et al. - CodeOcean and CodeHarbor Auto-Grader and Code Rep.pdf:application/pdf},
}

View File

@ -1,34 +1,37 @@
=== Code Grade ===
link:https://docs.codegra.de[CodeGra.de]
Commercial solution for grading code submissions in an external tool, integratable via the open LTI interface.
Codegrade is a commercial solution for grading code submissions in an external tool, integratable via the open LTI interface. It supports the automatic grading of code submissions through unit tests, I/O, error code, and linter. The platform additionally provides a code review feature with inline comments, that can be used to give feedback to the students. There is also a plagiarism detection feature to check the similarity between submissions.
cite:[noauthor_codegrade_nodate]
==== Features ====
* Automatic grading through unit tests, I/O, error code, linter
* Inline comments like code review
* Plagiarism detection to check similarity between submissions
=== CS50 with Check50 ===
link:https://cs50.readthedocs.io/[CS50]
The Harvard MOOC which is build upon the edX platform doesn't use a built-in code grading system. Instead, there is a separate tooling called CS50 with multiple checking tools for i.e. linting (style50), plagiarism detection (compare50),
The Harvard MOOC which is build upon the edX platform doesn't use a built-in code grading system. Instead, there is a separate tooling called CS50 with multiple checking tools for i.e. linting (`style50`), plagiarism detection (`compare50`), and unit tests (`check50`).
The check tool is written in Python and uses plain annotated Python functions to define tests, for other programming languages, extensions are used. Therefore this tool in itself only supports C, Python, and Flask and has limited support for other languages. Whoever wants to use this toolset in any language will have to get used to the Python syntax.
cite:[noauthor_check50_nodate]
The scalability of this solution consists of the use of GitHub repositories. The git-Wrapper `submit50` is used to store the solutions in a local repository and push them to GitHub, where CS50 staff can access them. cite:[noauthor_submit50_nodate]
=== CodeOcean ===
link:https://codeocean.openhpi.de/[CodeOcean] ist eine webbasierte Plattform für praktische Programmierübungen, die hauptsächlich in MOOCs (Massive Open Online Courses) wie auf openHPI verwendet wird. Sie ermöglicht es Lernenden, Code direkt in ihrem Browser zu schreiben, auszuführen und zu testen, ohne eine Entwicklungsumgebung einrichten zu müssen. Zu den Funktionen gehören Syntax-Hervorhebung, serverseitige Code-Ausführung und automatisiertes Feedback durch Unit-Tests. Zusätzlich können Lernende kontextbezogene Fragen stellen, was eine kollaborative Lernumgebung fördert.
link:https://codeocean.openhpi.de/[CodeOcean]
Erfasste Ziele und Anforderungen dieser Arbeit sind:
- Vielseitigkeit: Einsatz verschiedener Programmiersprachen möglich
- Einsteigerfreundlichkeit: Einfaches User Interface
- Skalierbarkeit: Unterstützung für viele Nutzer
- Sicherheit: Ausführung von fremdem Code in einer Sandbox
- Interoperabilität: Integration in Lernmanagement-Systeme
CodeOcean is a web based platform for practical programming tasks, that is used mainly in MOOCs (Massive Open Online Course) and was developed for openHPI, the MOOC platform of the Hasso Plattner Institute. It allows learners to write, execute and test code directly in their browser without the need to set up a development environment. Features include syntax highlighting, server-side code execution and automated feedback through unit tests. Additionally, learners can ask context-related questions, which makes it a collaborative learning environment.
Der gewählte Ansatz ist daher dem gewünschten am ähnlichsten. Es werden eine vorbestimmte Anzahl an Docker-Containern als Ausführungsumgebungen für die Programmieraufgaben bereitgestellt und jeweils für die Bearbeitung der Programmieraufgaben den Nutzern zugewiesen. CodeOcean unterstützt die Integration in andere Lernmanagement-Systeme über die offene LTI-Schnittstelle
The highlighted goals and requirements of this work are:
- Versatility: Use of different programming languages possible
- User-friendliness: Simple user interface
- Scalability: Support for many users
- Security: Execution of foreign code in a sandbox
- Interoperability: Integration into learning management systems
The chosen approach is therefore most similar to the desired one. A predetermined number of Docker containers are provided as execution environments for the programming tasks and assigned to the users to work on their programming tasks. CodeOcean facilitates integration into other learning management systems via the open LTI interface, as is the case with most comparable solutions.
cite:[staubitz_codeocean_2016]
There have been new developments to this platform which in include a collaboration service called CodeHarbor to exchange tasks between instances of code ocean. This could be interesting for future uses in the context of the HTWK Leipzig, depending on how the platform is used, e.g. for the use in internal courses.
cite:[serth_codeocean_2021]
=== EmpowrOrg Coppin ===