I've kicked around the idea of teaching computer programming formally(at a college-level).
What kind of degree would be required at most colleges for teaching and also any general advice for if someone would be a good fit for such a field?
Usually top of the line colleges would opt for PhD. Thats expected, at the top of the line you need to engage in continuous research. Industry has often depended on this research for future generations of their products.
However in certain subjects like game programming or GPU based computing, PhD candidates are not easy to get. I have seen people with Bachelor's or Master's degree with about 10-14 years of industrial experience moonlight as teachers in these coursers.
It would be good if you have some technical publications to your credit in the technical arena you are contemplating to teach (could be published in IEEE or ACM or the more industry oriented ones like DDJ or IBM-Developerworks) and any form of previous teaching experience.
One way to tell if you would enjoy teaching would be to start by volunteering as a tutor at your college. Many colleges have programs where free tutoring is offered by volunteers to students who meet certain criteria.
Usually, you have to have taken the course and received at least a B in order to tutor the class.
If you hate tutoring, then you're probably going to hate teaching. If you find that you enjoy helping others, are patient, and can successfully guide your students to an understanding of the concepts, then teaching might be for you.
Some community colleges and universities do take instructors with Masters Degrees in Computer Science, but you probably won't have any of the benefits that would come with being a professor, and you'll always be the low man on the totem pole.
My experience is that it depends on the college, location, and the market state.
Top CS schools tend to hire PhDs, and the best CS schools often have dedicated teaching faculty (rather than research faculty that tend to treat teaching as a chore).
Many schools use PhD students, Post-docs, and even good MS students as faculty for teaching programming and other undergraduate level courses as lecturers.
Many schools use adjunct faculty. Adjunct faculty gets paid little and have no benefits, so in good markets they may have lower degrees and experience while in bad markets they can be PhDs from good schools who can't find anything else. Read about the adjunct circle, not a good idea.
In schools that do not specialize in CS, especially if they have no graduate degrees, and in particular in liberal arts schools, faculty often has no PhDs, and a masters can suffice. I'm sure there are cases of teachers with bachelors.
I heard that some for-profit schools like Devry and career and trade schools may hire MS and BS degree to teach, but never verified this.
After writing programs for a while, I read the book "Head First Programming". I loved it. I would suggest you read it. You may use the same technique to teach your students. It will be really helpfull.
Try this link.