Skip to main content

A Book and a Library

This repository hosts both the book, A First Course on Data Structures in Python and the python package ds2 that is extracted from that book.

The book covers fundamentals of data structures in Python and the library contains fully-tested implementations of the data structures in the book.

The book is a literate program. The code is woven into the text. As such, there are few inline comments. The comments are the book. Moreover, the code files are automatically generated from the markdown files that define the book.

A First Course on Data Structures in Python

by Don Sheehy

Overview

This book is designed to cover a lot of ground quickly, without taking shortcuts.

What does that mean? It means that concepts are motivated and start with simple examples. The ideas follow the problems. The abstractions follow the concrete instances.

What does it not mean? The book is not meant to be comprehensive, covering all of data structures, nor is it a complete introduction to all the details of python. Introducing the minimum necessary knowledge to make interesting programs and learn useful concepts is not taking shortcuts, it's just being directed.

There are many books that will teach idiomatic python programming, and many others that will teach problem solving, data structures, or algorithms. There are many books for learning design patterns, testing, and many of the other important practices of software engineering. The aim of this book is cover many of these topics as part of an integrated course.

Towards that aim, the organization is both simple and complex. The simple part is that the overall sequencing of the main topics is motivated by the data structuring problems, as is evident from the chapter titles. The complex part is that many other concepts including problem solving strategies, more advanced python, object-oriented design principles, and testing methodologies are introduced bit by bit throughout the text in a logical, incremental way.

As a result, the book is not meant to be a reference. It is meant to be worked through from beginning to end. Many topics dear to my heart were left out to make it possible to work through the whole book in a single semester course.

The full book as a pdf can be found here.

Metadata

Release files for ds2 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ds2 0.2.4
File Size Uploaded
ds2-0.2.4.tar.gz 23.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ds2 0.2.4
File Interpreter ABI Platform
ds2-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 56.7 kB

Release files / ds2-0.2.4.tar.gz

Download URL ds2-0.2.4.tar.gz
Size 23.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d668a455045e43b9b52205293c667cf64a2c5b37334a4f1047d0ec576ed66c7e
BLAKE2b-256 checksum
How to use checksums
72a6147ba2be64d823829ecb74e69fd6c2b45f8f1f0d898093c3198b06f4c656
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / ds2-0.2.4-py3-none-any.whl

Download URL ds2-0.2.4-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8f8387e612cbf13f4118b3d7c6bff81b86b2620254a9743dcbff39bd6afee07
BLAKE2b-256 checksum
How to use checksums
8d1ab1c0ecdf10f126cfe7c0c67eced739c14adb14a7e8ed36095fe8f5d63a1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page