Interesting question, I can see both sides of the story, there are some key pieces of information missing:
- There seems to be a massive mismatch across the board between their expectations and yours of why they're there and what they're supposed to be doing. And you've never discussed this with them.
- What are your, their, your company's and their college's expectations about this intern program? To what extent is this internship aligned/not aligned with their course of study, career goals etc? Do 50+% of the interns come back upon graduation? or go to your competitors? or flee the industry? Does your company have that much to teach them, frankly? What level and year are they: HS, community college, AA, BS, MS or PhD - that makes a world of difference? Do you have them working on (say) QA or sysadmin when they really want to work on (say) speech recognition or cloud? Did you have a brief to-the-point conversation with them to get to the bottom of this and why? (That's your responsibility to initiate, not theirs. This is overdue.) I would certainly phrase things like "Are you really interested in this work and dept, if not what can we change?" instead of "Do X,Y and Z or you're fired, because I say so". Do they want to be reassigned? Was your company and dept their last choice instead of flipping burgers? Maybe their college sucks AND your company sucks and they're just doing it for the $$ or resume bullet, in which case you're all trying to put lipstick on a plurality of pigs. Don't expect them to have a "junior developer" mentality if they don't see themselves as such, or have no interest. Invoking a disciplinary process on a lowly intern is pointless if none of this shared context is in place. Solicit their constructive suggestions too.
> "Part of me thinks that maybe I should be spending more time with them but at the same time I don't see a lot of interest"
Well does your company consider the interning arrangement to be a subsidy of your time to their college's research, or extra labor for your dept, or something in between? You could just let them sit and read Calvin and Hobbes and play ping-pong all day and not bother you.
> "they go missing in action for a while... Frankly, it's a bunch of time I don't have explaining things as I go when I could just do it."
- Well if the intern arrangement isn't working for either of you, who foisted this intern program on your dept anyway, and who interviewed these people? Did you interview this intern? If no (why not?), who did and either way why did they get assigned to you? If they aren't contributing to your productivity, how do other people manage their interns? Are they at your company to do research or purely hourly-wage tasks or some reasonable mix? Do they have a meaningful project or deliverable in which they have a personal interest? Do they have milestones and are you monitoring them (sounds like no)? Do they make a presentation at the end of it? Does your company (not you personally) exit-interview your interns? What are their criticisms and suggestions? Are you paying them competitive $$, below-market $$ or free? Do they have any prior work experience, whether software or whatsoever? Maybe you should read resumes and interview more carefully, gauge their initiative and work style.
> "They go to meetings that they were not told they had to attend...good, but then sit in the corner and sleep...bad. I don't even know what to do with that."
Maybe they're trying to understand the wider organization/product/industry (are you or other people giving them that?), maybe they don't like shadowing you programming 8(?) hours a day, maybe they're totally demoralized by their lack of progress, or maybe they're just simply slacking off - can't tell based on what you said.
There's a well-known tactic to turn that unnecessary-meetings into something positive: tell them you may call on them at any point to stand up at your dept meeting and deliver a verbal summary of any of those meetings. Or, simply give them a list of meetings you think they don't need to attend, and ask if they're ok with that, and if not why. Maybe you or your HR or intern dept should set up some lunch or presentation schedule for them and other interns to meet a wide variety of people and job functions across the company. All the good intern programs do that, benchmark yourselves against them. If that doesn't exist, make it happen! It should benefit all of you. Take ownership of this intern program.
Come to think of it, set up a meeting for your own people managing interns on "Best Practises for Managing Interns" (absolutely don't invite the interns to that one. But probably give them a redacted summary). Have you talked to someone there who managed interns before about these issues?
That was the big-picture context you're not answering, then here's the specific detail stuff:
- you want them to shadow you at your desk (how many hours a day? 2? 8?), maybe that's not for them. This sounds like micromanaging? If you solved the checkin breakage issue and held code reviews (suggestions below), should that really be necessary? I would say no. Why not have them decide when to shadow you? Better still, have them periodically show you on their machine how they are coding/testing/debugging, and you sit and watch and comment?
The general principle is: manage the expectations and review progress regularly (3x/week?); don't micromanage the behavior.
> They check in things without testing them.
- ok that's a very simple one to fix: require all their checkins to attach a testcase file + passing logfile. Have the SCM system reject or flag changes without (/email the big boss/record checkin % success rate on a departmental leaderboard/whatever). Setting up the SCM system to enforce that is maybe a suitable intern task. And/or definitely have code reviews, even if it's over Skype, or (when you're busy), email comments. Probably also, limit the scope of which files they can checkin until they stop breaking stuff.
> Sometimes I give them something small to do and they do it great, so I give them something just a touch harder and they totally fail, hard.
Well sounds like the learning process or their thought process aren't working. Did you walk them through a logical set of steps they should have tried to solve it? Read the manuals, wikis, tutorials, user guides, books etc.?
- another great practice is to have them start and own a wiki/(document) about methodology. Have them present that and review it. All of these problems are opportunities in disguise - assuming they have the basic ability, motivation and interest, which we don't know based on what you said.
> "Sometimes I get asked questions that are really, really easy to answer if you just do a little bit of your own work trying to find out.."
Tell them they could have answered it for themselves, have them start and own a wiki, and document/link to resources. Again, have them present it when they present on methodology. Also, I assume you mark your calendar with busy/available time ("red time/green time")?
> "Other times I'm not asked anything"
Uh that might either be a bad sign or a good sign - assuming they're not off sleeping in unnecessary meetings or reading Calvin and Hobbes or hiding from you. Assuming you stay in touch via email, IM and have automated emails of code checkins, maybe something deeper is not working.
Can you answer some of the above, then we can take it from there?