Ada 95: The Craft of Object-Oriented Programming

Sponsor Advertisement

  • Author: John English
  • Format: HTML
  • Price: free

This book is a beginner’s introduction to Ada 95. It uses an example-driven approach that gradually develops small programs into large case-study type programs. The focus of this book is on using object-oriented approaches to write maintainable, extensive programs. Important and unique ADA features such as exception handling, user-defined types, procedures, functions, and packages are covered early in the text.

Chapters include:

  • Programming concepts
  • Fundamentals of Ada
  • Statements
  • Procedures, functions and packages
  • Defining new data types
  • Composite data types
  • Exceptions
  • Program design and debugging
  • Private types
  • Designing with abstract data types
  • Dynamic memory allocation
  • Generics
  • Building a calculator
  • Tagged types
  • Polymorphism and dispatching
  • Controlled types
  • An object-oriented calculator
  • Designing a spreadsheet
  • Multitasking
  • Loose ends
  • Language summary
  • Selected standard packages
  • Language-defined attributes
  • Package Listings

Visit: Ada 95: The Craft of Object-Oriented Programming

Python Reference Manual

Sponsor Advertisement

  • Author: Guido van Rossum
  • Format: HTML
  • Price: free

This is a reference manual that describes the Python programming language. It is not meant as a tutorial. If you are using Python and wonder what the precise rules about a particular area of the language are, you should definitely be able to find them here.

There is currently only one Python implementation in widespread use (although alternate implementations exist), and its particular quirks are sometimes worth being mentioned, especially where the implementation imposes additional limitations. Therefore, you’ll find short “implementation notes'” sprinkled throughout the text. Each section has a number of subsections.

Chapters include:

  • Introduction
  • Lexical analysis
  • Data model
  • Execution model
  • Expressions
  • Simple statements
  • Compound statements
  • Top-level components
  • History and License

Visit Python Reference Manual

Text Processing in Python

Sponsor Advertisement

Text Processing in Python
  • Author: David Mertz
  • Format: TXT
  • Price: free

This book is an example-driven, hands-on tutorial that carefully teaches programmers how to accomplish numerous text processing tasks using the Python language. Filled with concrete examples, it provides efficient and effective solutions to specific text processing problems and practical strategies for dealing with all types of text processing challenges.

The book begins with an introduction to text processing and contains a quick Python tutorial to get you up to speed. It then delves into essential text processing subject areas, including string operations, regular expressions, parsers and state machines, and Internet tools and techniques. Appendixes cover such important topics as data compression and Unicode. A comprehensive index and plentiful cross-referencing offer easy access to available information. In addition, exercises throughout the book provide readers with further opportunity to hone their skills either on their own or in the classroom. Source code, examples, and a regular expression chart are also provided on the author’s website.

Chapters include:

  • Introduction
  • Python Basics
  • Basic String Operations
  • Regular Expressions
  • Parsers and State-machines
  • Internet Tools and Techniques
  • A Selective and Impressionistic Short Review of Python
  • A Data Compression Primer
  • Understanding Unicode
  • A State-machine for Adding Markup to Text
  • Glossary Terms

Python Documentation

Sponsor Advertisement

Python Documentation
  • Author: Python Software Foundation
  • Format: online HTML, archived HTML, archived PDF, archived plain text, EPUB
  • Price: free

This is the official Python documentation. One of the best places to start if you need information on Python. Always current & up to date. Everything is available for both online & offline viewing.

Topics include:

  • What’s New in Python XX (changes since previous major release)
  • Tutorial (start here)
  • Global Module Index (for quick access to all modules)
  • Library Reference (keep this under your pillow)
  • Macintosh Library Modules (this too, if you use a Macintosh)
  • Language Reference (for language lawyers)
  • Extending and Embedding (tutorial for C/C++ programmers)
  • Python/C API (reference for C/C++ programmers)
  • Documenting Python (information for documentation authors)
  • Installing Python Modules (information for installers & sys-admins)
  • Distributing Python Modules (sharing modules with others)

Documentation for Python 2.7

Documentation for Python 3.5

Documentation for Python 3.6

Documentation for Python 3.7


Arduino Programming Notebook

Sponsor Advertisement

My image
  • Author: Brian Evans
  • Format: downloadable PDF
  • Price: free

A beginner’s reference to the programming syntax of the Arduino microcontroller. Includes information on program structure, variables, datatypes, arithmetic, constants, flow control, and most of the common functions of the core library. Also includes an appendix with schematics and simple programs for several common tasks.

Chapters include:

  • structure
  • variables
  • datatypes
  • arithmetic
  • constants
  • flow control
  • digital i/o
  • analog i/o
  • time
  • math
  • random
  • serial

Get the book: Arduino Programming Notebook

Introduction to Probability: Second Revised Edition

Sponsor Advertisement

My image
  • Author: Charles M. Grinstead & J. Laurie Snell
  • Format: PDF
  • Price: free

This is a textbook designed for an introductory probability course at the university level for sophomores, juniors, and seniors in mathematics, physical and social sciences, engineering, and computer science. It presents a thorough treatment of ideas and techniques necessary for a firm understanding of the subject.

The text is also recommended for use in discrete probability courses. The material is organized so that the discrete and continuous probability discussions are presented in a separate, but parallel, manner. This organization does not emphasize an overly rigorous or formal view of probabililty and therefore offers some strong pedagogical value. Hence, the discrete discussions can sometimes serve to motivate the more abstract continuous probability discussions.

Key ideas are developed in a somewhat leisurely style, providing a variety of interesting applications to probability and showing some nonintuitive ideas. Over 600 exercises provide the opportunity for practicing skills and developing a sound understanding of ideas. Numerous historical comments deal with the development of discrete probability. The text includes many computer programs that illustrate the algorithms or the methods of computation for important problems.

Chapters include:

  • Discrete probability distributions
  • Continuous probability densities
  • Combinatorics
  • Conditional probability
  • Important distributions and densities
  • Expected value and variance
  • Sums of independent random variables
  • Law of large numbers
  • Central limit theorem
  • Generating functions
  • Markov chains
  • Random walks

Batfiles: The DOS batch file programming handbook & tutorial

Sponsor Advertisement

  • Author: Laurence Soucy
  • Format: online HTML
  • Price: free

This is an older book, written by a batch file enthusiast for batch file enthusiasts. The batch files are not written like a typical programmer would write them. All intermediate and advanced batch files include documentation, a built-in help function, are internally sectioned, and have clear beginning and ending markings. All commands are in uppercase, while documentation and comments are in lowercase. This is so code and text can be immediately distinguished from one another.

The book is divided into four main sections: Before you start, Basic batfiles, Intermediate batfiles, and Advanced batfiles.  These are further divided into numerically ordered chapters. At the time of this post, it seems that only the Basic section has been completed. Hopefully the author will find the time to finish the other two sections. But even without those sections, it is a quite usable beginners book.
It is not meant to be a book about DOS, which will be handled on a need to know basis in relation to batfiles. It must be pointed out, however, that DOS help is an important part of the curriculum and required reading.

The author believes that batch files should be as easy as possible to understand, while writing them, using them, and examining them several months later. Real case scenarios are used to show how a variety of problems can be solved with batch files.

Much of the book is quite old and written with real DOS in mind, and not emulated DOS from a command prompt in Windows 2000/XP/Vista. Keep this in mind as you read and follow the book. There are some things that will only work with real DOS, which Microsoft no longer includes with Windows.

Chapters include:

  • The boot process
  • Internal and external commands
  • Command hierarchy
  • Syntax and
  • The DOS editor – your friend
  • Break and verify
  • Echo, redirection and pipes
  • The call command
  • Using doskey to create a batch file
  • Prompt and path
  • Doskey macros
  • Variables and the Set command
  • Temp and copycmd variables
  • The environment
  • Comspec variable
  • Shell statement
  • The ansi.sys device driver
  • Set screen colors and text attributes
  • Remap the keyboard
  • Smartdrv.exe
  • Partition your hard disk
  • Using a RAM drive
  • Input and data directories
  • Optimize config.sys
  • Optimize autoexec.bat
  • Optimize BIOS
  • Simple batfiles
  • More simple batfiles
  • Fixed batfiles
  • Replaceable parameters
  • If
  • Smart batfiles

Visit: Batfiles

Dictionary of Algorithms and Data Structures

Sponsor Advertisement

My image
  • Author: National Institute of Standards and Technology (NIST)
  • Format: online HTML
  • Price: free

This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions, presented by the National Institute of Standards and Technology (NIST).Algorithms include common functions, such as Ackermann’s function. Problems include traveling salesman and Byzantine generals. Some entries have links to implementations and more information. Index pages list entries by area and by type.

It does not include algorithms particular to business data processing, communications, operating systems or distributed algorithms, programming languages, AI, graphics, or numerical analysis. They have a hard enough time keeping up with and covering “general” algorithms and data structures.

Information Theory, Inference, and Learning Algorithms

Sponsor Advertisement

My image
  • Author: David J. C. MacKay
  • Format: PDF, Postscript, DJVU, latex
  • Price: free

Information theory and inference, often taught separately, are here united in one entertaining textbook. These topics lie at the heart of many exciting areas of contemporary science and engineering – communication, signal processing, data mining, machine learning, pattern recognition, computational neuroscience, bioinformatics, and cryptography.

This textbook introduces theory in tandem with applications. Information theory is taught alongside practical communication systems, such as arithmetic coding for data compression and sparse-graph codes for error-correction. A toolbox of inference techniques, including message-passing algorithms, Monte Carlo methods, and variational approximations, are developed alongside applications of these tools to clustering, convolutional codes, independent component analysis, and neural networks.

The final part of the book describes the state of the art in error-correcting codes, including low-density parity-check codes, turbo codes, and digital fountain codes — the twenty-first century standards for satellite communications, disk drives, and data broadcast.

Richly illustrated, filled with worked examples and over 400 exercises, some with detailed solutions, David MacKay’s groundbreaking book is ideal for self-learning and for undergraduate or graduate courses. Interludes on crosswords, evolution, and sex provide entertainment along the way.

In sum, this is a textbook on information, communication, and coding for a new generation of students, and an unparalleled entry point into these subjects for professionals in areas as diverse as computational biology, financial engineering, and machine learning.

Chapters include:

  • Introduction to Information Theory
  • Probability, Entropy, and Inference
  • More about Inference
  • Data Compression
  • The Source Coding Theorem
  • Symbol Codes
  • Stream Codes
  • Codes for Integers
  • Noisy-Channel Coding
  • Dependent Random Variables
  • Communication over a Noisy Channel
  • The Noisy-Channel Coding Theorem
  • Error-Correcting Codes and Real Channels
  • Further Topics in Information Theory
  • Hash Codes: Codes for Efficient Information Retrieval
  • Binary Codes
  • Very Good Linear Codes Exist
  • Further Exercises on Information Theory
  • Message Passing
  • Communication over Constrained Noiseless Channels
  • Crosswords and Codebreaking
  • Why have Sex? Information Acquisition and Evolution
  • Probabilities and Inference
  • An Example Inference Task: Clustering
  • Exact Inference by Complete Enumeration
  • Maximum Likelihood and Clustering
  • Useful Probability Distributions
  • Exact Marginalization
  • Exact Marginalization in Trellises
  • Exact Marginalization in Graphs
  • Laplace’s Method
  • Model Comparison and Occam’s Razor
  • Monte Carlo Methods
  • Efficient Monte Carlo Methods
  • Ising Models
  • Exact Monte Carlo Sampling
  • Variational Methods
  • Independent Component Analysis and Latent Variable Modelling
  • Random Inference Topics
  • Decision Theory
  • Bayesian Inference and Sampling Theory
  • Neural networks
  • Introduction to Neural Networks
  • The Single Neuron as a Classifier
  • Capacity of a Single Neuron
  • Learning as Inference
  • Hopfield Networks
  • Boltzmann Machines
  • Supervised Learning in Multilayer Networks
  • Gaussian Processes
  • Deconvolution
  • Sparse Graph Codes
  • Low-Density Parity-Check Codes
  • Convolutional Codes and Turbo Codes
  • Repeat-Accumulate Codes
  • Digital Fountain Codes

Algorithms and Complexity, First Edition

Sponsor Advertisement

My image
  • Author: Herbert S. Wilf
  • Format: PDF
  • Price: free

This is an introductory textbook, suitable for classroom use, on the design and analysis of algorithms, complexity, methods for solving problems on computers and the costs (usually in running time) of using those methods.

The first edition was available in print from 1986 to 1994. The copyright has been returned to the author and he has made it available to the public, free of charge. He also allows reproduction of the book for educational purposes, but you can not distribute it from the internet in any form.

There is a second edition of this book available for purchase, with the only major difference being the inclusion of solutions to most of the exercises that are presented.

Chapters include:

  • Hard vs easy problems
  • Mathematical Preliminaries
  • Orders of magnitude
  • Positional number systems
  • Manipulations with series
  • Recurrence relations
  • Counting
  • Graphs
  • Quicksort
  • Recursive graph algorithms
  • Fast matrix multiplication
  • The discrete Fourier transform
  • Applications of the FFT
  • Algorithms for the network flow problem
  • The algorithm of Ford and Fulkerson
  • The max-flow min-cut theorem
  • The complexity of the Ford-Fulkerson algorithm
  • Layered networks
  • The MPM Algorithm
  • Applications of network flow
  • The greatest common divisor
  • The extended Euclidean algorithm
  • Primality testing
  • Interlude: the ring of integers modulo n
  • Pseudoprimality tests
  • Proof of goodness of the strong pseudoprimality test
  • Factoring and cryptography
  • Factoring large integers
  • Proving primality
  • Turing machines
  • Cook’s theorem
  • Some other NP-complete problems
  • Half a loaf
  • Backtracking (I): independent sets
  • Backtracking (II): graph coloring
  • Approximate algorithms for hard problems