2022情報I 2学期
第5回 授業の振り返りより

質問より

立高PRで、仮に中学生に向けてスライドを作った場合、プレゼンはクラスメイト緒中学生だとして話すのでしょうか。それとも、プレゼンは聞き手である立高生に向けて話せばよいのでしょうか。
ポスターセッションは何のためにやるんでしたっけね。自分たちのPR計画について意見交換をするためにやります。ということは、誰宛に話すのかわかりますよね。
先生は16進法でひたすらプログラムして作る40年前のゲームや、スターフォックスなどの(画面、見た目)の良さは何だと思いますか。
良さなんかないですよ。最新の高解像度グラフィックは凄いじゃないですか。その当時の性能を目一杯使ってその程度だったということです。
iPhoneはCPUが何個入っていて、どのくらい計算できるのか/iPhone14の一秒間の演算回数ってどのくらいですか。
iPhone14だと「2つの高性能コアと4つの高効率コアを搭載した6コアCPU」だそうです。クロック周波数は非公開なので、何回計算できるかわかりません。
コンピュータに搭載できるCPUの数はどれぐらいが限度なのか。
スーパーコンピュータ富岳はCPU数15万個以上だそうです。そのかわり建物が一つ必要です。限度はないと思いますが、物理的な限界がありそうですよね。
起動するのが早いってことは常にスリープのままのほうがいいのですか。
スリープはバッテリーを消費します。寝ているんですね。シャットダウンはバッテリーを消費しません。バッテリーの容量に余裕があるのなら、スリープのほうが便利です。ただ、スリープで使い続けると、アップデートが当たらないことがあったり、プログラムのごみがたまって動作が悪くなったりするので、性能を最大限に発揮するにはシャットダウンした方がいいでしょう。どちらがよいというのではなくて、状況に応じて適切に判断するということです。
約半世紀前のパイロットは、先生が遊んだフライトシミュレーターのようないわゆるちゃっちいものを使って訓練していたということになるんですか?
そのころはシミュレータの性能が足りないので実機を使って訓練していたと思います。
授業でコンピュータは二進法しか対応してないとおっしゃっていましたが、なぜ10進法や16進法を搭載したコンピュータは存在しないのですか?絶対楽だと思うのですが……
二進法なら0と1でONとOFFですから、電気が流れたか流れないかで瞬時に判断できます。10進法なら10段階に判別するための回路が必要になります。微妙な電気信号の違いを判別して10段階に分けるので、瞬時に動作できないので速度が遅くなります。昔の開発初期には10進法を使ったコンピュータもあったようですが、すぐに2進法を使うものになったようです。
16進法の計算機は絶対に作られません。2進法の計算機を作って4桁ずつ読み出すだけですから、16段階を見分けるより最初から2進法で計算した方が早いのです。
バスについてもう少し詳しく知りたいです。(具体的な役割、バスが処理速度をあげるカギとなのか)/良いコンピュータはバスの速さが速いと言っていましたが、次に大切なのは何ですか?
バスはデータの通り道。一度にやりとりできるデータの量(道幅)ややりとりできる速度(制限速度)が大きければ、CPUとメモリの動作速度を上げることができます。周りの機器との速度も上がることがあります。バスが優れていても、メモリやCPUの性能が低ければ、動作は遅くなるので、結局は総合力の面もあります。
コンピュータが理解出来る機械語は二進法で表されていると習ったので、コンピュータに実際信号を送る際0と1は何によって区別しているのか気になった。僕の予想は送られる電気信号がマイナスかプラスかということだと思う。
自分なりに考えて予想してみるって大切です。ONかOFFです。電圧があるかないかです。電気の回路の場合、極性が反対(プラスがマイナスになる)のような変化は、受け入れるための回路設計が必要になってしまいます。コンピュータ内部で使われる半導体(トランジスタとかダイオード)は逆の電流は流れないんですね。流れるようにするには複雑な回路設計が必要になるのです。
前に、スマホが熱くなりすぎてしまったときに保冷剤を当ててみたのですが、意味はありますか。あと、熱いまま何もしないのは良くないですか。それとも何かした方がいいですか。充電しながらスマホを使うとすぐに熱くなるのはCPUと何か関係がありますか。
故障の原因になるので絶対にしない方がいいでしょう。保冷剤を当てると、周辺より圧倒的に温度が下がるので、結露(冷たい水の入ったコップの周りにつく水滴)する可能性があります。スマホ内部で結露したら、水没と同じ状況になり、回路がショートするなど故障の原因になります。熱い状態は負荷がかかっているからなので、負荷をかけないようにしてしばらく放置します。負荷をかけないって、そのとき使っているアプリを使うのをやめればいいのです。
充電しながら使うと熱いのはちょっと違う話で、充電すれば使わなくても熱くなります。スマホで使われるリチウムイオンバッテリーの特性です。
読み込み画面で出てくる、ぐるぐる回る輪っかってなんですか。
「作業中です。しばらくお待ちください。」の意味のアニメーションです。今やってるから待っててねとわかるようになっています。
先生はAndroid派なのですか?
どちらでもいいです。iOSもAndroidも使います。ハードウェアもOSも非公開で何やっているかわからない端末より、公開されているものの方が安心して使えます。
前から思ってたんですけどプログラミングのテストでfruitsのリストに'mellon'加えていますが果物のメロンなら綴りmelonだと思うんですけどひっかけですか
ほんとだ。気づかなかった。単なる打ち間違いですね。間違ったデータでも正しく処理すれば、間違ったまま結果が表示されます。
授業最初のpythonプログラミング基礎力チェック5の第五問目の答えが今回は③24になっていましたが、前回は同じ問題で①1 2 6 24だった気がします。答えはどちらですか。
同じ問題に見えちゃうんですね。Pythonの大事な部分が理解できていないようです。インデント(4文字分の字下げ)があるかないかで、繰り返すか繰り返さないかが決まります。
なぜそのまま読み取ることのできないプログラミング言語を発明して、使っているのか。それだったら、機械語をもっと打ちやすいように改良するべきだと思う。
だから、コンピュータって二進法しか理解できないんです。なにかコンピュータに幻想を抱いていませんか?プログラミング言語がそのまま理解できるなんてことはあり得ないんです。機械語は01の並びですから、これ以上打ちやすいようになんかできません。
コンパイラは直接機械語で書かれているのですか。
コンパイラはプログラミング言語で書かれたプログラムをコンピュータがわかる形式に変換するソフトウェアです。おそらくCなどで書かれているものが多いと思います。
CPUが記憶機能を持たないのは、コンピュータはプログラムをメインメモリに読み込ませてからCPUにおくると決まっているため、そのCPUが記憶機能を持っているとごっちゃになるということでしょうか?/記憶装置と演算装置を分けて置くことの利点とは何ですか?外部に記憶装置を増やせるようになるのかと考えました。
記憶って時間がかかるんです。CPUに記憶機能を内蔵してしまうと、記憶の速度に合わせた動作しかできなくなってしまいます。別の機器にしておけば、「覚えておいて」って頼んだら次の処理にCPUが取りかかれるので、高速に動作できるのです。別々にしてあれば、別々に性能向上できますよね。必要に応じて増やすことも可能になりますよね。

感想より

コンピュータについてチャットで書いた時、人によって書き方が違ったので、様々な捉え方があると気づいた。
この回、チャットなんか使ってないのになぁ。こうやって回答回を間違える人、おそらく質問項目なんか読んでないんでしょうね。信用できない「授業の振り返り」と認定されちゃいますよ。
間違えて提出したときは申し出てくれれば「再提出」にすることができます。
コンピュータはいろいろな装置が備わって正確に動作するとわかった。これは人間と共通していると思った。目で見た情報を脳に伝達し、適切な判断をして体を動作させる。だから一つの器官、部品が破損したら上手く動作しない。これはコンピュータでも同じことである。人とコンピュータは似ていると感じた。一つ一つの部位が複雑に絡み合っているのも似ている。人間の構造をコンピュータに応用したらもっと便利になるのではないかと考えた。
人間にたとえて説明するのが悪いのかもしれませんね。人間とコンピュータは全く違うからうまく動くし、うまく使えるのです。人間は正確じゃないし、何回もやったら間違えます。違いをどう活かすかを考えるのが人間の役目です。
スマートフォンの方がSurfaceよりもCPUの個数が多い(全体的にスペックが高い)と聞くと目の前にあるSurfaceを果たしてパソコンと呼んで良いのか疑ってしまう。/パソコンより携帯のほうが演算している回数が多いのに驚いた
授業でも説明しましたが、処理速度で単純に比較することはできません。スマートフォンのCPUよりパソコンのCPUの方が1回の動作で高度な処理ができます。スマホは単純な処理を何度も繰り返しているのです。
(授業を欠席していたので、教科書の内容から書きます。)端末の性能が良くなった時には値段が高くなるのに、OSのアップデートが無料でできるというのが不思議でした。OSのアップデートは無料でできる程度(あまり性能は変わらない)のであれば、端末自体の性能アップが高級に値するものなのかなー…と思いました。
休んだときの授業の内容も、大切な内容です。教科書やスライドを見ながら、自分で考えてみることが大変いいことです。
iOSのアップデートは新機種の新機能を使うために必要だからです。旧機種も機能アップすることもありますが、使えない機能が増えるだけの時もあります。
とてつもなく単純な作業をとてつもない速度で行う点で人間とは真逆な性質を持つコンピューターは相性がいいと思う。
そうなんです。コンピュータと人間の特性は違うので、その特性を理解してうまく使うことが大切なんです。
情報オリンピックに出場したとき、3,4問目が解けず、2次予選に行けませんでした。最後は3問目を中心に回答していたのですが、文字列の〇番目が~~だったら、という構文の書き方が分からずタイムオーバーしました。メソッドを調べても、知らないものだったので、結局クォーテーションのつけ忘れだけによって不正解で、そのことを競技後に気づいて悔しかったです。
情報オリンピックの予選、参加したんですね。そんなに難しくないのですが、そんなに簡単じゃないんですよね。2回・3回と挑戦することで予選突破の可能性も高くなります。次回もチャレンジしてくださいね。1回目の問題も公開されたので、近く解説を作ろうかと思っています。
休んでました。論理回路ワークシートをしましたが、その中にAND回路やNOT回路がありました。先生はご存じないかもしれませんが、自分はマインクラフトというゲームで少し触れたことがあります。本当に簡単な計算でも、これらの回路が複数使われていてとても複雑だと感じました。/AND回路とかOR回路とかはminecraftのレッドストーン回路で聞いたことある。
授業内容をWebに置いておくと、休んでいても授業の内容に取り組めますよね。うまく活用してください。授業前にスライドを公開するのって結構大変なんです。
マイクラの論理回路は有名ですよね。マリオメーカーでも論理回路が作れます。
スマートフォンでゲームをすると急速に充電が減ったり、本体が熱くなったりするのはCPUをたくさん使っているからだと分かって納得することができた。また、そのようにスマートフォンが熱くなってしまったときに扇風機を当てて冷ましたりしていたけれど使われるCPUを減らさなければ改善には繋がらないのなら、今まで冷ますためにしていた行動はあまり意味がなかったのかなと思った。
温度が高くなると保護のためにCPUの動作速度が遅くなります。最大の性能で動作するためには、適切な温度に保つ必要があります。ノートパソコンやゲーミングスマホは冷却ファンが内蔵されてますよね。扇風機も周囲の温度を下げるのに効果はあると思います。
AND回路はビート板型、OR回路は鱗型、NOT回路は再生ボタン+ポチだと思った。エクセルであんなもの作れるなんて思わなかったから驚いた。
AND・OR・NOTの形状にうまく名前をつけて覚えてください。鱗ですね。なるほど。論理回路のワークシートは入力にあわせて図が反応するように作ってあります。スイッチの動きは_と/を使って文字で表現しているんです。
同じ仕組みのコンピュータで昔のコンピュータは処理が遅いのは電波の問題か、機会の仕組みの違いなのかが気になった。プリント基板の見た目は昔から変わっていないように見えるがどんな部品が変わって性能が良くなっているのか気になった。
2電波は関係ないですね。コンピュータの仕組みを学ぶ中で電波の話、出てきました?動作速度を表す周波数(2GHzなど)は電波の単位にも使われますが、ここではコンピュータの動作回数の単位として使われています。
数十年前からコンピュータの仕組みは変わっていません。何が変わったかというと処理速度です。私が34年前に初めて買ったパソコンは16bitコンピュータで、動作クロックは10MHz、メモリは2MBでした。速度が200分の1ぐらいですね。
少しの打ち間違いでプログラミング言語を機械語に翻訳できなくなってしまうということに気付いたため、プログラミングの練習段階から迅速さに加え、正確さを意識して行う必要があると考えました。
2正確に入力しなければ動作しませんが、入力ミスがあればエラーが出ます。エラーを見て訂正すればいいので、正しく入力することより、実行して動作を確認することに重点を置いたほうが、プログラミングの学習が進むと思います。
プログラミング言語から機械語に翻訳する機能を作った人が一番すごいと思った。
2機械語はCPUによって違います。機械語に翻訳するプログラム(アセンブラ)を用意しないと、そのCPUを利用できないわけで、CPUを開発するときにアセンブラも用意するのだと思います。
機械は最近AIを用いていてAIが自主的にデータを集めて判断できるようになっているので、少しの人間のプログラミング言語の打ち間違いもくみ取ってくれるのかと思ったが、そこは厳密にしないといけないのが疑問だった。ただ、確かに間違えがあるとその意図をくみ取るのに時間が取られてスムーズに機械語に翻訳することができないと考え納得した
2間違ったプログラムをAIなどコンピュータのプログラムが勝手に判断して修正したとすると、本来意図した処理と違うまま動作することになるかもしれません。間違った処理のままプログラムが動く方がよっぽど大きな問題です。プログラミングは「正しく動くまで直す」ことが大切で、エラーが出なくなるまで直すことが必要なんです。
端論理回路の問題を行ってみて、AND回路は1,1のときだけ1で他の組み合わせでは0になり0含まれているときには0になることに気が付いた。また、OR回路では0,0の時だけ0で他は1になることから、1が含まれると1になることに気が付いた。
2論理回路の特徴を自分なりに見出すのはいい考えですね。ANDは0があれば0、ORは1があれば1ということですね。
よく「最新のCPUが~」というのは聞くが「最新のメインメモリが~」とは聞かないのはなぜか気になった。
2やはり性能向上に効果的なのはCPUだからなんです。メモリも地味に高速化されたりしているのですが、CPUの性能向上とセットになっていることが多いので、メモリだけPRされることがないんです。
補助記憶装置やCPU、メモリなどの関係を作業環境に例えられた時、「私は作業に必要なものは全部手元に置きたくて、机の上がゴチャゴチャしてるけど、メモリと補助記憶装置の使い分けってどの基準で誰がやってるのか?」と疑問に思った。
2メモリと補助記憶装置の大きな違いは、電源を切っても覚えているのが補助記憶装置、忘れちゃうのがメモリです。毎日作業終わりには机の上をきれいに片付けちゃうんです。翌日作業開始には、補助記憶装置から手順書を出してきて、その手順に従って作業します。机の上に置ける量には限界があるので、必要に応じて補助記憶装置に置くこともあります。
二進法に変換する必要があることは大変な気がした。もし、そのままの言語でコンピュータが理解できるようになったらどんな感じになるか気になる。だが、もしかすると二進法にしておいたほうが変換する手間はあるが、そのあとの作業は楽になるから二進法のままにしておいたほうがいいかもしれない。
2コンピュータは2進法で動作する機器ですから、最終的には2進法に直すことになります。正確に2進法にならなければ動きませんから、普段のそのままの言語は曖昧過ぎます。厳密に記述できるようにプログラミング言語はできているのです。
今回コンピューターが如何に高速で多くの演算等ができるかを知り、もはや人間にできることは指示だけなのだと改めて思った。だから、考えるということを放棄しないように日々生きていきたい。
2今、世の中では「コンピュータにできることを人間がやるのは無駄」と考えて、人間の労力をコンピュータに肩代わりさせることが積極的に行われていますよね。だからこそ人間が考えることが必要ですし、コンピュータに意思を伝えるプログラミングができる人が求められているのです。
LTspiceにANDやNOTなどの論理ゲートが入っていたことを思い出したので、使って理解を深めたい。
2LTspiceって電子回路シミュレーターですね。電子回路、面白いですよね。最近はこういったシミュレータで試してみたり、学んでみたりできていいですね。昔は実際に回路を作って動作を見るしかできなかったんです。
多くのアプリはOSが端末との仲介役となるためAndroidでもiPhoneでも使えるけれど、たまにiPhoneでしか使えないアプリもあり、その違いが何なのか気になった。
2iOSはiOS用アプリが動く環境を用意しますし、AndroidはAndroid用アプリが動く環境を用意しますから、iOS用のアプリはAndroidでは動きませんし、Android用のアプリはiOSでは動きません。どちらでも使えるアプリは、2種類作っているのであって、同じものが動いているわけではありません。
普段、スマホを使いすぎると、熱くなってしまうときがあるが、それはスマホ全体ではなく、CPUが熱を持っているからだと理解できた。熱くなってくると、通信スピードが遅くなっているように感じるが、関係ある(熱を持つ部分がCPUだから)だろうか。
2CPUは温度が設定温度を超えると保護のため動作速度を遅くします。速く動作する方が発熱するんです。通信は通信用のチップが処理しますので、通信速度には変化がないはずです。遅く感じるのは処理速度が遅くなっているからだと思われます。
学んでいるプログラミング言語が意味の分かるように作られたものだと知って驚いた昔のドラクエの保存は数十の文字列で行っていたことを聞いたことがあったのでそこにマッチするようなことが聞けた。
2「復活の呪文」ですね。ドラクエはあまりりやっていないですが、メモを1文字間違えてやり直しとか、いろいろ大変でした。おそらく、状態を示すデータを単純にひらがなの文字コードとして文字に変換していたんじゃないかと思います。2進法を単純に16進法に直すのと似た手法ですよね。
コンピューターは打ち込まれている言葉の意味を理解することができないため、その打ち込まれている単語の意味自体が重要なのではなく、文字列に意味があるということが分かった。
コンピュータは融通が利かないということを先生は言ってたけれど、それって正確だからなんだろうなと思った。コンピュータが正確に出力できるのは正確に入力するからこそ。人間にはないその「正確さ」という個性を維持するためには仕方のないことだと思った。
パイソンなどで書いたプログラムは機械語、すなわち二進法に翻訳されるため、翻訳しやすいようプログラムを書く必要があるということにすごく納得した。
論理回路を図的に理解するときに、電池の回路が分かりやすく、とても納得することができた。
論理回路の仕組みは数学の知識さえ持っていれば理解するのは簡単でした。0を偽、1を真とすると、論理回路の仕組みは真理表と同じであることがわかりました。つまり、数学Ⅰで習う命題の部分さえ知っていれば理解が可能でだと気づきました。
単純な論理回路を数個組み合わせるだけで足し算ができるのはすごいと思った。これを使って1秒に何十億回も計算してるのは、CPUにいかに小さい部品が使われてるのかがわかった
論理回路が、解いていてシンプルでわかりやすくて楽しかったです。
CPUは記憶能力が皆無で、主記憶装置に助けてもらいながらでないとまともに仕事ができないので、プログラムの動作の仕組みの説明を受けているときには問題児にすら見えたが、データ管理まで単独でこなそうとするとかえって非効率で、その分主記憶装置とCPUの間のバスの性能が重要というのは、現実の例に即して考えると納得できた。(例えば漫画家が構成やキャラの描画だけでなく背景の描き込みまでやってたら非効率の極みだし、それをアシスタントに任せるとしたら両者の間で原画の受け渡しが円滑なほうが全体の効率も上がる)
Pythonのプログラミングをやった時、どうして、 if や for i in range の後には:をつけたり、半角のスペース4つ分開けたりしなければいけないのか、と思ったが、0と1だけの機械語に自動翻訳するためだと知って、納得した。また、16進法の機械語をひたすら入力することに比べたら、プログラミング言語はとても便利なものだと思った。
コンピュータに自分が入力をしたときにどのような処理をして出力にいたっているのか知ることができた。コンピュータは人間とは違い、打ち込まれた事柄をおぼえるのではなく一回一回記憶装置に送るということが知れた。少しの入力の違いで出力が変わってしまうのは正確である証拠なのだと感じた。
ソフトウェアが働くために使うプログラミング言語はじつはコンピューターにはわからないことを初めて知りました。プログラミング言語を機械語に変換しなければ動かないので昔の機械語を直接打ち込むことはとても辛いことだと容易に想像できました。論理回路はマインクラフトでの回路を組み立てた経験がとても役に立ちました。
高額なスマホ(ハイスペックなスマホ)は、1秒間に72億回~112回演算できると習った。では、コロナ関連のシミュレーションで話題になり、世界1位になった日本のスーパーコンピューター「富岳」はどれくらいの速さで計算できるか調べてみると、1秒間に44京2010兆回計算できると書いてあった。さらには、アメリカの「フロンティア」は1秒間に110京2000兆回計算できると書いてあった。考えられない回数の計算をしていてとても驚いた。ソフトフェア以上にOSをしっかり作りこむことがソフトフェアを正しく動かすうえでも大切なことだと分かった。

自己評価集計

自己評価集計

ワードクラウド

3つのキーワード

3つのキーワード
感想や気づき

感想や気づき
テキストマイニング 無料ツール by ユーザーローカル
前のページに戻る