I too took this course as a freshman, and it was one of the most enlightening things I've ever done for my software engineering career. It's worth getting the most recent copy--it has a lot of corrections and entire new chapters on interesting things (automatons, lambda calculus, lattices, graphs...)
Let me know if you have any questions about its content or my experience.
Did you take a Discrete Mathematics course at all? At Georgia Southern Discrete Mathematics is a required course for all IT and CS Majors. Struggling with my other math classes (College Algebra, Survey of Calc) that class created a good bit of anxiety for me, until I actually got into and realized to me at least it was not like any of the other math classes.
I just had a course about functional programming and proof theory in Coq. It's super fun and super enlightening. If you are into that kind of thing, you should definitely give it a try!
No, I often buy used text books when I find them cheap so I can fill in what I missed by skipping out on a degree.
I have a separate title on discrete math (Epp) but its companion only had some solutions to exercises available in a separate $60 [used] book. I found this title and figured that with the intersection of ML and discrete math I'd have better luck. (Staring at a ton of problems in a text book without knowing which ones I'd be able to verify my solutions against - the Epp book - was a daunting prospect for self-study).
Fun to see this here. I TA-ed for this course--one of my favorite undergrad classes. I highly recommend picking up the full book. The merging of proof and program is really cool as a way to teach CS concepts.
I'm actually working on porting a lot of the examples over to idiomatic Clojure. Email me if you're interested in following the progress there.
I took this course as a freshman CS Major at Wheaton College and helped edit Dr. VD's textbook. He used to give extra credit for finding typos in his book. I got a bad grade on one of the exams and then came to him the next week with 20+ corrections to his book.
It was a great course and VanDrunen is one of the best profs I've ever had.
Really great book! I took this course as a sophomore and wish I had as a freshman as the ideas and themes presented in the book and course are so integral to forming proper thinking in the subject of programming.
Let me know if you have any questions about its content or my experience.