Grok A Book
  • Home
  • Texts
  • Non-Fiction

A Data-Centric Introduction to Computing | September 2025

true

A Data-Centric Introduction to Computing

Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz


5 Sep 2025 to 22 Nov 2025
About the Book

This book presents a comprehensive introduction to computing through a data-centric lens, emphasizing how programs manipulate data and how data structures enable efficient computation. The authors take a rigorous yet accessible approach, covering fundamental concepts from basic programming to advanced topics in algorithms and data structures.

The book uniquely approaches computing education by prioritizing data as the central organizing principle, rather than starting with programming syntax or control structures. This perspective helps students understand the “why” behind computational techniques and develop a deeper intuition for designing efficient programs.

You can find this book at dcic-world.org.

Prerequisites

I think (hope!) that no prior programming experience is required. We’ll find out as we go along.

Timings and Venue

We start with an introduction session on Friday, September 5th, followed by regular sessions Monday through Saturday at 9PM IST for about 60-90 minutes each day according to the tentative schedule below. I’ve paced the readings at two chapters a week on average (with exceptions in the first and last weeks). I could be awfully wrong about how long this will actually take, and we will roll with the punches :)

I plan to use this page to maintain a tentative schedule. I hope to post rough discussion summaries. For announcements and access to session recordings, please join us on Circle.

Note: unlike previous reading groups, there are no Zoom links: the online sessions happen through Circle. Also, no Whatsapp groups! Circle will send you email reminders ahead of the sessions and you can also add the events to your calendar.

See you there!

Date Lecture Slides Notes Video
05 Sep, 2025 Introduction Session
Welcome and overview of the book and reading group format
09 Sep, 2025 Basic Data (Part 1)
Introduction to fundamental data concepts
10 Sep, 2025 Basic Data (Part 2)
Core data types and operations
11 Sep, 2025 Tabular Data (Part 1)
Working with tabular data structures
12 Sep, 2025 Tabular Data (Part 2)
Tabular data manipulation and analysis
13 Sep, 2025 Lists (Part 1)
Introduction to list data structures
14 Sep, 2025 Lists (Part 2)
List operations and methods
15 Sep, 2025 Structured Data (Part 1)
Working with structured data formats
16 Sep, 2025 Structured Data (Part 2)
Advanced structured data concepts
17 Sep, 2025 Structured Data (Part 3)
Complex structured data patterns
18 Sep, 2025 Trees (Part 1)
Introduction to tree data structures
19 Sep, 2025 Trees (Part 2)
Tree operations and traversal
20 Sep, 2025 Trees (Part 3)
Advanced tree algorithms
22 Sep, 2025 Foundations: Bonus Materials (Part 1)
Additional foundational concepts
23 Sep, 2025 Foundations: Bonus Materials (Part 2)
Bonus materials and exercises
24 Sep, 2025 Foundations: Bonus Materials (Part 3)
Advanced foundation topics
25 Sep, 2025 From Pyret to Python (Part 1)
Transitioning from Pyret to Python
26 Sep, 2025 From Pyret to Python (Part 2)
Python syntax and concepts
27 Sep, 2025 From Pyret to Python (Part 3)
Advanced Python features
29 Sep, 2025 Tables in Python via Pandas (Part 1)
Introduction to Pandas for tabular data
30 Sep, 2025 Tables in Python via Pandas (Part 2)
Pandas operations and methods
01 Oct, 2025 Tables in Python via Pandas (Part 3)
Advanced Pandas techniques
02 Oct, 2025 Programming with State (Part 1)
State management concepts
03 Oct, 2025 Programming with State (Part 2)
State in Pyret and Python
04 Oct, 2025 Programming with State (Part 3)
Advanced state programming
06 Oct, 2025 More Programming with State: Python (Part 1)
Advanced state concepts in Python
07 Oct, 2025 More Programming with State: Python (Part 2)
Python-specific state management
08 Oct, 2025 More Programming with State: Python (Part 3)
Complex state scenarios
09 Oct, 2025 Predicting Growth (Part 1)
Growth prediction models
10 Oct, 2025 Predicting Growth (Part 2)
Mathematical modeling of growth
11 Oct, 2025 Predicting Growth (Part 3)
Applications and case studies
13 Oct, 2025 Halloween Analysis (Part 1)
Data analysis techniques
14 Oct, 2025 Halloween Analysis (Part 2)
Statistical analysis methods
15 Oct, 2025 Halloween Analysis (Part 3)
Interpretation and insights
16 Oct, 2025 Directed Acyclic Graphs (Part 1)
Introduction to DAGs
17 Oct, 2025 Directed Acyclic Graphs (Part 2)
DAG algorithms and applications
18 Oct, 2025 Directed Acyclic Graphs (Part 3)
Advanced DAG concepts
20 Oct, 2025 Graphs (Part 1)
Introduction to graph theory
21 Oct, 2025 Graphs (Part 2)
Graph algorithms and traversals
22 Oct, 2025 Graphs (Part 3)
Advanced graph applications
23 Oct, 2025 Several Variations on Sets (Part 1)
Set theory foundations
24 Oct, 2025 Several Variations on Sets (Part 2)
Advanced set operations
25 Oct, 2025 Several Variations on Sets (Part 3)
Set theory applications
27 Oct, 2025 State and Equality (Part 1)
State management and equality concepts
28 Oct, 2025 State and Equality (Part 2)
Equality in programming
29 Oct, 2025 State and Equality (Part 3)
Advanced state and equality topics
30 Oct, 2025 Recursion and Cycles from Mutation (Part 1)
Recursive patterns with mutation
31 Oct, 2025 Recursion and Cycles from Mutation (Part 2)
Cycle detection in mutable structures
01 Nov, 2025 Recursion and Cycles from Mutation (Part 3)
Advanced mutation and recursion
03 Nov, 2025 Detecting Cycles (Part 1)
Cycle detection algorithms
04 Nov, 2025 Detecting Cycles (Part 2)
Implementation and optimization
05 Nov, 2025 Detecting Cycles (Part 3)
Advanced cycle detection techniques
06 Nov, 2025 Avoiding Recomputation by Remembering Answers (Part 1)
Memoization concepts
07 Nov, 2025 Avoiding Recomputation by Remembering Answers (Part 2)
Caching and memoization techniques
08 Nov, 2025 Avoiding Recomputation by Remembering Answers (Part 3)
Advanced memoization strategies
10 Nov, 2025 Partial Domains (Part 1)
Partial function domains
11 Nov, 2025 Partial Domains (Part 2)
Domain restrictions and constraints
12 Nov, 2025 Partial Domains (Part 3)
Advanced partial domain concepts
13 Nov, 2025 Staging (Part 1)
Staging and compilation concepts
14 Nov, 2025 Staging (Part 2)
Multi-stage programming
15 Nov, 2025 Staging (Part 3)
Advanced staging techniques
17 Nov, 2025 Factoring Numbers (Part 1)
Number theory and factoring
18 Nov, 2025 Factoring Numbers (Part 2)
Factoring algorithms
19 Nov, 2025 Deconstructing Loops (Part 1)
Loop analysis and optimization
20 Nov, 2025 Deconstructing Loops (Part 2)
Loop transformation techniques
21 Nov, 2025 Interactive Games as Reactive Systems (Part 1)
Game programming concepts
22 Nov, 2025 Interactive Games as Reactive Systems (Part 2)
Reactive programming in games
No matching items

    Made with Quarto and 🩶

                               

    Content by Neeldhara Misra