Mostly students can't code or they are not interested or they have no skills or they become lazy in their work, not get interest in it or they are not confident enough to make their own logic and submit/ check it before teacher. For all these students copying code assignments from another students which are the intelligent students of the class and took that before teacher. So what method must be applied to them that all students start code on their own,make their own logic and be confident on their own work?

  • 1
    $\begingroup$ Why are they so uninterested? Is this just a requirement imposed on them that they don't value? $\endgroup$ – Buffy May 4 '19 at 20:36
  • $\begingroup$ I think there are a number of problematic assumptions here. It may not be confidence. There could be any number of outside factors that lead a student to copy, e.g. stress, home life, workload from other classes, etc. Sometimes it is pure naivete. I've seen all of them. Also, leading with the idea that most students "can't" seems to begin with a defeatist approach that limits the potential of students before they even begin. $\endgroup$ – Peter May 4 '19 at 23:10
  • 1
    $\begingroup$ I don't think most students begin a class in a brand new topic intending to cheat. Typically, they miss something and get overwhelmed, begin to feel hopeless, or feel like they are drowning in their overall workload too much to fix the problem. $\endgroup$ – Ben I. May 4 '19 at 23:43


You say they copy the intelligent students, so first watch https://www.ted.com/talks/carol_dweck_the_power_of_believing_that_you_can_improve?language=en


Then stop with the sumative assessment (Stop grading them). Encourage mistakes: I just heard of a company that has a mistakes wall. They seed it with a few famous quotes about mistakes. Then the leaders (teachers) add some and sign them. If others (students) add to the wall, then the first ones are praised (and awarded prizes), until it becomes the norm.

Help them to get in a situation where they are making small changes, making many small errors, experimenting, learning from feedback as the program runs. Give them code to change. Encourage small changes. Encourage testing after every change.


Before teaching programming languages, teach them how to program, and before that teach them how to solve problems: That is start unplugged.

Get them to do every problem manually. Teach them to think like a computer. Get them to solve problems like they are a stupid robot.

Then get them to document what they have done. As a set of steps. Get them to test it. Get them to ask their peers to test it. Show them how to test it. Get them to debug/fix it. Show them that you make mistakes. Show them how you fix your own mistakes.

Then when it is working, show them how to translate it, into the chosen programming language.

  • $\begingroup$ Note that CS Unplugged is actually a thing. Some of my students have been involved in these concepts: csunplugged.org/en $\endgroup$ – Buffy May 5 '19 at 12:28
  • $\begingroup$ @Buffy I love that resource, but I don't mean only that: If they don't provide a resource, then you may have to create your own, or get it from else where. $\endgroup$ – ctrl-alt-delor May 5 '19 at 12:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.