How can I validate python code in a Jupyter Notebook?












1















I am looking for a way to do the above within a coding class for students. The idea is to check in the background if the code the students created e.g. returns the correct value or performs the correct routine.



That way I could make sure the code works and will be useful in the forthcoming cells. What would be the best way to do so and to give feedback/hints as to what was done wrong?



This should of course be not visible to the students as they should figure out the answers themselves. Should I send the code to be validated by some other kernel? Is there an optimal way?










share|improve this question























  • Perhaps this is better suited for cseducators.stackexchange.com

    – juanpa.arrivillaga
    Nov 23 '18 at 9:37
















1















I am looking for a way to do the above within a coding class for students. The idea is to check in the background if the code the students created e.g. returns the correct value or performs the correct routine.



That way I could make sure the code works and will be useful in the forthcoming cells. What would be the best way to do so and to give feedback/hints as to what was done wrong?



This should of course be not visible to the students as they should figure out the answers themselves. Should I send the code to be validated by some other kernel? Is there an optimal way?










share|improve this question























  • Perhaps this is better suited for cseducators.stackexchange.com

    – juanpa.arrivillaga
    Nov 23 '18 at 9:37














1












1








1








I am looking for a way to do the above within a coding class for students. The idea is to check in the background if the code the students created e.g. returns the correct value or performs the correct routine.



That way I could make sure the code works and will be useful in the forthcoming cells. What would be the best way to do so and to give feedback/hints as to what was done wrong?



This should of course be not visible to the students as they should figure out the answers themselves. Should I send the code to be validated by some other kernel? Is there an optimal way?










share|improve this question














I am looking for a way to do the above within a coding class for students. The idea is to check in the background if the code the students created e.g. returns the correct value or performs the correct routine.



That way I could make sure the code works and will be useful in the forthcoming cells. What would be the best way to do so and to give feedback/hints as to what was done wrong?



This should of course be not visible to the students as they should figure out the answers themselves. Should I send the code to be validated by some other kernel? Is there an optimal way?







python jupyter-notebook jupyter






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 23 '18 at 9:35









user3507070user3507070

213




213













  • Perhaps this is better suited for cseducators.stackexchange.com

    – juanpa.arrivillaga
    Nov 23 '18 at 9:37



















  • Perhaps this is better suited for cseducators.stackexchange.com

    – juanpa.arrivillaga
    Nov 23 '18 at 9:37

















Perhaps this is better suited for cseducators.stackexchange.com

– juanpa.arrivillaga
Nov 23 '18 at 9:37





Perhaps this is better suited for cseducators.stackexchange.com

– juanpa.arrivillaga
Nov 23 '18 at 9:37












3 Answers
3






active

oldest

votes


















1














You could write tests for the tasks you hand out to your students. Depending on which ones fail proceed to print possible fixes.






share|improve this answer































    1















    This should of course be not visible to the students as they should figure out the answers themselves.




    This is usually the wrong tactic. You should provide a set of test cases that expect correct output that the student can run their test against. Recall that Test-Driven Development teaches that application code should only be written to satisfy existing unit tests. Since you're assigning the application code: you need to write the unit tests to be passed!






    share|improve this answer































      0














      It might be overkill for what you want to do, but INGInious might help here. From the website:




      INGInious is a secure and automated exercises assessment platform
      using your own tests, also providing a pluggable interface with your
      existing LMS.




      It offers all the infrastructure to test student code and give feedback.



      Disclaimer: It is developed by people in my university






      share|improve this answer
























        Your Answer






        StackExchange.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "1"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53443995%2fhow-can-i-validate-python-code-in-a-jupyter-notebook%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        1














        You could write tests for the tasks you hand out to your students. Depending on which ones fail proceed to print possible fixes.






        share|improve this answer




























          1














          You could write tests for the tasks you hand out to your students. Depending on which ones fail proceed to print possible fixes.






          share|improve this answer


























            1












            1








            1







            You could write tests for the tasks you hand out to your students. Depending on which ones fail proceed to print possible fixes.






            share|improve this answer













            You could write tests for the tasks you hand out to your students. Depending on which ones fail proceed to print possible fixes.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 23 '18 at 9:39









            Daniel EinarsDaniel Einars

            5212




            5212

























                1















                This should of course be not visible to the students as they should figure out the answers themselves.




                This is usually the wrong tactic. You should provide a set of test cases that expect correct output that the student can run their test against. Recall that Test-Driven Development teaches that application code should only be written to satisfy existing unit tests. Since you're assigning the application code: you need to write the unit tests to be passed!






                share|improve this answer




























                  1















                  This should of course be not visible to the students as they should figure out the answers themselves.




                  This is usually the wrong tactic. You should provide a set of test cases that expect correct output that the student can run their test against. Recall that Test-Driven Development teaches that application code should only be written to satisfy existing unit tests. Since you're assigning the application code: you need to write the unit tests to be passed!






                  share|improve this answer


























                    1












                    1








                    1








                    This should of course be not visible to the students as they should figure out the answers themselves.




                    This is usually the wrong tactic. You should provide a set of test cases that expect correct output that the student can run their test against. Recall that Test-Driven Development teaches that application code should only be written to satisfy existing unit tests. Since you're assigning the application code: you need to write the unit tests to be passed!






                    share|improve this answer














                    This should of course be not visible to the students as they should figure out the answers themselves.




                    This is usually the wrong tactic. You should provide a set of test cases that expect correct output that the student can run their test against. Recall that Test-Driven Development teaches that application code should only be written to satisfy existing unit tests. Since you're assigning the application code: you need to write the unit tests to be passed!







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 23 '18 at 9:49









                    Adam SmithAdam Smith

                    35.3k73376




                    35.3k73376























                        0














                        It might be overkill for what you want to do, but INGInious might help here. From the website:




                        INGInious is a secure and automated exercises assessment platform
                        using your own tests, also providing a pluggable interface with your
                        existing LMS.




                        It offers all the infrastructure to test student code and give feedback.



                        Disclaimer: It is developed by people in my university






                        share|improve this answer




























                          0














                          It might be overkill for what you want to do, but INGInious might help here. From the website:




                          INGInious is a secure and automated exercises assessment platform
                          using your own tests, also providing a pluggable interface with your
                          existing LMS.




                          It offers all the infrastructure to test student code and give feedback.



                          Disclaimer: It is developed by people in my university






                          share|improve this answer


























                            0












                            0








                            0







                            It might be overkill for what you want to do, but INGInious might help here. From the website:




                            INGInious is a secure and automated exercises assessment platform
                            using your own tests, also providing a pluggable interface with your
                            existing LMS.




                            It offers all the infrastructure to test student code and give feedback.



                            Disclaimer: It is developed by people in my university






                            share|improve this answer













                            It might be overkill for what you want to do, but INGInious might help here. From the website:




                            INGInious is a secure and automated exercises assessment platform
                            using your own tests, also providing a pluggable interface with your
                            existing LMS.




                            It offers all the infrastructure to test student code and give feedback.



                            Disclaimer: It is developed by people in my university







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 23 '18 at 9:58









                            damienfrancoisdamienfrancois

                            26.5k55064




                            26.5k55064






























                                draft saved

                                draft discarded




















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53443995%2fhow-can-i-validate-python-code-in-a-jupyter-notebook%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown