-
Notifications
You must be signed in to change notification settings - Fork 292
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Programming Exercises
: Implement Online IDE Theia
#8602
Comments
Hello @iyannsch, Thank you for taking on this issue. To ensure the Feature Proposal is accurately filled out, we kindly ask you to follow the structure provided. For detailed instructions and best practices, please refer to our Development Process Guidelines. |
Programming Exercises
: Add button for entering TheiaProgramming Exercises
: Add button for entering Theia
Programming Exercises
: Add button for entering TheiaProgramming Exercises
: Implement Online IDE Theia
@iyannsch Another point that is highly important regarding Access Control / Security Aspects: As far as I know, Theia uses a server-side backend. By default, it also provides access to a terminal. If so, it might expose the network of the Artemis machine, which might raise security concerns. |
This issue is used to discuss and document the idea and progress of adding Theia as a full online IDE in Artemis. There are other issues tackling individual tasks.
Programming Exercises
: Add "online IDE" button to Exercise Details #8639Programming Exercise
: Add Exercise-Wide Online IDE Settings #8785Feature Proposal
Context
Problem
The currently existing online code editor in Artemis is a great tool for beginners to jump into programming exercises.
Although it is beneficial for beginners and lowers their starting barriers, the functionality becomes increasingly limited for more advanced problem statements and use cases. Users cannot access any debugger, install useful plugins, or leverage the help of automatic formatters and linters. Consequently, they transition from the online editor to a locally installed, full-fledged integrated development environment (IDE).
Due to multiple courses per semester, students often need to switch between different IDEs, forcing them to learn their way around multiple environments for the various types of exercises. Moreover, the local coding setup must manage numerous dependencies and projects at the same time, which can lead to incompatibilities between required plugins and extensions. With a local installation, there is no guarantee that the IDE is set up correctly or that the student has not installed any forbidden plugins or extensions.
Especially for K-12 (high school) or young university students, setting up those systems is a daunting onboarding task required before even starting with the challenging course content. They see themselves con- fronted with new and foreign topics like a build system, software plugins, different programming languages, and even the concept of an IDE.
Motivation
Early success and content mastery are pivotal aspects of students’ motivation. The Artemis online code editor supports this by allowing students to jump into the exercise without further setup. However, this approach does not represent the complex environments encountered in more advanced courses or the industry, which typically require an IDE. It is essential to constructively align educational experiences with real-world practices to effectively develop, train, and assess student skills. Setting up a configured IDE can be daunting for young university attendees or K-12 students, raising the barrier to start programming.
Requirements Engineering
Existing (Problematic) Solution / System
Currently, an integrated online code editor ensures a low-barrier entry into technical exercises, particularly for those less familiar with technology or computer science. Unfortunately, it does lack important features like a debugger, linting, and formatting and is not constructively aligned with the future working environment of students.
Proposed System
Implement the online IDE Theia as an optional alternative to the currently existing online code editor in Artemis. Theia mimics the capabilities and looks of the general-purpose IDE Visual Studio Code (VSC) but does not require any download. Consequently, students profit from simplified onboarding as well as advanced functionalities like formatting, linting, and a dedicated debugger.
We propose to implement the following changes:
Requirements
Analysis
Analysis Object Model
Dynamic Behavior
Activity Diagram showing the new exercise workflow from
Login to Artemis
toSubmit Exercise
System Architecture
Subsystem Decomposition
Deployment Diagram highlighting the authentication flow and sharing of session data between Artemis and Theia:
Persistent Data Management
The online IDE Theia can load various images acting as blueprints for various configurations. In Artemis, there will be multiple base-images for different needs, e.g., various programming languages for different modules (Java in PGDP, OCaml in FPV). We plan on creating all required base-images and want to allow instructors to customize them to their liking. This could include adding preferred plugins to the online IDE used by their students for this course.
We store base-images and customized images in an image registry and information about them in the database.
Regardless on configuration options, instructors must choose which configuration of Theia is used for their exercises. The available options will be shown in the client and the instructor's choice will be saved in the database.
Access Control / Security Aspects
The Theia session itself must be secure. This includes that users should not be able to work in another user's environment. Moreover, students must only start Theia sessions with the blueprint opted for in the respective course - this is especially in exam situations important. We want to authenticate users using SSO with KeyCloak's OpenID Connect but also provide an alternative without third-party dependencies. Artemis can pass information to Theia regarding allowed blueprints when the student starts a new session.
Other Design Decisions
Artemis information inside of Theia needs to be securely transmitted. Submission status, real-time feedback, or exercise information will be shown to the student using a new extension in Theia. Artemis will pass and expose web sockets that the extension can subscribe to.
UI/UX Design
The text was updated successfully, but these errors were encountered: