
CARDIAC(CARDboard Illustrative Aid to Computation:段ボール製計算補助教材)は、1968年にベル電話研究所の デビッド・ヘーゲルバーガーとソール・フィンガーマンによって開発された、高校生にコンピュータの仕組みを教えるための学習補助教材です。キットは、取扱説明書と型抜きされた段ボール製の「コンピュータ」で構成されています。
このコンピュータは、鉛筆とスライドカードを使って「操作」します。計算はすべて、コンピュータを操作する人の頭の中で行われます。コンピュータは10進数で動作し、0から±999までの符号付き数値を格納できる100個のメモリセルを備えています。CARDIACは、加算、減算、テスト、シフト、入力、出力、ジャンプを実行できる10個の命令セットを持っています。
CARDIACは、1981年にScience & Vie社からOrdinapoche(「ポケットコンピュータ」、ordinateurとpocheから)としてフランスでも出版された。 [ 1 ]

コンピュータの「CPU」は、様々な数字や矢印を動かす4枚のスライドで構成されており、それによって実際のCPU(ユーザーの脳)の処理の流れが正しい方向に導かれるようになっています。これらのスライドには、アキュムレータの結果によって変化するフラグ(+/-)が1つずつ付いています。
メモリは、段ボールの切り抜きのもう半分の部分で構成されています。そこには100個のセルがあります。セル0は「ROM」で、常に数字の「1」が格納されています。セル1から98は「RAM 」で、命令とデータに使用できます。そしてセル99は「 EEPROM 」と表現するのが最も適切でしょう。
メモリセルには、0から±999までの符号付き十進数値が格納され、鉛筆で書き込まれます。セルは消しゴムで消去されます。「バグ」と呼ばれる部品がプログラムカウンタとして機能し、現在のメモリセルの横にある穴に配置されます。
CARDIACは10個の命令からなる機械語を持っています。命令は、 の形式の3桁の10進数(符号は無視されます)ですOAA。最初の桁はオペコード(O)、2番目と3番目の桁はアドレス(AA)です。アドレッシングは、アキュムレータからメモリへの絶対アドレス指定、メモリからアキュムレータへの絶対アドレス指定、入力からメモリへの絶対アドレス指定、メモリから出力への絶対アドレス指定のいずれかです。
入出力は仮想パンチカードを介して行われ、プログラムのロードもこの方法で行われます。プログラムは手作業で組み立てられ、カードの入力スタックが作成されます。CARDIACが最初に実行する命令は常に001(アドレス0)で、これにより最初のカードがアドレス1にロードされます。その後、後続のカードによってループが確立され、残りのすべてのプログラムカードがメモリにロードされ、プログラムの実行が開始されます。このプログラムロード動作は、当時の実際のカードベースのコンピュータ(IBM 1401やIBM 1620など)と似ており、ロード手順なしでプログラムが適切なメモリセルに直接書き込まれるLittle Man Computer (LMC)とは異なります。
CARDIACの命令セットはLMCと非常によく似ていますが、LMCには条件付きジャンプ命令が2つあるのに対し、CARDIACには1つしかなく、代わりにアキュムレータシフト命令が追加されています。また、CARDIACの入出力命令はメモリセルから直接動作しますが、LMCは入出力にアキュムレータを使用します。
CARDIAC向けに高水準言語が開発されたことはない。なぜなら、高水準言語を開発すると、アセンブリ言語プログラミングの概念を導入するという、この装置の目的の一つが損なわれてしまうからである。
プログラムを実行するには、まず3つのスライドをスライドさせて、命令レジスタの数値がバグが格納されているメモリセルの数値と一致するようにします。それが完了すると、バグは次のメモリセルに移動します。その後、ユーザーは矢印に従って次に何をすべきかを確認します。このプロセスはプログラムの実行全体を通して繰り返されます。