Given 0s on Assignments with suspected and dismissed cheating? Basically, I coded several assignments and a friend turned in code which looks almost identical. I didn't give him my code, and, as far as I know, he didn't even have any way to access it - but it happened somehow. Anyway, the professor said that he can't prove that I let him have the code, so he won't/can't fail me for the class. However, he'll still give me 0s on the assignments he suspects cheating on.

Is there anything I can do? I already went over the code with the professor one on one, and proved with little doubt that I coded it myself. If the suspected cheating can't be proved, does he have the authority to give 0s on those assignments? Would an ombudsman be able to change the situation? I don't want to push this too hard and end up digging myself into a hole where an authority may decide to fail me (if that's possible), but I also proved that I coded those assignments and deserve a grade.

The professor said that if he figures out how he got my code (supposedly if he sees that I didn't willingly hand it over to him), then he'd give me the points back. But since the case is already going to be dismissed, is that a decision that he can make or something I can fight back?

I'm sure this all varies based on different universities and their policies, but any advice would be appreciated, thanks.

EDIT: I was mistaken to say that the case is going to be dismissed - Its most likely going to be though.

EDIT2: Between advice here and what I've found out on my end, I think I know what my options are and what I can do.
It seems that you are being treated unfairly, but it is a situation that can only be judged and handled locally. Your university probably has appeal processes and you can always go to the department head. 

In programming as in mathematics there is often only one clear way to do something and if different students  do "the expected" thing, then their programs come out similar - occasionally very similar. 

"Suspicion" of cheating should never be the final determinant. 

But no one here can help you. Seek a solution locally.