2023情報I 2学期
第7回 授業の振り返りより

質問より

先生がおっしゃっていた、演算子の=一つでイコールを表せるプログラミングとは何ですか。/先生が普段使っている=が一つであるプログラミング言語は何ですか
VBA(Visual Basic for Application)などですね。個別の情報を皆さんの[自分のドライブ]に配ったり、テストのスコアシートを印刷するのによく使います。
今更なんですが、何故x=x+5の指揮でxを両辺に使えるのか聞きたいです。/教科書で「X=10、X=X+5、print(X)」とありますが、「X=X+5」の部分はXを左辺に移行してしまうとXが消えてしまうことになるのですが、左辺のXと右辺のXは別物として考えるということですか?
まず最初に、数学とは違うので、=を=だと思っちゃいけないんです。=は代入の記号です。X+5の計算結果をXに代入するという命令ですね。
Scratchで表せられるアルゴリズムはPythonで表すことができますか?(逆もお願いします)
Scratchで書いたプログラムはPythonで表現できます。Pythonで書いたプログラムをScratchで書けないこともあります。プログラミング言語は目的や機能によって様々な種類があります。目的が違えば、できることも違うのです。Pythonの方ができることが多いということです。
例えば
A=5
A=A+7
print(A)
とあるときに下のAが採用されるのはなぜですか?
最後に代入したものが有効になります。代入は上書きされます。
制御構造のことで、本格的にプログラミングを勉強すると基本の順次構想・分岐構造・反復構造以外に、いくつくらいの制御構造があるんですか?
3つしかありません。授業でも説明したとおり、順次・分岐・反復の3つですべてのプログラムは書き表せます。あなたが違う制御構造が利用できるコンピュータやプログラミング言語を開発するまでは、ですけどね。
順次構造、分岐構造、反復構造だけでは表せないプログラムの例を教えてください。
ありません。すべてのプログラムは3つの制御構造で書けます。ただ、新たな制御構造が発明される可能性もあるので、断言できないだけです。
授業中に言っていた3つの制御構造以外のものはフローチャートで表すとどのようなものになるのか。
3つの制御構造しかないのですから、フローチャートの書き方も存在しません。
スペースの使い方以外にプログラミングを書く時に大事なことはありますか?
Pythonはスペース(というかインデント:字下げ)が重要で、インデントで構造を表現しています。これ、文書の構造と同じなんですよね。
そのほかに大事なことは、わかりやすいプログラムを書くことですかね。変数名などはわかりやすい変数名にしたり、プログラムの構造を簡潔にしたり、注釈(#をつけるとプログラム中にメモが書ける)で説明を書いておくことでしょうか。プログラムって修正したり、改造したりして使いまわすわけですが、わかりやすいプログラムだと修正や改造が簡単なんですよね。
pythonの不具合でerrorが出てしまうことが何回もあったのですが、何が原因でそうなってしまうんですか?
ちょっと原因不明なんです。実際にPythonが動いている環境と、画面表示のブラウザとの間の通信不良じゃないかと思われます。実行を指示して、動かない様子ならリスタートして実行してみてください。
授業で、素数かどうかの判別のプログラミングの話しがあったと思うのですが、具体的にどのようなプログラムになるのですか。
近く授業で紹介します。
なぜ割り算の余りは%で表すのですか
そう決めたからです。使われていない割り算に関係しそうな記号だったからだと思います。

感想より

プログラミングのときに、「moji='ABCDEF'」ではなく、「moji=('ABCDEF')」でも同じような表記になったので、同じ表記になるのならば、プログラムする際の動作が少ないほうがいいのかなと思いました。
無駄なカッコが反映されなかっただけです。3*(1+2)のカッコには意味がありますが、3+(1+2)のカッコには意味がありませんよね。カッコがついた状態で変数へ代入しても、意味のないカッコは代入されないので、同じ結果となったのです。
空白が大事だと分かった。inputが難しいなと思った。入力先がよくわからない。
変数をどうするかを考えて、変数を中心にプログラムを考えてください。input()から考えるから上手く動かないのです。数を入力させるので、suuという変数を用意して、入力だからinput()という手順で考えれば、suu=input() ってなりますよね。input()で入力されるのは文字だから、別の変数を用意して数値に直して代入しよう...と考えるわけです。
numとかずっとなんだろうなと思いながらとりあえず変数においやっていたけどnumberの略で変数は自分の好きなものにしてもいいと分かり、すっきりしました。intはelifみたいな感じでinputの略なのかなと思っていたら整数という意味でint(input())の意味がようやく分かった。
変数は勝手につけていいのですが、命令や文は英語がベースになっているので、そもそもの意味を理解するとわかりやすいですよね。
pythonを使って円の面積を求められるなら、複雑にはなるが、今数学でやってる分散とかもパッと求められるプログラムが組めると思うと少しワクワクした
分散の求め方はわかっていますから、あらかじめプログラムを作っておけば、数値を入力するだけで計算ができます。というか、そういうのがプログラムってことです。
エラーが出たときは全部消してしまうと何が間違っていたのか分からないので、少しずつ変えて何が間違っていたのか考える必要があることに気づいた。
プログラムって正しく動くものが「ポン」とできるのではなく、エラーを出しながら、正しく動くように修正、改善していくものなのです。
今回の授業では、後半のプログラミングの実習が思っていたよりもスムーズにいかなかった。プログラミングの基礎は、スライドを見て理解するよりも実践して覚えるべきということを実感したので、これからは自分でプログラミングしながら覚えていこうと思う。
プログラミングは見て理解することは不可能だと思います。自分で打ってみて、エラーを出して、エラーが出ないよう修正して学んでいくものです。
基本的なことをきちんとやればプログラミングは専門的に扱ってる人だけが出来るものじゃなくて多くの人も出来るものだということが分かった。スペースやfor,whileの違いなどなんとなく分かったつもりでいたものをしっかり理解出来てよかった。
ちなみに私は専門的なプログラマーではありませんが、週に1回ぐらいはプログラムを書いています。プログラムが書けるからこのような授業の方法や教材の配布ができるわけです。テストの個人票、322回も印刷ボタン押すのは手間がかかりますが、プログラム書いちゃえばポチッと1回実行すればすみますよね。
スペースの有無の時の違いなど、一つ一つのプログラムの意味を理解することで、どんなプログラミングにも対応できるようになると思った。そう考えると、プログラミングは新しい言語のようだと思った。
だからプログラミング言語というのです。厳格な文法と限られた命令で構成されているので、ちょっと慣れればとても簡単なんです。
プログラムを書くには数学的な考えをしなければならないので少し難しいと感じた。
そうですね。コンピュータは計算機ですから、指示は数値でおこない、判断は計算式でおこないます。数学的な素養、特に式を立てる能力はプログラミングには必須です。とはいえ、そんなに複雑なものではないですけどね。
自分が思っている感覚とPythonの感覚にずれがあると分かった。例えば=は==と2個入力することで等式の意味になったり、(3)とあっても0,1,2のことを表していて1,2,3のことではなかったりすることがあるので、Pythonの特性に練習して慣れることが大切だと分かった。
そういった特徴、1学期に説明しましたよね。そのうえで夏休みの課題が出てたんですけど、取り組んでみましたか?
練習を積み重ねないどプログラミング言語を覚えるのは難しいと思った。
覚える必要はありません。Cheet Sheetもありますしね。覚えるのではなく、使える、書けるようになってください。そのためにはアルゴリズムをどうプログラムとして書くかが理解できること、手順の構造がわかることが大切です。
もしかして、for文って同じだけ時数下げしたところを繰り返すのか!となりました。
えぇ~!そこかい!夏休みの課題に丁寧に説明がありましたよ。
パイソンの固有の規則があると知ったが、ほかの手段にも同じような固有の規則があるのならややこしくなるのでプログラミングはパイソンで統一すればいいと思った。反復構造にもfor文とwhile文があるように細かい状況に応じて一番最適な制御ができるようなプログラミングが作られていて、よくできていると思った。
Pythonの固有の規則として有名なのはインデント(字下げ)による構造の表現ですが、構造が理解できていないから難しく感じるので、とてもシンプルでわかりやすいな表現方法なのです。ほかのプログラミング言語も構造の表現の規則がありますが、構造が理解できていればどのプログラミング言語も同じようなものです。
プログラミング言語は目的や用途によってさまざまなものが用意されています。用途が違えばプログラミング言語が違うのが当たり前です。
自分でプログラミングの予習はしていたけど、理解が足りていなかったなと改めて思った。HelloWorldや第3回を表示するとき、自分は’’で1区切りずつ挟んで+を使っていたけど、先生が教えてくださって、+ではなく,でもできるのだと知った。このことからコンピュータには正確にこと細かく指示を出さなければいけないけれど、指示を表す方法はいくつか種類があるのだなと感じた。
print()命令の中で、+を使って変数をつなぎ合わせて表示する方法もありますが、変数を , (カンマ)で区切って書き並べて表示する方法もあります。+は変数の型が同じでなければできませんが、 , なら方が違っても表示できます。ちなみに、基本的なプログラミング1にはカンマで区切る方法を紹介しています。
カッコ内は文字を書く時には’(シフトで7のやつ)で挟む必要があることを今日初めて知ったので、今まで小テストで引っかかっていた部分を知ることができた。やっと間違いが分かったので同じ間違いを確実につぶしていけばどんどん力がついてくると思う。
1学期の授業でも説明しましたし、基本的なプログラミング1の1ページ目に説明が書いてありますね。夏休みの課題、やってないんですね。練習問題より前に、基本的なプログラミング1・2・3を最初からやったほうがよさそうです。
コンピュータは嫌がらないから、方法はわかるが時間がかかることをプログラムしてコンピューターにやらせるのが正しい使い方だと思った。だから、よく「将来的にコンピュータに仕事を取られる」と言うけれど、実際は「人がやっては時間がかかることだけをやらせておく、人は人がやった方が良いことがあるからそれをする」だと思った。夏休みに勉強したのが生かされていて、エラーにもしっかり対応することが出来て、沢山進めることが出来たから、次回ももっと進められるように頑張りたい。
Pythonをやるときに、エラーが出た方が学びになる気がしました。なぜ間違えたのか考えて改良していった方が覚える気がします。
すべての間違いを直しながら進めることが出来た。エラーメッセージって結構よみやすいなとおもった。
for構文とwhile構文の根幹は繰り返すという意味では同じであり、異なる点としては回数制限を設けるか、条件を設けるかの違いだということ。
夏休みのとき難しかったけれどしっかり宿題をしていてよかったなと思った反面忘れていたところがあったので復習したい。

自己評価集計

自己評価集計

ワードクラウド

3つのキーワード

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

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