コンピュータサイエンスで littleBits を活用してみる

# 情報科学概論A（座学）で利用してみた

京都ノートルダム女子大学で「情報科学概論A」という座学を担当しており、この座学の単元で littleBits を活用してみました。

# 情報科学概論Aとは？

シラバスの「科目の教育目標」で以下のように設定しております。

> 一昔前までコンピュータは高価なものだったが、今では安価でパソコンを購入できるようになり、スマートフォンとよばれる高性能なコンピュータを肌身離さず持ち歩くようになっている。便利な電子機器が当たり前かのように身の回りに溢れるようにあるがゆえに、それらがどのように動いているかなど気にすることが少なくなってきている。
> 本科目では、コンピュータがどのように動いているのか、コンピュータのあらゆるデータが内部ではどのように表現されているのかを学び、コンピュータとどのように向き合っていくかを考えられるようになることを目標とする。

簡単にいうとコンピュータがどのように動いているかを学んで、「コンピュータに使われるのではなく**コンピュータを使う側**」になりましょうということです。

# どのような単元で使ったのか

コンピュータ内部の仕組みを理解してもらうということで「コンピュータの回路」という単元を設けており「[littleBits Logic](http://jp.littlebits.com/expansion-packs/logic/)」を用いて体験的に学習してもらっています。

# 論理回路セット

littleBits の論理回路には以下のものがあります。

- Inverter (否定)
- OR（論理和）
- AND（論理積）
- NOR（否定論理和）
- NAND（否定論理積）
- XOR（排他的論理和）

![論理回路Bits](https://qiita-image-store.s3.amazonaws.com/0/147658/b5f40ce1-177f-2390-eaf7-845507146cda.jpeg)


# 論理回路の勉強

4人1グループになってもらい littleBits で回路を作る方法だけ教え、あとは各グループでカチカチと引っ付けてもらいプリントを埋めていく形式にしています。

![配布プリント](https://qiita-image-store.s3.amazonaws.com/0/147658/a24ed441-1983-87a6-4b45-25ddc0ba999e.png)

## OR回路を試してみる

![OR回路](https://qiita-image-store.s3.amazonaws.com/0/147658/7deb87ce-6ebb-897f-b487-3ad1f97a8882.jpeg)

## AND回路を試してみる

![AND回路](https://qiita-image-store.s3.amazonaws.com/0/147658/297181b2-2b56-51b1-52e2-b2be91d52b18.jpeg)

## OR + NAND + AND で XOR回路

![XOR回路](https://qiita-image-store.s3.amazonaws.com/0/147658/611b6264-a924-af38-cb04-a9b14b0c4c43.jpeg)

# コンピュータで論理回路はどう使われている？

各Bitを引っつけて入力のボタンを押してLEDを確認していくだけで簡単に論理回路を体験的に学べます。（私が高校や大学で学んだ時は黒板に書かれて「こうなる」と教えられてそのまま板書するだけだったのに……）

体験だけでは意味がないので回路がコンピュータでどのように使われているのか紹介。

![コンピュータでの利用](https://qiita-image-store.s3.amazonaws.com/0/147658/ea0309d7-610b-93c9-fba4-8121f3ae28ce.png)
（実際に使用した授業資料より）

紹介だけでなく、コンピュータが実際にどのように演算しているかの仕組みを体験から学んでもらうため、加算器を制作してもらいました。

## 二進法での足し算

加算器を制作する前に二進法の加算の復習です。

![二進法での足し算](https://qiita-image-store.s3.amazonaws.com/0/147658/f7d514eb-d245-560c-1d4b-2a1bd153d7c6.png)
（実際に使用した授業資料より）

## 真理値表で表すと

![足し算の真理値表](https://qiita-image-store.s3.amazonaws.com/0/147658/56ff13de-a647-3233-c595-f748e7e788bd.png)
（実際に使用した授業資料より）

この掲示した真理値表とプリントに記述してもらった各論理回路の真理値表を比べてもらい、何か気が付くことがないかを考えてもらいました。

# 半加算器

足し算の真理値表にある加算結果が「XOR回路」の真理値表と同じ、桁上がりが「AND回路」の真理値表が同じとそれぞれに気が付いてもらえたら、実際に加算器の「半加算器」を各グループで制作してもらいました。


## 半加算器を制作中

![半加算器1](https://qiita-image-store.s3.amazonaws.com/0/147658/e4098caf-ab46-93b1-f6ab-e9822f18db2e.jpeg)

## 半加算器の完成

![半加算器2](https://qiita-image-store.s3.amazonaws.com/0/147658/3a6737fb-6d16-b08f-ac4a-444723758e4c.jpeg)

# 全加算器

各グループで制作してもらった加算器を繋げれば桁数が多くても大丈夫……
ではないということを説明し、なぜダメなのかを含めても解説しました。

![たくさんの桁の数を足し算](https://qiita-image-store.s3.amazonaws.com/0/147658/06018095-7db0-3c23-ec38-ed9598a8ed86.png)

一桁同士の計算なら問題ないですが複数桁の足し算ならば
1つ前の桁からの桁上がりがあり入力が「**3つ**」なります。

![桁上がり](https://qiita-image-store.s3.amazonaws.com/0/147658/0ad45758-bc68-fc88-5586-bc4066cf1e8d.png)

半加算器では入力が「**2つ**」しかないので複数桁の足し算はできないのです。
ではどのようにするかというと半加算器と半加算器を合体させて
「**全加算器**」というものを制作する必要があります。

4人1グループで半加算器を制作してもらっていたので、
2グループで集まってもらい全加算器を制作してもらいました。

## 回路を探し中

![全加算器1](https://qiita-image-store.s3.amazonaws.com/0/147658/0e92e3d0-b4f8-6a02-86e5-42eb970e4549.jpeg)

## 引っ付けていく

![全加算器2](https://qiita-image-store.s3.amazonaws.com/0/147658/70c7289a-33ad-5c3a-e944-c83156836c91.jpeg)

## 回路図を見ながら試行錯誤

![全加算器3](https://qiita-image-store.s3.amazonaws.com/0/147658/3a554d4f-9add-1044-e37c-8cadf90e18ef.jpeg)

## 全加算器の完成

![全加算器4](https://qiita-image-store.s3.amazonaws.com/0/147658/328f22bf-4b2f-2594-2de6-1b4f8df22d46.jpeg)

# 学生らの感想

- 実際に、回路を使って電気をつけたりすることで記憶にもしっかりと残るしイメージがしやすかった。
- 論理回路図を見ながら回路を作るのが難しかったです。できた回路で真理値表を確認した時、合っていたのでうれしかったです。
- 半加算器はなんとか出来たけど、全加算器は全然わからなくて大変でした。一桁の計算をするだけでこんなに大変だと思っていませんでした。
- 回路をつくるのは難しいけれど実際につくって、光がつくのを見ると嬉しかったです。

# 雑感

## いまいちなところ

- 値段が高い……
- 接触不良がよくありBitの接続する部分の端子をやわからい布で拭いてやる必要がある

## 良いところ

- 論理回路を体験的に学ぶことができる
- **文系の女子大生**が楽しみながら論理回路を学ぶことができる
- 誰でも簡単にコンピュータの仕組みを学ぶことができる

# これらの活動について

京都ノートルダム女子大学の学生らが中心となって活動している
[LilyPad研究会](https://lilypad.pen.jp/)というプログラミング研究会でも littleBits を扱った作品制作などを行っています。
また lillteBits の他にもテクノ手芸やArduino互換のマイコンボードを使った
作品なども制作しているのでよろしければサイトを見てください。

[![LilyPad研究会](https://qiita-image-store.s3.amazonaws.com/0/147658/f5d21776-01f5-3e47-335c-0c5e9a24788f.png)](https://lilypad.pen.jp/)