I'm working through Oscar Levin's "Discrete Mathematics" - http://discrete.openmathbooks.org/dmoi3.html
I studied philosophy in college and am hoping several years of programming experience since will shed some new and interesting light on one of my favorite topics.