Edit and disclaimer: this is not US, and the usage of the word "internship" below is incorrect. It does not refer to an US internship (as I was informed below it means something different). As this is more like an academic environment, this question does not belong on this site. We hire college students to do non-commercial tasks before they are introduced to real projects (such "internship" is also required for them to finish college in my country)
I'm an internship mentor at my (IT) company for a group of several people. I've done this several times before. The task the interns are given is an application (each one works on their own repository). They usually start with bad style code, after that we guide them how to rewrite it properly, using design patterns and clean code, so that they can learn and compare the proper code with their previous mistakes. We usually end up with a very specific set of design patterns and internal architecture.
So a few hours after the internship started one of the interns showed me his completed project. It took me just a few seconds to realise that he obtained the project from (probably) one of the former interns who he knew. The same pieces of complex logic, the same sophisticated mix of design patterns.
I checked the local history of the project in his IDE - all the complex code appeared at the same time with no development. I started asking him questions - he had no idea whatsoever how the application works internally. He immediately became very nervous, instead of answering my questions was basically reading the code from the IDE... I asked him if he is the author of this code - he confirmed he wrote it.
There is absolutely no way he wrote this code, though. Even I couldn't have done this task so perfectly in just hours, and I've been a professional developer for years now.
What should I do with this guy? He was one of the best candidates we interviewed. He definitely knows how to write code. The options are:
- fire him next thing tomorrow morning, for cheating and lying about it
- approach him privately and inform him that I know he is not the author of this code, explain that the purpose of the internship is to learn, and by copying the code he is not improving his chances of employment, but ruining them, ask him to delete the code and start over
The thing is, before they started, I made it pretty clear that they will have all the time needed to finish this task, and that it's OK if they will have to change the entire application a few times, because the purpose of all of this is to learn.
Additionally, I feel kind of personally offended, because that intern must think I'm an idiot if he feels like he can get away with something like this.
EDIT: I talked to him. He told me that he "copied parts of the the code from somewhere" because he already knows how to do it all anyway (he didn't, because he couldn't explain anything about that code, but nevermind) and feels like he's better than other interns anyway because he has more experience. So I've given him a task: to add some features to his application - not particularly difficult, but they were never added to any of our "internship" applications before.
After 30 minutes, he resigned from the internship on his own.