GitHub is a tremendously helpful tool for our daily activities as data mungers, programmers, and code monkeys. It allows us to keep a historically accurate account of our projects and to collaborate seamlessly with people from across the world. And for teaching, if you get away from using proprietary software from that Redmond company, it is spectacular.
A few years ago, I began taking all of my teaching components and breaking them down into the smallest self-contained unit. I did this because:
Each topic (say Factors in R) can be understood in isolation.
Each topic may be of interest for several different courses.
Reusing topics makes my life so much less sucky (see also Dyer’s Philosophy of Life)