cint

cint university / ced, the cint editor

cint university

cint university teaches the cint language through short lessons, each built around one program that runs in your browser or on your computer. Every output in a lesson was printed by the cint release named at the top of that lesson.

courses

Course For Edition Checked against
101: first programs People who have never programmed CU-101.2 cint 0.2.0
201: cint for programmers People who program in C, Python or a language like them CU-201.2 cint 0.2.0
301: wider numbers Readers who finished 201 up to 201-09 CU-301.1 cint 0.2.0
401: labs Graduates of 101 or 201 CU-401.2 cint 0.2.0

A newcomer starts with 101 and a programmer with 201. A programmer who knows C or Python can first read cint for C programmers or cint for Python and NumPy programmers. These pages list what changes and where each change is shown. Each lab lists the lessons it builds on. To run programs outside the browser, first set up cint on your computer.

editions

The courses are published in editions, the same way the cint specification is.

  • Names. An edition is named CU-NNN.E: CU for cint university, the course number NNN and the edition number E. CU-101.1 is the first edition of 101. This page, the setup page and the two pages for programmers form course 000, whose current edition is CU-000.2.
  • Tied to a release. Each edition names the cint release it was checked against. Every program in it was run on that release with each of GCC, Clang, MSVC and Apple Clang. Every output block comes from those runs.
  • Frozen text. Once released, an edition's text does not change. A correction that changes nothing a reader would see when running a program, such as a typo fixed or a sentence made clearer, is listed in ERRATA.md. It is written CU-101.1 E1. The edition keeps its number.
  • New editions. A course gets a new edition when a release changes a program's output, a message a lesson shows or a rule a lesson cites in that course. No other course does. A course that gains lessons also gets a new edition. Each edition is complete in itself: no lesson in it links to an unpublished lesson. Each new edition ends with a list of what changed since the edition before it, lesson by lesson. Earlier editions stay readable beside the new one.
  • Stable identifiers. Each lesson has an identifier, such as 101-05, and a named link anchor, both the same in every edition and never reused. A lesson's place in the course belongs to its edition and may change; its identifier does not. Link to a lesson by its identifier.

current editions

Edition Title First released in
CU-000.2 cint university, setup and the pages for programmers cint 0.2.0
CU-101.2 101: first programs cint 0.2.0
CU-201.2 201: cint for programmers cint 0.2.0
CU-301.1 301: wider numbers cint 0.2.0
CU-401.2 401: labs cint 0.2.0

The earlier editions, CU-000.1, CU-101.1, CU-201.1 and CU-401.1, stay readable beside these.

changes since the previous edition

CU-000.2 replaces CU-000.1.

on this site

On integerc.dev each program in a lesson opens in ced, the cint editor, under the file name the lesson uses, and runs in your browser on cint 0.2.0: cintc and cint-interp built as 64-bit WebAssembly. The output blocks in the lessons come from cint run, so ced prints the same report, revision line included. Where a browser has no 64-bit WebAssembly, as on iPhone and iPad, ced runs cint_ref, the reference, instead: a program prints the same output and the same report, except that the revision line reads none, and a few programs that a lesson shows the compiler refusing run there.