Exploring Computer Science with Scheme


Book Description

A presentation of the central and basic concepts, techniques, and tools of computer science, with the emphasis on presenting a problem-solving approach and on providing a survey of all of the most important topics covered in degree programmes. Scheme is used throughout as the programming language and the author stresses a functional programming approach to create simple functions so as to obtain the desired programming goal. Such simple functions are easily tested individually, which greatly helps in producing programs that work correctly first time. Throughout, the author aids to writing programs, and makes liberal use of boxes with "Mistakes to Avoid." Programming examples include: * abstracting a problem; * creating pseudo code as an intermediate solution; * top-down and bottom-up design; * building procedural and data abstractions; * writing progams in modules which are easily testable. Numerous exercises help readers test their understanding of the material and develop ideas in greater depth, making this an ideal first course for all students coming to computer science for the first time.




Discovering Computer Science


Book Description

"Havill's problem-driven approach introduces algorithmic concepts in context and motivates students with a wide range of interests and backgrounds." -- Janet Davis, Associate Professor and Microsoft Chair of Computer Science, Whitman College "This book looks really great and takes exactly the approach I think should be used for a CS 1 course. I think it really fills a need in the textbook landscape." -- Marie desJardins, Dean of the College of Organizational, Computational, and Information Sciences, Simmons University "Discovering Computer Science is a refreshing departure from introductory programming texts, offering students a much more sincere introduction to the breadth and complexity of this ever-growing field." -- James Deverick, Senior Lecturer, The College of William and Mary "This unique introduction to the science of computing guides students through broad and universal approaches to problem solving in a variety of contexts and their ultimate implementation as computer programs." -- Daniel Kaplan, DeWitt Wallace Professor, Macalester College Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming is a problem-oriented introduction to computational problem solving and programming in Python, appropriate for a first course for computer science majors, a more targeted disciplinary computing course or, at a slower pace, any introductory computer science course for a general audience. Realizing that an organization around language features only resonates with a narrow audience, this textbook instead connects programming to students’ prior interests using a range of authentic problems from the natural and social sciences and the digital humanities. The presentation begins with an introduction to the problem-solving process, contextualizing programming as an essential component. Then, as the book progresses, each chapter guides students through solutions to increasingly complex problems, using a spiral approach to introduce Python language features. The text also places programming in the context of fundamental computer science principles, such as abstraction, efficiency, testing, and algorithmic techniques, offering glimpses of topics that are traditionally put off until later courses. This book contains 30 well-developed independent projects that encourage students to explore questions across disciplinary boundaries, over 750 homework exercises, and 300 integrated reflection questions engage students in problem solving and active reading. The accompanying website — https://www.discoveringcs.net — includes more advanced content, solutions to selected exercises, sample code and data files, and pointers for further exploration.




Simply Scheme


Book Description

An introductory level text for students who are not majoring in computer science, as well as for computer science majors with no prior programming experience. This text teaches computer science from a functional and symbolic point of view. It provides a solid platform from which students can go on to study the seminal work Structure and Interpretation of Computer Programs.




Simply Scheme


Book Description

Showing off scheme - Functions - Expressions - Defining your own procedures - Words and sentences - True and false - Variables - Higher-order functions - Lambda - Introduction to recursion - The leap of faith - How recursion works - Common patterns in recursive procedures - Advanced recursion - Example : the functions program - Files - Vectors - Example : a spreadsheet program - Implementing the spreadsheet program - What's next?




Structure and Interpretation of Computer Programs, second edition


Book Description

Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.




Simply Scheme


Book Description

This lively introduction to computer science and computer programming inScheme is for non-computer science majors with a strong interest in the subject andfor computer science majors who lack prior programming experience. The text allowsthe student to experience the computer as a tool for expressing ideas, not as afrustrating set of mathematical obstacles. This goal is supported by the use ofScheme, a modern dialect of Lisp, designed to emphasize symbolicprogramming.




The Scheme Programming Language


Book Description

The thoroughly updated third edition of a popular introductory and reference text for standard Scheme, with examples and exercises.




What Is Computer Science?


Book Description

This engaging and accessible text addresses the fundamental question: What Is Computer Science? The book showcases a set of representative concepts broadly connected by the theme of information security, for which the presentation of each topic can be treated as a "mini" lecture course, demonstrating how it allows us to solve real problems, as well as how it relates to other subjects. The discussions are further supported by numerous examples and practical hands-on exercises. Features: presents a concise introduction to the study of algorithms and describes how computers work; introduces the concepts of data compression, and error detection and correction; highlights the role of data structures; explores the topic of web-search; reviews both historic and modern cryptographic schemes, examines how a physical system can leak information and discusses the idea of randomness; investigates the science of steganography; provides additional supplementary material at an associated website.




Learn Computer Science


Book Description

Learn Computer Science provides the depth aspects of the computer science, software and hardware. In the book a walkthrough of computer science concepts you must know. Especially designed for readers who this field, it is a one of the best and easy computer science guide. It helps to learn the fundamentals you need to program computers in facts. The main topics such as data processing, memory management, database, basics of programming, security, compilers, data structures and Information & communication are covered in this book Learn Computer Science book for students and teachers working in the related fields of computing, database management and computer networking readers. Students focusing on computer science engineering will also find this book helpful.




Essential Computational Thinking


Book Description

Essential Computational Thinking: Computer Science from Scratch helps students build a theoretical and practical foundation for learning computer science. Rooted in fundamental science, this text defines elementary ideas including data and information, quantifies these ideas mathematically, and, through key concepts in physics and computation, demonstrates the relationship between computer science and the universe itself. In Part I, students explore the theoretical underpinnings of computer science in a wide-ranging manner. Readers receive a robust overview of essential computational theories and programming ideas, as well as topics that examine the mathematical and physical foundations of computer science. Part 2 presents the basics of computation and underscores programming as an invaluable tool in the discipline. Students can apply their newfound knowledge and begin writing substantial programs immediately. Finally, Part 3 explores more sophisticated computational ideas, including object-oriented programing, databases, data science, and some of the underlying principles of machine learning. Essential Computational Thinking is an ideal text for a firmly technical CS0 course in computer science. It is also a valuable resource for highly-motivated non-computer science majors at the undergraduate or graduate level who are interested in learning more about the discipline for either professional or personal development.