The aim of this textbook is to present the central and basic concepts, techniques, and tools of computer science. The emphasis is on presenting a problem-solving approach and on providing a survey of all of the most important topics covered in computer science degree programmes.
The aim of this textbook is to present the central and basic concepts, techniques, and tools of computer science. The emphasis is on presenting a problem-solving approach and on providing a survey of all of the most important topics covered in computer science degree programmes. Scheme is used throughout as the programming language and the author stresses a functional programming approach which concentrates on the creation of simple functions that are composed to obtain the desired programming goal. Such simple functions are easily tested individually. This greatly helps in producing programs that work right first time.Throughout, the author presents techniques to aid in the writing of programs and makes liberal use of boxes which present "Mistakes to Avoid." Many programming examples are discussed in detail which illustrate general approaches to programming. These include: abstracting a problem; creating pseudo code as an intermediate solution; top-down and bottom-up design; building procedural and data abstractions; and writing programs in modules which are easily testable.Numerous exercises help the readers test their understanding of the material and develop some ideas in greater depth. As a result, this text will make an ideal first course for all students coming to computer science for the first time.
Introduction to Computer Science.- Problem Solving and Problem Abstraction.- Programming the Computer.- Lists: the Basic Data Structure.- Conditionals.- Repetition through Recursion.- Data Structures.- Functionals.- Input and Output.- Repetition through Iteration.- Advanced uses of Functions.- Database Management Systems.- Compilers and Interpreters.- Operating Systems.- Artificial Intelligence.- Soft Computing: Fuzzy Logic, Neural Networks, and Genetic Algorithms.