This is how almost every CS and EE class was for me in college. Sure, I could have cheated on all the homework, but if I didn't understand the material, I was going to flunk the final exam. I think cheating is a bigger problem for classes with large assignments you work on outside of class and fewer exams.