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, …

Below C Level (CC BY-ND)Read 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.

This is part of MIT’s OpenCourseWare website. It includes a course syllabus, reading list, lecture videos, Powerpoint slides and code, in-class questions and video questions as well as assignments – all available for download. The course is intended for students with little or no programming experience. It aims to provide students with an understanding of …

Introduction to Computer Science and Programming in Python (CC BY-NC-SA)Read More »

Think Python 2e – LibreTexts (CC BY-NC)Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming, are divided …

Think Python 2eRead More »