Programming
sudoku is the drosophila of constraint satisfaction: small enough to hold in your head, rich enough to demonstrate every solving paradigm that matters. this page works through four of them against my actual code — a backtracking solver with \(O(1)\) constraint sets (arcade/references/sudoku/solver.py), a dart port that also generates puzzles (arcade-mobile), an integer-programming formulation solved for real with scipy, and the exact-cover view that leads to knuth’s algorithm x. every timing below is a real run on this machine.
Chapter 1: Getting Started
mean(abs(rnorm(100))) # generate 100 N(0,1) variates, take abs, then mean
rnorm(10)
Chapter 2: Vectors
Chapter 3: Matrices and Arrays
Chapter 4: Lists
Chapter 5: Data Frames
Chapter 6: Factors and Tables
Chapter 7: R Programming Structures
Chapter 8: Doing Math and Simulations in R
Chapter 9: Object-Oriented Prgoramming
Chapter 10: Input/Output
Chapter 11: String Manipulation
Chapter 12: Graphics
Chapter 13: Debugging
Chapter 14: Performance Enhancement: Speed and Memory
Chapter 15: Interfacing R to Other Languages
Chapter 16: Parallel R
Pierre Lafaye de Micheaux, Rémy Drouilhet and Benoît Liquet, The R Software: Fundamentals of Programming and Statistical Analysis, Springer Statistics and Computing 40, 2013 (translated from the French Le logiciel R). Part I introduces R and the book’s data sets; Part II covers the language (data structures, import/export, manipulation and functions, documentation, plots, programming, sessions); Part III applies it to matrices and optimisation, descriptive statistics, random variables and simulation, confidence intervals and tests, linear regression and ANOVA. Chapters 3 to 15 each end with exercises and a practical worksheet.