Computer Science

CS Principles: Big Ideas in Programming

Book cover for CS Principles: Big Ideas in Programming

This book helps students learn what programming is and how it works without making you write lots of code. It will use the programming language Python, which is widely used, from companies like Google, Instagram and Facebook to engineering and scientific institutions like NASA and CERN.

Theoretical Computer Science

Structure and Interpretation of Computer Programs

Book cover for Structure and Interpretation of Computer Programs

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.

Think Complexity - (2nd Edition)

Book cover for Think Complexity

This book is primarily about complexity science, but studying complexity science gives you a chance to explore topics and ideas you might not encounter otherwise, practice programming in Python, and learn about data structures and algorithms.

Models of Computation - John E. Savage

Book cover for Models of Computation

In Models of Computation: Exploring the Power of Computing, John Savage re-examines theoretical computer science, offering a fresh approach that gives priority to resource tradeoffs and complexity classifications over the structure of machines and their relationships to languages.

This viewpoint reflects a pedagogy motivated by the growing importance of computational models that are more realistic than the abstract ones studied in the 1950s, '60s and early '70s.

Professional Development

Professional Software Development For Students

Book cover for Professional Software Development For Students

As a student of computer science and programming, you’ve learned a significant portion of what you need to know as a rookie professional. The most difficult parts perhaps, but far from the “whole enchilada.” This book is meant to fill in the gaps in knowledge needed for workaday software projects.

It aims to teach “in a nutshell” , the myriad subjects the pro-developer should know. It covers the material in a broad manner from theory to practice, attempting to provide a platform for further study and a “mental-map” to place subjects into context.

Information Retrieval

Information Retrieval: A Survey

Book cover for Information Retrieval: A Survey

The need for effective methods of automated IR has grown in importance because of the tremendous explosion in the amount of unstructured data, both internal, corporate document collections, and the immense and growing number of document sources on the Internet. This report is a tutorial and survey of the state of the art, both research and commercial, in this dynamic field.

Introduction to Information Retrieval

Book cover for Introduction to Information Retrieval

The book aims to provide a modern approach to information retrieval from a computer science perspective.

Help Us Improve This Page Updated at Tue, Feb 7, 2023