Textbook published by a CAS graduate student
Last year, one of our recently graduated Master's students, Daniel Zingaro, published a textbook "Invariants: a Generative Approach to Programming". We asked him what made him start graduate studies at McMaster, what he expected to learn, what motivated him to write a book, what the reaction to the book is so far, and what his plans are about becoming an instructor:
I started grad studies at Mac after I had the opportunity to work with
Dr. Sekerinski the summer before. During that summer I realized that
there was a whole lot more I could learn by hanging around Mac for a
couple more years. I didn't know what I wanted to research yet, but I
was intrigued by the courses I would be able to take and the chance to
focus on deeper concepts in CS.
The motivation for the book came from the realization that I could synthesize a lot of my graduate readings, courses, discussions, and research into a framework that would be accessible to students entering undergrad. I became very interested in CS education while at McMaster and was intrigued by the chance to apply powerful reasoning concepts very early in students' curricula. We used a draft of the book last year in CS2O03 at McMaster and I used parts of it this year at U of T while teaching an algorithms course. I was able to ask first- year students at U of T to write invariants for various quicksort partition methods, with good results. The students didn't find it easy, but were able to readily include invariants with their Java code as I hoped. Some went as far as to add assertions to the code in order to further support their invariants, a technique that I had not included in the book, but something that really connected programming and "proving".
My interest in teaching started when I had the opportunity to be a TA at McMaster for CS4TB3, the compiler construction course taught by Dr. Sekerinski. I was interested in all aspects of the course and was permitted to help with creating tests and assignments. I had no idea I was interested in teaching before this.
Now, I have been teaching courses at Centennial College and U of T. My PhD will focus on CS education, in particular the experience of students in undergrad formal methods courses.
The book can be ordered through Amazon.