english first
This commit is contained in:
@ -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 ===
|
||||
|
||||
|
Reference in New Issue
Block a user