Mathematics for Computer Science – LibreText PDF; Mathematics for Computer Science PDF (CC BY-SA)This text explains how to use mathematical models and methods to analyze problems that arise in computer science. Proofs play a central role in this work because the authors share a belief with most mathematicians that proofs are essential for genuine understanding. Proofs also …

Mathematics for Computer ScienceRead More »

x86-64 Assembly Language Programming with Ubuntu PDF (CC BY-NC-SA)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-641 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 …

x86-64 Assembly Language Programming with UbuntuRead More »

This is a course in assembly language programming of the MIPS processor. It emphasizes the topics needed for the study of computer architecture: bits, bit patterns, operations on bit patterns, and how bit patterns represent instructions and data. This course is equivalent to a semester-long junior college or university course (except, perhaps, for the emphasis …

Programmed Introduction to MIPS Assembly Language (CC BY-NC)Read More »

Introduction to MIPS Assembly Language Programming PDF (CC BY)This book was written to introduce students to assembly language programming in MIPS. As with all assembly language programming texts, it covers basic operators and instructions, subprogram calling, loading and storing memory, program control, and the conversion of the assembly language program into machine code.

(CC-BY-ND; “ND” indicates “no derivatives”, editing is not permitted)This book is NOT about assembly language programming. There is assembly language sprinkled throughout the book, so you will in fact learn assembly language—but only as a means to a different end, the latter being understanding of computer systems. Specifically, you will learn about high-level hardware, the …

Below C LevelRead More »

OpenDSA is infrastructure and materials to support courses in a wide variety of Computer Science-related topics such as Data Structures and Algorithms (DSA), Formal Languages, Finite Automata, and Programming Languages. OpenDSA materials include many visualizations and interactive exercises. Our philosophy is that students learn best when they engage the material and then practice it until …

Open DSA (Copyrighted)Read More »

C++ reference

(CC BY-SA and GNU Free Documentation License)A complete online reference for the C and C++ languages and standard libraries, i.e. a more convenient version of the C and C++ standards.