cint

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.