How we did it:
Michael R. Hansen, Hans Rischel
An introductory programming textbook for students using SML. The text teaches SML program design based on a set of simple, clean and powerful concepts. It emphasizes mathematical structures, modelling and abstraction as a basis for programming.
Jeffrey D. Ullman
This highly accessible introduction to the fundamentals of ML is presented by computer science educator and author, Jeffrey D. Ullman. The primary change in the Second Edition is that it has been thoroughly revised and reorganized to conform to the new language standard called ML97. This is the first book that offers both an accurate step-by-step tutorial to ML programming and a comprehensive reference to advanced features. It is the only book that focuses on the popular SML/NJ implementation. The material is arranged for use in sophomore through graduate level classes or for self-study. This text assumes no previous knowledge of ML or functional programming, and can be used to teach ML as a first programming language. It is also an excellent supplement or reference for programming language concepts, functional programming, or compiler courses.
James L. Hein
Thoroughly updated, the new Third Edition of Discrete Structures, Logic, and Computability introduces beginning computer science and computer engineering students to the fundamental techniques and ideas used by computer scientists today, focusing on topics from the fields of mathematics, logic, and computer science itself. Dr. Hein provides elementary introductions to those ideas and techniques that are necessary to understand and practice the art and science of computing. The text contains all the topics for discrete structures in the reports of the IEEE/ACM Joint Task Force on Computing Curricula for computer science programs and for computer engineering programs.