Paul is, of course the expert, and I'll defer to him. However, I'll take a crack at it in the meantime. (For one thing, it gives me points). When it comes to motion, gehen refers to walking as in walking to school whereas fahren is used with some other mode of transportation such as driving. However, gehen is also used in the sense of frequenting a place, for example going to (attending) school. In this context, the mode of transportation is not relevant so you would use gehen to mean attending, even if you physically drive or take the bus to school.