The best programming professor I ever had was a part-time adjunct Masters-level guy who worked on government projects as one of his day jobs (I think the guy had several jobs). He had a ton of real-world experience and knew how to make abstract concepts digestible. The purely academic profs in comparison had no clue what they were doing.