Skip to content

    Computer Science Textbooks

    Filters

    +
    Read more about A Byte of Python

    A Byte of Python

    Copyright Year:

    Contributor: H

    Publisher: Swaroop C H

    License: CC BY-SA

    "A Byte of Python" is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.

    whole starwhole starwhole starwhole starhalf star

    (14 reviews)

    READ MORE

    Read more about Implementing a One Address CPU in Logisim

    Implementing a One Address CPU in Logisim

    Copyright Year:

    Contributor: Kann

    Publisher: A.T. Still University

    License: CC BY

    Most computer users have an incorrect, but useful, cognitive metaphor for computers in which the user says (or types or clicks) something and a mystical, almost intelligent or magical, behavior happens. It is not a stretch to describe computer users as believing computers follow the laws of magic, where some magic incantation is entered, and the computer responds with an expected, but magical, behavior. This magic computer does not actually exist. In reality computer are machines, and every action a computer performs reduces to a set of mechanical operations. In fact the first complete definition of a working computer was a mechanical machine designed by Charles Babbage in 1834, and would have run on steam power. Probably the biggest success of Computer Science (CS) in the 20th century was the development of abstractions that hide the mechanical nature of computers. The fact that average people use computers without ever considering that they are mechanistic is a triumph of CS designers. This purpose of this monograph is to break the abstract understanding of a computer, and to explain a computer's behavior in completely in mechanistic terms. It will deal specifically with the Central Processing Unit (CPU) of the computer, as this is where the magic happens. All other parts of a computer can be seen as just providing information for the CPU to operate on. This monograph will deal with a specific type of CPU, a one-address CPU, and will explain this CPU using only standard gates, specifically AND, OR, NOT, NAND and XOR gates, and 4 basic Integrated Circuits (ICs), the Decoder, Multiplexer, Adder, and Flip Flop. All of these gates and components can be described as mechanical transformations of input data to output data, and the overall CPU can then be seen as a mechanical device.

    whole starwhole starwhole starwhole starhalf star

    (1 review)

    READ MORE

    Read more about Object-Oriented Reengineering Patterns

    Object-Oriented Reengineering Patterns

    Copyright Year:

    Contributors: Demeyer, Ducasse, and Nierstrasz

    Publisher: Stéphane Ducasse

    License: CC BY-SA

    The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point.

    No ratings

    (0 reviews)

    READ MORE

    Read more about How to Think Like a Computer Scientist: C++ Version

    How to Think Like a Computer Scientist: C++ Version

    Copyright Year:

    Contributor: Downey

    Publisher: Green Tea Press

    License: CC BY-NC

    The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

    whole starwhole starwhole starwhole starhalf star

    (1 review)

    READ MORE

    Read more about How to Think Like a Computer Scientist: C Version

    How to Think Like a Computer Scientist: C Version

    Copyright Year:

    Contributors: Downey and Scheffler

    Publisher: Green Tea Press

    License: CC BY-NC

    The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

    whole starwhole starwhole starwhole starhalf star

    (2 reviews)

    READ MORE

    Read more about Think Data Structures: Algorithms and Information Retrieval in Java

    Think Data Structures: Algorithms and Information Retrieval in Java

    Copyright Year:

    Contributor: Downey

    Publisher: Green Tea Press

    License: CC BY-NC-SA

    Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. But in my opinion, most of the books on these topics are too theoretical, too big, and too bottom-up:

    whole starwhole starwhole starwhole starwhole star

    (4 reviews)

    READ MORE

    Read more about The Unicode cookbook for linguists: Managing writing systems using orthography profiles

    The Unicode cookbook for linguists: Managing writing systems using orthography profiles

    Copyright Year:

    Contributors: Moran and Cysouw

    Publisher: Language Science Press

    License: CC BY

    This text is a practical guide for linguists, and programmers, who work with data in multilingual computational environments. We introduce the basic concepts needed to understand how writing systems and character encodings function, and how they work together at the intersection between the Unicode Standard and the International Phonetic Alphabet. Although these standards are often met with frustration by users, they nevertheless provide language researchers and programmers with a consistent computational architecture needed to process, publish and analyze lexical data from the world's languages. Thus we bring to light common, but not always transparent, pitfalls which researchers face when working with Unicode and IPA. Having identified and overcome these pitfalls involved in making writing systems and character encodings syntactically and semantically interoperable (to the extent that they can be), we created a suite of open-source Python and R tools to work with languages using orthography profiles that describe author- or document-specific orthographic conventions. In this cookbook we describe a formal specification of orthography profiles and provide recipes using open source tools to show how users can segment text, analyze it, identify errors, and to transform it into different written forms for comparative linguistics research.

    whole starwhole starwhole starwhole starempty star

    (1 review)

    READ MORE

    Read more about Delftse Foundations of Computation - 2nd Edition

    Delftse Foundations of Computation - 2nd Edition

    Copyright Year:

    Contributors: Hugtenburg and Yorke-Smith

    Publisher: TU Delft Open

    License: CC BY-NC-SA

    DELFTSE FOUNDATIONS OF COMPUTATION is a textbook for a one-quarter introductory course in theoretical computer science. It includes top-ics from propositional and predicate logic, proof techniques, discrete structures, set theory and the theory of computation, along with practical applications to computer science. It has no prerequisites other than a general familiarity with computer programming.

    whole starwhole starwhole starwhole starwhole star

    (1 review)

    READ MORE

    Read more about An Introduction to Matlab and Mathcad

    An Introduction to Matlab and Mathcad

    Copyright Year:

    Contributor: Siemers

    Publisher: APEX Calculus

    License: CC BY-NC

    This textbook, or really a “coursebook” for a college freshman-level class, has been updated for Spring 2014 and provides an introduction to programming and problem solving using both Matlab and Mathcad. We provide a balanced selection of introductory exercises and real-world problems (i.e. no “contrived” problems). We include many examples and screenshots to guide the reader. We assume no prior knowledge of Matlab or Mathcad.

    whole starwhole starwhole starwhole starwhole star

    (1 review)

    READ MORE

    Read more about Making Games with Python & Pygame

    Making Games with Python & Pygame

    Copyright Year:

    Contributor: Sweigart

    Publisher: Albert Sweigart

    License: CC BY-NC-SA

    This book will teach you how to make graphical computer games in the Python programming language using the Pygame library.This book assumes you know a little bit about Python or programming in general. If you don’t know how to program, you can learn by downloading the free book "Invent Your Own Computer Games with Python" from http://inventwithpython.com. Or you can jump right into this book and mostly pick it up along the way. This book is for the intermediate programmer who has learned what variables and loops are, but now wants to know, "What do actual game programs look like?" There was a long gap after I first learned programming but didn’t really know how to use that skill to make something cool. It’s my hope that the games in this book will give you enough ideas about how programs work to provide a foundation to implement your own games.

    whole starwhole starwhole starwhole starhalf star

    (1 review)

    READ MORE