2022情報I 1学期
第16回 授業の振り返りより
質問より
- 2学期でのPythonを使う授業ではどのようなものを作成していくのですか?
- 皆さんの夏休みの成果を見て考えます。本当は数字を使ったゲームぐらい作れたらいいのですが。
- A=5 #Aという変数に 5 を代入 という説明の中でシャープをつけたのはなぜですか。
- シャープではありません。ハッシュです。#以降はプログラムとして認識されないと定められているので、注釈や説明をメモしておくのに使います。
- for i in range(5):
print('Hello')
の5の部分に変数を打ち込んでみましたがうまくいきませんでした。変数に数字が打ち込まれていても変数には反応しないのでしょうか? - 「変数を打ち込んでみた」とはどうやったんでしょうかね。Aとか打ってみたのでしょうか。for文より前にA=10などと変数に値を代入してあれば動くはずです。括弧の中は数値が代入されている変数でも動きます。値を代入していない変数をいきなり打っても、値がわからないので動かないわけです。
- pythonはどのぐらいのプログラミング言語があるのでしょうか。また、最も多くプログラミング言語を持つプログラミングソフトは、どのくらいの言語を持っているのでしょうか。
- PythonはPythonというプログラミング言語で1つですけど。おそらく、命令や関数がいくつあるのかということだと考えて回答します。命令はある程度限りはありますが、関数は無数にあります。自分で関数を作ることができたり、関数の集合体を呼び出して使ったりすることもできます。
- pythonを自主的に勉強したいと思うのですが、どういったテキストを用いるのが良いでしょうか。
- とりあえず「基本的なプログラミング」が一通り理解できて、自分で改造したりできるようになってください。そこまでできれば、いろいろ自分で作ってみて、わからなければネットで検索するなどすると、いろいろできるようになると思います。パソコン室にはPythonの本や雑誌もあります。貸し出せませんが、見ながら取り組んでみて、気に入ったら購入してはどうでしょうか?
- キーボードの右側に書かれている文字を入力する方法は存在するのでしょうか。
- キーボードのスペースキーの二つ右にある「カタカナひらがな」キーを押せば入力できますが、キートップの右側に書かれた文字は無視すべきです。
- キーボードの右側は何のためにあるんですか?無視するといっても何かしらの意図はあると思うのですが…。
- キーボードの右側ってキートップの右側の文字のはなしですね。授業で説明しましたよ。観察すればすぐにわかると思います。右側は「かな」です。英文やプログラムの入力にも使うキーボードですから、日本語もローマ字で入力したほうが、覚えるキーの数も少なく効率が良いですよね。かなで入力することは今後無いと考えられるので「無視すべき」なんです。右側の表示は50代以上の一部の仮名入力の人のために残っているのです。私は50代ですが本当に邪魔だと思っています。また、記号を探すときにキートップの右側まで探してしまう生徒がたくさんいて困っています。
- タイピングをはやくするための良い方法があれば教えてほしいです
- 1日20分、キーボードを見ずに、打つことを繰り返し練習してください。早さより正確さ、何よりも手元を見ないことが重要です。練習方法は4月から紹介しているのですが、まだ練習していないんですか?サポートページ上部にあります。
- どのようにしてインターネットというものが誕生したのですか?
- インターネットの仕組みや歴史はこの単元で扱う内容ではありません。技術の教科書にも載ってますし、今の時点で知りたければネットで調べてください。2学期後半か3学期にやる予定です。
- なぜA=5は5と''を必要とせずに表示されたのに、Helloは''が必要なのですか。Hという大文字が含まれているからですか。もしくは、ローマ字の時点で変数だと思われて表示されなくなってしまうのですか。
- ここはしっかり説明しましたよ。文字と数値は扱いが違うのです。5は数として5を代入しています。A='5'とすれば、Aに文字の5を代入することもできます。こうすると、A+2のような算術計算はできなくなります。文字ですから。
- プログラミングで何かソフトを制作したことはありますか?
- 気楽に聞きますねぇ。世の中で使われているソフトってものがどれだけ作るのが大変か理解できてないようですね。皆さんの提出ファイルを自動回収し、文字数を自動カウントするプログラムなど、必要なものを作ることもありますが、基本、プログラマーではないので、大規模なものは作りません。
- プログラミングにおいて、’’と、‘’の違いは何ですか。なぜ‘’だとエラーになるんですか。?
- 決まり事だからです。コンピュータが何か「理解」をしていると勘違いしていませんか?定められたとおりに処理するのですから、 ' と定められたとおりでなければ、動作するはずがありません。プログラミングにおいては‘’は存在しません。Pythonでは文字は ' でくくると定められています。
- プログラミング言語によって、得意不得意がある理由は何ですか?/新しいプログラミング言語はどのようにして誕生するのですか?
- ある目的があって、その目的のためにプログラミング言語が作られます。目的によって得意不得意ができるのです。数値計算が目的であったり、インターネットのWebページ内で処理実行することが目的であったり、サーバ上で動くことが目的であったりします。Pythonは誰が書いても同じようなプログラムが書け、人間が読み書きしやすいことを目的としたという説があります。ドリトルは母国語がプログラミング学習の障害にならないように開発されたもので、私の友人である大阪電気通信大学の兼宗教授とその仲間達が開発しています。日本語・英語・韓国語・中国語でプログラミングできます。
- プログラムのプログラムを知りたい。
- パソコンで動く大抵のプログラムはCの類いで書かれているとされています。C+、C++、C#とかですね。
- プログラムを入力した後に[F5]キーを押すと思うんですけど、[F5]キーってどんな役割があるのですか。
- Pythonのプログラミング環境IDLEの話ですね。IDLEでは[F5]キーに「Run Module」という機能が割り当てられています。[F1]から[F12]までのキーはファンクションキーといい、ソフトによって機能が割り当てられています。
- 一つのゲームを作るのにどれくらいのプログラミングのコードが必要ですか。例えばポケモンのようなストーリーとバトル型のものだとどれくらいですか。
- 数万行は必要なんじゃないでしょうか。ポケモンのようなゲームを作ったことはないですし、プログラムの中身は公開されていませんからわかりません。
- 準備していない動作にはコンピューターは反応しないとおっしゃっていましたが、例えばゲームとかでアップデートがされると動作が変わることがありますが、それはプログラミングが遠隔で操作されているという状態であるという認識で合っていますか?
- 全く勘違いしているようですね。「準備していない動作には反応しない」というのは、コンピュータのすべての動作はあらかじめプログラムが書いてあるという意味です。たとえば、コントローラーのアナログスティックってゲームによっては縦(または横)の操作にしか使えない時がありますよね。これは、横(または縦)の信号に対してはプログラムが書いてないので、反応しないということです。
アップデートと遠隔操作がつながるのは、自由な発想で面白いですけど、もう少し正確に仕組みを理解すべきじゃないですか?そんなことがあるようなら、アップデートなんて危ないので誰もやりませんよね。アップデートはプログラムの不具合を修正したり、新しい機能を追加するために新しいプログラムファイルと差し替えることです。アップデートは普通、ダウンロード→インストールとなります。ネットワークにつながっている必要があるのはダウンロードの部分で、ダウンロードしたファイルをインストールするときにはネットワークにつながっていなくてもできるはずです。遠隔なんて面倒なこと、してくれませんよ。
- 難しいプログラムだと、エラーが起きたときそのエラーの部分や理由が先生のような人でもわからないときはありますか。
- 難しいプログラムでなくても、エラーの原因がわからないことはあります。そういうときは、もう一度打ち直すと直ることが多いです。プログラムは一気に何行も作るのではなく、少しずつパーツを作って組み立てるようにして、動く部分を少しずつ増やすようにして作ります。
- 二乗は、*を使うというのは誰が最初に決めたのですか。
- 知りません。乗算に*は古くから使われています。私が高校1年の時(43年前・泣)もそうでした。×を使わないのは、xと見分けがつきにくいからだそうです。
- 変数の型は世界中で共通なのか。また、その型はどこかの機関で決めているのか。それとも個人的に決めて言ってよいのか。
- 決まり事は決まり事なんです。PythonであればPythonというプログラミング言語を開発している人たちがそのように定義し、決めたものです。気に入らないのでしたら、自分でプログラミング言語を作ってください。
感想より
- エラーが起こることによってプログラミングやコンピューターの特性を実感できた。また以前までプログラミングをする際プログラミング言語はすべて覚えるものだと思っていたのですべてを覚える必要はないことが分かり安心した。
- 全部覚えられるほど、命令や関数は少なくないんです。よく使う命令はなんとなく覚えてしまうので、覚えてないのは検索するかチートシートを見ましょう。
- pythonは前から触りたいと思っていたので、今回初めて使えて楽しかった。前はコードの種類をたくさん覚える必要があるのだろうと思っていたが、今回使ってみてコードをひたすら覚えるより与えられたコードを正しく使えることが大切だと分かったので、プログラミングに対するイメージも暗記系というイメージから変わったなと感じた。
- プログラムを作るのは、「こんなコトできないかなぁ」が先にあって、マニュアルなどを調べて「こんな命令を使えばできるんだな」という事になり、実際にプログラムを書くことになります。問題解決なんですね。問題解決に暗記は必要無いですよね。必要なときに必要な知識と技術があればできるんです。基本的な書き方ができれば、いろいろな命令を活用できるんです。
- プログラミングは打ち込んだ文字が少しでも違うだけでうまくいかないことが分かった。手順は人間が決めるものだが、その決められたコードと単純な処理はどのようにして反映されるに至っているのかが知りたいと思った。
- プログラムに従ってコンピュータがどのように動作するかは、2学期に学びます。
- 一文字でも間違えてしまうと動かなくなってしまうのでプログラマーは大変なんだなと思った
- 一文字間違えただけでもエラーになるので、間違えたところが見つけやすいのです。
- 前回のドリトルでは日本語を使ってプログラミングをしたけど一般的なプログラミングでは日本語は邪魔なものとなり英語で基本的にやるから日本語より慣れるのが大変そうだなと思った。
- 日本語の方が複数の言い回しがあって面倒ですよ。「歩く」「進む」「前へ」「前進」はすべて同じ意味に取れますが、使えるのは歩くだけです。使う英単語はどれも基本的なもので、意味を知らないような単語はないはずです。
- 今日の授業ではエラーの必要性を少し感じ取れました。最初から正しいプログラムを書こうとするのではなく何回も失敗を繰り返すことでより深くプログラミングを知れると思いました。
- 正しい動作をするプログラムかどうかは、プログラムを見るより、実行した方がわかりますよね。とりあえず書いてみて、実行し、エラーが出たところを修正するのが効率の良いプログラミングの手順だと思います。お手本と照合するより、意味理解をして自分の手でやってみる、これがなによりも大切です。
- ホントに些細なミスでも正常に動作しないのでプログラマーの人は凄く神経を使って大変そうだなと思った。
- そもそも打ち間違えないですし、打ち間違えてもエラーが出てわかるので直せばいいだけです。
- スペースの数までも間違えてはいけないと知って、なぜスペースの数も設定されているのかと思った
- 授業でも簡単に説明しましたが、スペースに意味を持たせているからです。例えばfor文だと、どこからどこまでの命令を繰り返したら良いか明示する必要があります。Pythonではこれを4つのスペースで示しています。for文の次の行から4つのスペースがある命令を繰り返し、スペースがない行まで行くと、その命令は繰り返さず、for文で示された次の値で繰り返すことになります。
- 人間が考えたことを,ただ手順に従うだけのコンピュータが効率よく実行できるように命令を考えるのは,人間的に考えてしまう自分には難しそう.
- 効率よくというより、正確に示すことが必要です。人間的って良さそうに聞こえますが、正確性に欠けると言い換えると、今後あなたが改善しなければならない課題になるのかもしれませんね。
- プログラミングがいかに繊細な作業かを実感した。半角文字か全角文字かだけでも全く違う情報になるので、実際にプログラムを打つときには、1回でも間違えないように注意して取り組みたい。プログラムは、パソコンの情報を分析するなどするときに使われるものだと思っていたが、キーボードを打つこと自体も数値化されていて、事前にプログラムが書かれていると知り、驚いた。あらゆる動作に対応しなくてはならないので、そのすべてのパターンについて決まったプログラムを準備するのが大変だと思った。また、プログラムの実行は柔軟に対応されず、それが品質を維持しているのかもしれないが一度間違えると大変なことになるので、もっと人間が楽に使いやすいように改造されるといいと考えた。
- うーん。繊細じゃないですよ。間違えないようにするのはいいことですけど、間違えたところを直せばいいだけです。エラーの出ないプログラムを打つ人間なんか必要無くて、エラーの出ないプログラムを作り上げる人間が必要なんです。
- プログラミングの指示は定型文があって少しずつ変えることで異なる行動をすることを知りました。定型文の型のようなものはインターネット(プログラミング)にそもそも設定されているのか疑問に思いました。
- インターネット(プログラミング)ってどういう意味なんだろうなぁ。まったく別の概念なんだけど。プログラミングはプログラミング言語を用いておこないます。プログラミング言語はプログラミング言語の開発者の人が文法(記法)や命令(関数)を定義して、それに基づいたプログラムが動くようなソフトウェアを作ります。当然、いろいろな人にプログラミング言語を使ってもらうためには、文法や命令を公開しますよね。典型的な例は定型文のように扱われ、公開されたりしています。
- 僕は、プログラミング経験(?)があり、独学で学んでいるので、今回の授業は全く難しくなかった。Python 以外にも色んなプログラミング言語へと範囲を広げていきたい。(いまのところ、Java Script,Swiftぐらい) 学校の取り組で、Pythonが情報?のカリキュラムに入っていたのは、ささやかながら、驚いた。中学校はスクラッチどまりだったためかもしれない。また、プログラミングをするには、一定のタイピング力が求められる、という先生のお話も共感した。僕は、珍しく、高校生になってもスマホデビューしていない。そのため、スマホへの依存というものがなく、Windows PCやMacのPCデバイスに昔から長い間、使う時間が長かったので、タイピング力も含め、力はついた。しかし、先にスマホを買い与えられた大半のものは、スマホの使用がメインになるため、フリック入力に慣れ、キーボードタイピングができない人が多い。さらには、フリック入力の方がはやいから、という理由で、なかなかキーボードタイピングをする習慣が身につかない。そうした人たちは、プログラミングも含め、厳しいなぁと思った。最近の大学生や新社会人らは、タッチタイピングができない人であふれているらしい。自分は出来る方でよかったと思う。。また、プログラミングを学ぶには、文法(プログラミングのコードの書き方)を教科書のようなものをみて覚えたり読んだりして始めていくのはとても効率が悪いと思う。楽しくできない、というのももちろんだが、何か目的をもって、(目的を作って、)その目的を実現しようと制作に取り掛かり、その途中過程で、ググったりして、いろんなことを知って使いながら覚える。こっちの方が、圧倒的に効率がいいと思った。さらに、学校で、Python以外にも、HTMLや、CSSにも取り組むことができるのは、いいなと思った。自分はまだそこに手を付けておらず、これから学べることが楽しみでワクワクしている。
- 「フリック入力の方がはやい」と言い張る人、いますね。フリック入力している時間とキーボード入力している時間を比べれば、フリックの時間が長いわけで、それだけ慣れているという事なんです。フリック入力の人、いつでも対決します。私程度のタイピング速度で高速フリック入力は撃破できるんです。
- プログラミングとは、なにかよくわからない複雑なことを行うことではなく、計画手順を示し、簡単な動作・基本の繰り返しで多様なことをさせることで、コンピュータを効率的に動かすことだと分かった。そのためには動かす側の私たち人間が命令をすべて記憶する必要はなく、構造を理解することが重要であるとわかった。また、コンピュータの得意分野を理解して、人間がやるとめんどうなものを効率的にやってもらうことが円滑な作業につながると思った。
- プログラミングは受け身で指示したことしかやらない。ただし、指示されたことには正確に実行する。プログラミングにはこのような性質があると思う。小学生、中学生の時にプログラミングはやったことがあるが、プログラミング言語を用いたプログラミングはやったことがなかった。プログラミングをしてみて、プログラミングをしているその画面も、内部でプログラミングされてうごいているということを考えるととても面白いと思った。
- 本物のプログラミングは文法が厳密に決められていて間違いやすいので、そういうものだと思ってエラーに臆せずできるまでやってみることが大事だと分かった。複雑だからこそ無理に覚えようとはせず、使い方を身に付けようという姿勢が大切だと分かった。
- 授業の最初にプログラミングとは何か考えたとき、融通が効かない、全て人間が命令しないといけない、指示語が使えない(からいちいち指定しないといけない)などの意見が挙がったが、仮にコンピュータ側が「それ」の内容を取り違えたり、次にくる命令を誤って予測して実行したらうまく行かないので、煩わしく感じることもあるが、必要な性質なのかと思った。逆に言えば、融通が効くということは、それだけ曖昧さや不安定さを兼ね備えているとも言えるのだと思う。(実際人間の日常会話なんて曖昧な表現だらけ)
- 先生がタイピングは一刻も早くできるようになったほうがいいと言っていて、練習しようと思った。また、プログラミングはこれからの社会で絶対必要だと感じたので、もっと知り自分で設定し命令できるようにしていきたい。今ちょうど数学で二次関数をやっているのでコンピュータが関数に似ているという例えが分かりやすかった。
- 私達がやるゲームなどが全てプログラミングによる信号によって動いているとわかって感心した。プログラミング言語を全て覚えなければプログラミングはできないと思っていたが、記憶することより使いこなせるかが大事だと分かった。
- 「コンピュータは賢くない」という言葉はプログラミングにおいて的を得た言葉だと思った。人間であれば「進め」と命令しても端やちょうどいいところで止まったりするが、機械に「進め」と命令したらどこまでも進み続けるのが少し不便に感じた。しかし記述していないところを予測で補われて勝手な動きをされても困るので正しい仕組みだとは思う。
- 先生の「コンピュータは賢くなくむしろわからずやだ」という言葉が印象に残った。この言葉の意味がプログラミングを通してよくわかった。しかし、一つのミスで動かなくなってしまうことはデメリットのように感じても実際にミスしても動いてしまうとこれもまた問題になってしまうこともあるため、この機能は大切だなと思った。ミスのないように慎重ながら楽しく学んでいきたい。
- コンピューターは分からずやだということに気付いたため、コンピューターに指示を出すときは正確性を意識しなければならないと思いました。変数につける名前は分かりやすい方が便利だということに気付いたため、名前をつけるときは短くてパッと見てわかる名前をつけるべきだと考えました。変数では左辺に右辺の値を代入して計算するということに気付いたため、間違えて右辺に左辺の値を代入して計算してしまうことのないように気を付ける必要があると思いました。
- コンピュータへの命令は短く単純なもののほうが処理が速く行えてミスも起きにくくて望ましいように感じました。
- 今まで、コンピュータは複雑で難しいものだと思っていた。しかし、もとの仕組みはシンプルで、ひとつの命令とひとつの実行がセットになっているため単純であることを理解した。さまざまな命令を使いこなし、プログラミングに慣れていきたい。
- シングルクォーテーションがある、ないで変数かそうじゃないかが変わるのがおもしろかったです。全角には気を付けようと思いました。プログラムには無駄な部分がなくて、全部に意味があるのだと感じました。
自己評価集計
ワードクラウド
- 3つのキーワード
- 感想や気づき
テキストマイニング 無料ツール by ユーザーローカル
前のページに戻る