Computer Science Textbooks

Read more about x86-64 Assembly Language Programming with Ubuntu

x86-64 Assembly Language Programming with Ubuntu

Contributor: Jorgensen

Publisher: Ed Jorgensen

The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14.04 LTS (64-bit). The x86-64 is a Complex Instruction Set Computing (CISC) CPU design. This refers to the internal processor design philosophy. CISC processors typically include a wide variety of instructions (sometimes overlapping), varying instructions sizes, and a wide range of addressing modes. The term was retroactively coined in contrast to Reduced Instruction Set Computer (RISC3).

(2 reviews)

READ MORE

Read more about Agent-Based Evolutionary Game Dynamics

Agent-Based Evolutionary Game Dynamics

Contributors: Izquierdo, Izquierdo, and Sandholm

Publisher: University of Wisconsin-Madison

This book is a guide to implement simple agent-based evolutionary models using NetLogo.

(1 review)

READ MORE

Read more about Professional Web Accessibility Auditing Made Easy

Professional Web Accessibility Auditing Made Easy

Publisher: Ryerson University

Digital accessibility skills are in high demand, as the world becomes more aware of barriers in digital content that prevent some people from participating in a digital society. These are essential skills for web developers, and essential knowledge for organizations that want to ensure their web content is reaching the broadest audience possible.

(1 review)

READ MORE

Read more about Web Accessibility for Developers

Web Accessibility for Developers

Publisher: Ryerson University

Web Accessibility for Developers is a technical book aimed primarily at programmers. Learn how to develop accessible interactivity on the Web and gain expertise using WAI-ARIA, a W3C specification that enables optimal use of assistive technologies, like screen readers, when navigating the Web.

(2 reviews)

READ MORE

Read more about Making Games with Python & Pygame

Making Games with Python & Pygame

Contributor: Sweigart

Publisher: Albert Sweigart

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.

No ratings

(0 reviews)

READ MORE

Read more about An Introduction to Matlab and Mathcad

An Introduction to Matlab and Mathcad

Contributor: Siemers

Publisher: APEX Calculus

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.

(1 review)

READ MORE

Read more about Yet Another Introductory Number Theory Textbook (Cryptology Emphasis Version)

Yet Another Introductory Number Theory Textbook (Cryptology Emphasis Version)

Contributor: Poritz

Publisher: Jonathan Poritz

This version of YAINTT has a particular emphasis on connections to cryptology. The cryptologic material appears in Chapter 4 and §§5.5 and 5.6, arising naturally (I hope) out of the ambient number theory. The main cryptologic applications – being the RSA cryptosystem, Diffie-Hellman key exchange, and the ElGamal cryptosystem – come out so naturally from considerations of Euler’s Theorem, primitive roots, and indices that it renders quite ironic G.H. Hardy’s assertion [Har05] of the purity and eternal inapplicability of number theory. Note, however, that once we broach the subject of these cryptologic algorithms, we take the time to make careful definitions for many cryptological concepts and to develop some related ideas of cryptology which have much more tenuous connections to the topic of number theory. This material therefore has something of a different flavor from the rest of the text – as is true of all scholarly work in cryptology (indeed, perhaps in all of computer science), which is clearly a discipline with a different culture from that of “pure”mathematics. Obviously, these sections could be skipped by an uninterested reader, or remixed away by an instructor for her own particular class approach.

(1 review)

READ MORE

Read more about Delftse Foundations of Computation

Delftse Foundations of Computation

Contributors: Hugtenburg and Yorke-Smith

Publisher: TU Delft Open

Delftse Foundations of Computation is a textbook for a one quarter introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, 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.

(1 review)

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

Contributors: Moran and Cysouw

Publisher: Language Science Press

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.

(1 review)

READ MORE

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

Think Data Structures: Algorithms and Information Retrieval in Java

Contributor: Downey

Publisher: Green Tea Press

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:

(3 reviews)

READ MORE