1

I'm a young maths teacher and I'm introducing algorithms to my students. They learn C basics to write their programs. I have more 400 students and testing their programs takes me a lot of time. Already wrote a shell script but they need to send me the binary. So I would like to set up a platform where they can upload their binaries or their sources and test it. The school gave me a Jenkins and a web instance. I did read some docs about Jenkins and JUnit but I don't see how can I test output of another program.

Thanks for your answers.

Mike Kinghan
  • 55,740
  • 12
  • 153
  • 182
LightMan
  • 53
  • 1
  • 8

1 Answers1

1

You don't have to use Jenkins and JUnit necessarily. You don't need anything else than your own laptop and a bash script. They are just doing C programming...

First, gather your students code in an organized manner (send code by mail or download them from the platform). Then, prepare some input and output files (which correct results obviously) and write a tiny script which will execute your students code with these prepared inputs. The script will finally compare the results with your prepared outputs.

Some notes to make things easier because students always do things their own way:

  • be precise on how they have to compile their program (flags, given makefile...)
  • be clear on the input and output format
  • I tell them to give their program in a specific way (name of program with NAME or ID)

If they don't follow my guidelines they get minus points. This is so much important because they have to learn to be rigorous and in the same time you also gain tremendous time. They have to put the effort to make your correction process efficient especially when you have so much students.

But well you can also dig in Jenkins doc it might be worth it (although I do not use it personnally). And why can't you ask your school to help you for that ?

Edit: Maybe this CMake/C++ Jenkins topic might be help you.

coincoin
  • 4,595
  • 3
  • 23
  • 47
  • 1
    Thanks for your answer. Your way seems logical :) I would have liked to do it on Jenkins because it could have been a good way for me to learn and train myself on it. And the only people in my school who could help me with that just went in vacations. And about the students you are right, they NEVER follow the rules ! – LightMan Jul 03 '17 at 16:54
  • 1
    Added a SO topic that might help you with Jenkins does not seem complicated – coincoin Jul 03 '17 at 18:01