Project Info

Background

At the beginning of each computer science course, students are often required to spend a considerable amount of time setting up the coding environment on their local machines. Additionally, students need to upload their files to hand-in assignment, and professors need to download the files and run on their machines. Sometimes, students’ program may succeed in their own environment but fail in teacher’s environment. This might cause disputes and waste time.

Objective 

Customized Coding Environment 

The main feature of this project, a customizable shared coding environment for both markers and students. This feature enables them to execute their code in the same environment, eliminating variances in program output caused by differing local setups. Consequently, this solution effectively resolves the problem and removes concerns that students may have regarding incorrect configurations.

Integrated Development Environment (IDE) 

This feature enables markers to submit a sample code to our server, which students can then utilize to generate additional test cases. This functionality provides better understanding of the question to the students, especially regarding the program requirements for extreme cases. As markers are unable to provide all possible test cases to students, this allows students to gain further clarification without the need to frequently post questions on the course forum, thereby reducing redundant workload for markers. Additionally, this feature helps eliminate the potential disagreements from students following assignment grading by providing them with a resource to validate their understanding.

Customized Test Case for Better Clarity

Oftentimes, professors offer test cases for students to verify their code, but just because a student’s code passes all the provided test cases does not necessarily indicate that it is completely correct. It is possible that there are additional test cases that the code fails to pass. However, it is impossible for professors to list out all the test cases every assignment. Our website provides a solution for that. Professors can upload their source code to the website, and students have no way to access the source code. However, students can still run the program and test various inputs to evaluate its outputs. In other words, students can make their own test cases. In this case, if students are uncertain about the correctness of their code, they have the option to create their own test cases and compare their results with the output produced by the professors’ code. 

Code History 

When a student clicks the “Submit” button to submit their code, the platform will automatically save a new version of the code (only the latest 5 versions will be retained in the database). Each version will be timestamped and associated with the respective submission. 

If the student wishes to roll back to a certain version, student can view their code history and select a specific version they wish to revert to. 

Question Bank 

This feature facilitates the storage of previously uploaded exercises on our website, which are categorized according to the respective course codes. This functionality serves as a valuable question bank for students, enabling them to gain a better understanding of the course material and access additional exercises for studying purposes, particularly in preparation for the midterm and final exams. Additionally, professors are granted the ability to manage the question bank associated with their specific course, thus granting them the freedom to control the teaching pace of their course effectively.