/cs-eval-fw

This system, developed in conjunction with Doctor R. Halterman, attempts to offer the ability to build modules from flat files, allow code to be compiled and run in the browser, provide students with immediate feedback, support multiple languages, and offer a module designed specifically for an examination environment.

Primary LanguageJavaScript

In academia, students and professors want a well-structured and implemented framework for writing and running code in both testing and learning environments. In a test or quiz setting, students prefer to type and have the ability to execute code. In an instructional medium such as a handout or online textbook, students would prefer to try out code snippets right in the browser without the need to install or switch to another program. Some on the other hand would like the ability to build exams and quizzes via structured text files without multiple, repetitive steps that are time consuming. Finally, automated and near-immediate grading and feedback remains a huge advantage to both parties. Our client, Doctor Halterman of Southern Adventist University, has recognized this call for a framework that satisfy these needs.

Programming tests and quizzes today often are given through the paper and pencil medium. This medium is not desirable as it does not allow for immediate feedback, which can frustrate both teachers and students. Students must wait for results and teachers must invest large amounts of time in grading students' answers. Another problem that arises due to this medium is the inability to type and format code. For students in a high-pressure environment such as a quiz or test there is not always time to neatly write code. Erasing or revising written code can further reduce readability. As a result, teachers and students are forced to read and work with messy answers. Finally, this medium does not allow for the possibility of compiling and running code. The ability to execute code allows students to fix small mistakes such as syntax errors and other problems that do not necessarily have any implication on the testing content.

Online textbooks and other similar learning environments suffer from similar problems (i.e., no immediate feedback, and readability issues), with the addition of the need to switch to a different application completely. Using these media require students to leave the browser, have a compiler or IDE installed, and copy or write code snippets in order to try concepts out on their own.

These issues have led to the use and/or creation of two separate products: Learning Management Systems (LMS), and automated evaluation systems. An LMS (e.g., Moodle, and Edmodo) can provide a web interface for building instructional articles, exams, and quizzes and provide students with a common interface. An LMS can also serve as a secure environment for testing and quizzes, and offer features such as multiple attempts, instant feedback, and question randomization. LMSs also have the capability to integrate add-ons which can provide the ability to compile and run code written by students, such as Moodle's plugin feature.

Modifying or building quizzes and exams via an LMS requires multiple, repetitive steps that are more time consuming than editing a simple flat file. In addition, current LMS do not not give statistics on test and quiz properties, such as time spent per question. Existing add-ons for an LMS such as Moodle do not address this issue, and the compiler features do not contain some of the requested properties mentioned above (e.g., immediate evaluation and feedback).

As for automatic evaluation systems, students can type and execute code, run tests, and receive immediate feedback. However, widely used solutions simply support assignments and code challenges, excluding examination environments and general practice environments.

Therefore, based on our client's interests stated above, we believe no application exists which allows users to quickly build learning modules, exams, or quizzes via structured text files for students to use, that also give them the ability to write and run code and receive immediate feedback on submitted work.

This project addresses these issues by creating a framework which provides a medium with the following goals:

  • Allow professors to quickly build activities via simple flat files
  • Allow students to be able to type code in an environment that provides syntax highlighting
  • Allow students to compile and run code in a controlled environment
  • Allow for the ability to build activities specifically for an examination environment
  • Allow students and professors to get immediate statistics and feedback
  • Allow for the support of multiple programming languages

Given this framework, professors can quickly and easily create quizzes, tests, and other learning environments, and students can edit and compile code and receive immediate feedback. We believe this will help professors limit time spent on building and grading tests and quizzes, and help students focus more on actual test content, rather than on formatting and cleaning up answers.