cint university / 201 / ced, the cint editor
201: cint for programmers
This page is CU-201.2, edition 2 of 201: cint for programmers, checked against cint 0.2.0 and released on {{RELEASE_DATE}}.
This edition is current. Every program in it was run on cint 0.2.0 with each of GCC, Clang, MSVC and Apple Clang, and every output comes from those runs. Each "elsewhere" result names the language version that printed it. The text of this edition does not change after its release. Corrections that change nothing a reader would see are listed in ERRATA.md. A new edition is published when a release changes what a lesson shows or when lessons are added. Lesson identifiers are the same in every edition and are never reused.
201 is for people who program in C, Python or a language like them. Readers who know C or Python may want to read cint for C programmers or cint for Python and NumPy programmers first. 201 skips what a variable is and starts from what cint does differently. Each lesson ends with links to the parts of the specification it uses.
lessons
| Lesson | Title | You build |
|---|---|---|
| 201-00 | start here | one program, run with the four commands |
| 201-01 | numbers that hold | the rice on a chessboard |
| 201-02 | types and conversions | an altitude in a 16-bit field |
| 201-03 | operators at the edge | a 32-bit hash and a pixel brightener |
| 201-04 | division and rounding | a bill split exactly |
| 201-05 | tests and goldens | tests and a saved output for the bill split |
| 201-06 | the workbench | a year of savings, rewound and searched |
| 201-07 | debugging by comparison | a checksum bug found one change at a time |
| 201-08 | control flow | Collatz paths sorted by length |
| 201-09 | functions | exact harmonic sums |
changes since the previous edition
CU-201.2 replaces CU-201.1, which stays readable.
- Lessons 201-05 to 201-09 are new. Lessons 201-05 to 201-07 teach testing and debugging: tests and goldens, the workbench and debugging by comparison.
- Every lesson's first line names CU-201.2.
- 201-00: the interpreter paragraph links to 201-06.
- 201-01: the comparison of runs links to 201-07.
- 201-04: the page ends with a link to 201-05.
No program's output changed.