Sunday, July 26, 2020

Using repl.it for conducting self guided programming labs



Programming Courses are generally challenging for undergraduate freshman who haven't done coding at school.  Generally most programming courses provide ample lab exercises and physical guidance to novices in programming.  However there is a limitation in time during physical lab sessions, and students typically do not exhaustively test the programs they write for possible errors.  They generally assume that their programming efforts are successful if their program compiles and is able to produce a reasonable output.

We wanted to have an environment that allows students to self check if their programs were correct and submit them once they pass a set of unit tests.  repl.it provides a feature called classrooms which essentially allow you to create lab assignments for students with auto grading features.

repl.it is a very popular online collaborative programming Integrated Development Environments (IDE).  repl.it supports over 50 programming languages and has support for unit testing of student programs.

Setting up a repl.it account is straight forward by signing up.  There are two modes Teachers and Students.


When you select Teachers mode you can create Lab Assignments which are essentially classrooms in repl.it.  


The Create Classroom option allows you to create a Lab Assignment, you have to name it and also specify a Programming Language.  If you on a paid option you can make these classrooms private.  By default they are public and accessible to anyone who has a link.


You can setup the Lab Assignment as show below.


For each Assignment (Exercise) you can provide details of the problem on the right hand side panel  and provide skeleton code on the left side.


You can use Mark down on the right hand side panel to write the details of the Exercise the student is going to solve.  This can include text, code snippets and images.  You can also embed html tags as well if needed. You can have fairly elaborate descriptions provided for the assignment description, when you include images.


The next step is to setup unit tests to check if the students code submissions work.  You can get to the next screen by clicking on the next button which is on the top right hand corner of the figure above.


You can setup as many test cases as needed.   Basically in a test case you provide the inputs separated by spaces and the outputs.  In the figure below the inputs to this problem are 10, 10, 10, 2, 3, 4 and the expected outcome of this program is the addition of the volumes of the two boxes with the dimensions 10x10x10 and 2x3x4 which is 1000 + 24 = 1024.  This is given as the output in the cage below.


There are subtle variances on how you can specify the output.  

  1. Flexible - Will ignore whitespaces and and special characters when checking with the output
  2. Strict - Will check for an exact match in an output including whitespaces
  3. Regexp - Here you can use regular expressions to check for the answer
These are essentially unseen unit tests that we are providing to check the students solution.

In the same page you can also provide feedback to students by providing a sample solution.

You can preview the exercise as the student sees it and once satisfied you can publish the assignment.

There are multiple ways to distribute the lab assignment to your students.  The easiest way is to send them an invite.  You can select Invite more under Student Overview.

Here you can either enter the emails of the students or share the Direct invitation Link
One of the coolest features that you get as a teacher you can monitor how your class is progressing.

You get email notifications of when students enrolled and submit lab work.  You can also click on any of the completed lab work to see what the student has done and also to provide feedback if needed.  

The students when attempting the assignments they use the built in repl.it editor on the left panel to write computer program.  


In the above assignment the student had to complete the function given in line 32 to 34 as part of solving the lab exercise.  The students use their own test data to check the program.  The beauty of repl.it's unit tests is that using the Flexible and RegEx options you don't need to have exact matches.  The students output has the text Volume of Box is followed by the calculated output (See the black panel on the bottom left corner above).  This additional text is ignored.  For this specific run the student has used 40 30 20 5 6 7 as inputs and has got 24210 as the output.

The CSV file that can be generated contains a summary of all submissions done by students.  You receive an email of the CSV file when you select the option Export to CSV.

We have found increased student satisfaction and engagement when we used repl.it to support programming labs.

A detail study of using repl.it and other related tools were published in a research conference. This paper highlights the use of Active Learning Approaches to enhance Student's learning experience in programming and related concepts[1]


References

[1] Imbulpitiya, Asanthika, Nuwan Kodagoda, Anjalie Gamage, and Kushnara Suriyawansa. "Using Active Learning Integrated with Pedagogical Aspects to Enhance Student’s Learning Experience in Programming and Related Concepts." In International Conference on Interactive Collaborative Learning, pp. 218-228. Springer, Cham, 2019.











No comments:

Post a Comment

Let’s Kahoot! Let teaching and learning become awesome

Kahoot is an interactive and engaging audience response system which can be used to promote social learning and collaborations among studen...