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:CUfor cint university, the course numberNNNand the edition numberE.CU-101.1is the first edition of 101. This page, the setup page and the two pages for programmers form course 000, whose current edition isCU-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.
- Two pages are new: cint for C programmers and cint for Python and NumPy programmers.
- The courses section points programmers who know C or Python to those two pages.
- This page lists course 301 and the new editions of 101, 201 and 401.
- The setup page is unchanged.
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.