30 Release Notes
This is a summary of updates made with each release of the book (excluding typos and other minor fixes).
30.1 Version 2025-02-09
This version introduces a new context, dcic2024
, that contains
all of the table-processing functions that used to be in a shared
drive file. Instructions on how to select the context are in the
chapter that introduces tables.
In The Program Directory, corrected the description of what Pyret reports when a program tries to redefine/give a new value to an existing identifier. The previous text had referred to shadowing, rather than a conflicting value.
In Dealing with Missing Entries, corrected an erroneous description of
num-sanitizer
that previously claimed that it defaulted missing values to 0. Added a discussion of why having a default like this would be a bad idea.
In addition, the challenge problem on computing the intersection of
two lists that is posed at the end of Recap: Summary of List Operations has been
refined, then revisited after introducing lam
in the next section.
30.2 Version 2024-09-03
This version fixes several small issues. There is minor reorganization that improves the structure of sections. It also includes links to several interesting related content from the Web that advanced students will find enriching.
30.3 Version 2023-02-21
The book has been broken down into a collection of booklets, to give it a clearer structure and organization. See Organization of the Material for details.
Several huge chapters in the earlier version have been broken down into smaller chapters and split across booklets.
The Introduction to Programming material has been substantially revised and expanded.
The ordering of materials has changed. The material on Algorithm Analysis has been moved to after the Python material.
The From Pyret to Python transition has been improved substantially.
There is now a chapter on using Pandas that builds off the corresponding Pyret example on tables.
Python dictionaries have moved into From Pyret to Python. Even though we don’t cover Pyret’s dictionaries, having the dictionaries material come before state is a more natural flow with regards to students learning Python. We then develop the implementation of dictionaries using state in Hashes, Sets, and Key-Values.
There is now a whole new unified approach to Programming With State that shows the Pyret and Python versions side-by-side. Seeing this material in two different languages helps focus on similarities and differences and can improve transfer between languages.
Material that depends on algorithm analysis has now been separated from material that does not. Furthermore, in keeping with the book’s theme, the focus is (again) on data structures. The result, in Data Structures with Analysis, refactors a lot of prior material to present it much more cleanly.
Some material has further been refactored into Advanced Topics. In addition, there are several more new advanced goodies!
30.4 Version 2022-08-28
Besides numerous small improvements, we added some new bonus material.
30.5 Version 2022-01-25
Consistently renamed the definitions and interactions window to the definitions and interactions pane.
Moved the material on working with variables out of the intro to Python section and into the Programming with State section. Mutation of structured data moved before variable mutation within the Programming with State section.
Added a comparison to How to Design Programs.
The include line for the DCIC libraries at this version is
include shared-gdrive( "dcic-2021", "1wyQZj_L0qqV9Ekgr9au6RX2iqt2Ga8Ep")
30.6 Version 2021-08-21
The original release! Based on the prior book Programming and Programming Languages.