比較プログラム言語論 平成17年6月15日 森田 彦.

Slides:



Advertisements
Similar presentations
プログラミング入門 ガイダンス.
Advertisements

プログラミング 平成25年10月29日 森田 彦.
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
プログラマのレベルアップ.
プログラミング 平成22年10月20日 森田 彦.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング 平成25年11月19日 森田 彦.
子ども達への科学実験教室の運営方法論 -環境NGO「サイエンスEネット」の活動事例をとおして- 川村 康文
国際政治経済特殊研究Ⅷ  飯野光浩 プレゼン 総括.
フィードバック型復習 理数系科目の成績を大きく伸ばす方法 東大理数学院 塾長 西村 太一.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
1日目 10:25 【演習】 情報の収集とチームプレイの基本 -オリエンテーション- 松本 亜希子 障害者支援施設 虹の家.
情報基礎演習I(プログラミング) 5月25日 水曜5限 江草由佳
比較プログラム言語論 平成17年6月22日 森田 彦.
ほんとにだいじょうぶ!? ネット や ケータイ
デザインと感性 第1講 担当:伊藤.
プログラミング 平成24年10月23日 森田 彦.
プログラミング 平成23年10月19日 森田 彦.
クイズ 「インターネットを使う前に」 ネチケット(情報モラル)について学ぼう.
●レポートを書くこと→主張の根拠を示して、他の人を説得するため ●最初から順に読んで分かるように書く ●
パスワードをつけよう! ~ワード・エクセル・一太郎 ・その他(アタッシェケース)~
3次関数・4次関数の極値に 関する高専1年生の発見
認知カウンセリング 学習意欲改善に対する可能性.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
知能情報工学演習I 第7回( C言語第1回) 課題の回答
比較プログラム言語論 平成16年6月2日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
第2回 FLIP FLOP杯 どうしてこの大会をひらくのか? 大会の目的はなにか?.
質問-041-1( Oh社 開発部門 受講者様 ) 第3回 システム工学設計法講座
理論試験速報 理論問題部会長 鈴木 亨 先生 (筑波大学附属高等学校) にインタビュー.
練習問題アイテムバンクの開発研究 ~再生形式~
薬物乱用と健康 あなたはNOとはっきりいえますか・・・  .
自由席にしています。 資料のある席へお座りください.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
プログラミング 平成22年11月24日 森田 彦.
プログラミング 平成23年12月21日 森田 彦.
教育工学を始めよう ~研究テーマの選び方から論文の書き方まで~ (第1章)
ソフトウェア制作論 平成30年10月3日.
卒論の書き方: 参考文献について 2017年9月27日 小尻智子.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
新しいSNSの提案 島本 尋史.
心のバリアフリー研修 基本プログラム例C 00:00.
【班での話し合い方】 ①ふせんに書いていることを読みながら台紙にはる。 ②同じような考え同士グループ分けし、貼りなおす。
初回授業オリエンテーション 理科(生物) 大野 智久.
比較プログラム言語論 平成16年6月9日 森田 彦.
ゲームの秘密を探ろう 第1時 小学校 学年 ひみつ さぐ ぼくはミクシって いうんだ。 いっしょにゲームのことかんがえようね
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
日本の高校において、 英語の授業を英語で行うべきか?
東京工科大学 コンピュータサイエンス学部 亀田弘之
概要.
プログラミングⅠ 平成30年10月15日 森田 彦.
日本の高校における英語の授業は 英語がベストか?
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラミング 平成22年10月13日 森田 彦.
ダスキン サービスマスターの仕事 清潔で快適な環境づくりのお手伝い! 業務向け もっと たくさんある
資料「裁判例に見る体罰」を引用した 体罰事故防止研修 埼玉県教育委員会
自由席にしています。 資料のある席へお座りください.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
1日目 10:25 テキストp.◯ 【演習】 情報の収集とチームプレイの基本 -オリエンテーション- 松本 亜希子 障害者支援施設 虹の家.
プログラミング 平成24年11月13日 森田 彦.
プログラミング入門 電卓を作ろう・パートI!!.
比較プログラム言語論 平成16年6月16日 森田 彦.
プログラミング 平成24年10月9日 森田 彦.
専門ゼミ最終発表会ガイダンス 平成26年1月8日 森田 彦.
情報ネットワークと コミュニケーション 数学領域3回 山本・野地.
プログラミング 平成24年12月11日 森田 彦.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング 平成28年10月18日 森田 彦.
Presentation transcript:

比較プログラム言語論 平成17年6月15日 森田 彦

レポート(6/8)総括① Ⅴ 各論争への賛成(反対)意見の詳細はHP参照 Ⅰ Ⅳ Ⅲ Ⅱ < テーマ > <選択した論争の分布>  < テーマ >   講義で解説した、厳密文法派と自由文法派の論争Ⅰ~論争Ⅴの内、最も関心のあるものを一つ採り上げそのどちらを支持するかを答え、さらに、そう支持する理由を説明して下さい。 <選択した論争の分布> Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ 各論争への賛成(反対)意見の詳細はHP参照

レポート(6/8)総括② 論争別結果 厳密 自由 基礎か慣れか? 誤った理解?やる気喪失? 文法エラー 厳密、自由どちらが先? レポート(6/8)総括② 論争別結果 基礎か慣れか? 誤った理解?やる気喪失? 文法エラー 厳密 自由 厳密、自由どちらが先? 明瞭さ?簡潔さ?

レポート(6/8)総括③ 総合結果 厳密文法派 vs 自由文法派 (35%) 厳密文法 自由文法 (65%) ( )内は前回の値

自由文法派→厳密文法派へ 今までは自由文法派でしたが、厳密文法の方が初心者にはいいかもしれないと思ってきました。というのも、文法エラーが細かく出た方が初心者にはわかりやすいと思えたからです。私はJAVAでなれてきたので、自由文法でもエラーをどうにか見つけ、直すことができるようになりました。しかし、JAVAを使ったことのない友人は、エラーが出るたびにどこが間違っているか理解できず、やる気をなくしている状況でした。なので、エラーを指摘してくれる方が、初心者には使いやすいと思えてきました。 → 自分の経験から

論争Ⅱ 厳密文法派への意見① <厳密文法派Ⅱ-1(6/1)の意見> 論争Ⅱ 厳密文法派への意見① <厳密文法派Ⅱ-1(6/1)の意見> ・・・私がDelphiを支持する理由は、何事にも最初は厳しくした方がためになると思うからです。Delphiは記述が面倒・約束事が多いので、初学者は覚える気が無くなる人が多く出てしまうかもしれませんが、そんな基礎を面倒くさがって嫌になる時点でもうダメなのでは?結局Delphiから学ぶにしても、Javaから学ぶにしても、興味を持てない人が出てくると思うので、そこで興味を持てない人は何の言語から始めても無駄だと思います。そこはこの分野に向いていなかったということであきらめるとか…。すこし冷たい考え方だと思いますが、仕方ないのではないでしょうか。

論争Ⅱ 厳密文法派Ⅱ-1への意見 <賛成意見> <反対意見> 論争Ⅱ 厳密文法派Ⅱ-1への意見 <賛成意見> まさに同意で、大学生、ましてや二十歳を超えた人間が文法が厳しいからやる気が出ない、とはちょっとどうかと思います。 「興味を持てない人は何の言語から始めても無駄だと思います。」とありますが、これにもまた同意です。厳しいことを言うかもしれませんが、プログラミングに興味のない人はそもそも履修しなければ良いと思います。 <反対意見> そう簡単に見捨ててしまうのはどうだろう?まずは触れることからはじめ、徐々に使えるようになっていくかもしれない。いきなりそう可能性をつぶす考えはどうかと思う。

論争Ⅱ 厳密文法派への意見② <厳密文法派Ⅱ-2(6/1)の意見> 論争Ⅱ 厳密文法派への意見② <厳密文法派Ⅱ-2(6/1)の意見> 初心者にとって構文規則が厳密なものと比較的自由で融通の利くもののどちらがいいかということですが、構文規則の厳密なものからはじめるべきだと思います。これはプログラミング言語だけでなくほかのことでも、初めてやるものはまず基礎を徹底的に教えられて(自分で学んで)、その後に自分の型にあった方法を探していくものだと思うからです。 ただ、構文が厳密なものを徹底しておこなっていると、それに縛られて柔軟な発想を妨げる可能性も出てくると思うので、それがすべてだと思って学習をするということのないようにする必要があると思います。

厳密文法派Ⅱ-2への意見 <賛成意見> この人の意見を聞いてさらに視野が広がりました。なぜ私が厳密文法派にしたのかというと「自分のミスに気づかず間違ったまま理解をしてしまう危険性がある。」また「基礎の土台をしっかり確立させておけば、今後発展させたプログラムを組むことができる」と思ったからです。ただ、その私の意見は厳密文法だけに囚われた狭い意見だなということに気づきました。 この人は、自由文法派のことも考慮しています。「それに縛られて柔軟な発想を妨げる可能性も出てくる」や「それがすべてだと思って学習をするということのないようにする必要がある」という意見を聞いてなるほどなと納得しました。いろんな可能性を考えるなら、何かに囚われすぎないという大切なことに気づきました。

論争Ⅱ 厳密文法派への意見③ <厳密文法派Ⅱ-4(6/1)の意見> 論争Ⅱ 厳密文法派への意見③ <厳密文法派Ⅱ-4(6/1)の意見> 私は最初に学習するプログラミング言語として、Delphiのような文法が厳密でミスを未然に防ぐタイプの方がいいのではないかと思う。 理由は、最初にしっかりとした正しい記述を覚えるためにも、記述が厳しい言語から学習していったほうがいいと思うからである。最初に記述が厳しい言語を学んでいれば、しっかりとしたプログラミングの知識、基礎を自然と固めていくことができると思うし、それができた上でJava言語のような自由度が高く融通の利くタイプを学んでいけば、プログラミングをしっかりと理解できると思う。

厳密文法派Ⅱ-4への意見 <賛成意見> やはり、何事にも土台が必要だろう。その土台を初歩段階にやることによって、覚えるスピードも変わって行くだろう。自由度の高い融通の利くタイプのJava言語を学ぶのは、それからでも遅くはないだろう。 全くその通りだと思います。基礎をしっかり覚えないと「その場しのぎ」に終わってしまうし簡単な問題が解けても「ひねり」の問題が出てきたときに全く対応できないと思います。基礎をしっかり覚えておけば応用も考えて解くことができると思います。

自由文法派からの問いかけ-最初に身につけるべき基礎とは? 最初に基礎を学ぶという意見ですが、その基礎というのは具体的にはどのようなことなのか私にはよくわかりません。文法を厳しくする事が基礎なのか、又は、プログラミングの流れを学ぶ事が基礎なのか。私は、後者の方が基礎なのではないかと思います。 後で具体的に考察する。

論争Ⅱ 自由文法派への意見 <自由文法派Ⅱ-3(6/1)の意見> 文法チェックが緩い言語が良いと思います。 プログラミングを学ぶ第一歩として、プログラミングに慣れるということが大事だと考えます。 なぜなら、自分がプログラミングを学んだとき、「できた、なんとなくでもわかった」という喜びが進歩として実感できたからです。 Delphiのような敷居が高い言語は、プログラミングは難しい、つまらないというイメージをつけられるのでは、と考えられるからです。

自由文法派Ⅱ-3への意見① <賛成意見> 「プログラミングになれることが大事」、「なんとなくでもわかった、という喜びが進歩として実感できた」という意見に賛同できます。身につけるのに時間がかかってしまうかもしれないけど、そういうやり方のほうがモチベーションは保ってできると思います。 プログラムを初めて習う初心者は、プログラムの文法を覚えるよりも、まず実際にプログラムを動かしてみたいと思っているはずです。文法がわからなくても、とりあえずプログラムを実行して、「なんとなくできた。」という『実感』を得ることで、次のステップに進む意欲が出てくるのだと思います。最初から厳密な文法を習って基礎を固めることは、たしかに大切なことだと思いますが、その基礎を固めようとする『やる気』を持つことが、一番大切なことだと思います。

自由文法派Ⅱ-3への意見② <賛成意見> 賛同します。理由は、『「できた、なんとなく出もわかった」という喜び』というところです。私が思っていることは、プログラミングに限らず、上手になりたいのなら、まずはそれを好きになり、そしてそれをすることで、喜びを感じることができたのなら進歩する速さは普通にするときよりも格段に早いと思います。

自由文法派の類似意見 テーマとして考察 楽しさ・興味→意欲→理解へ!? まずは、本当にプログラミングの楽しさを知ることが一番に大切だと思います。・・・実行したときに、できてたときの快感がまたたまらないです。 少しでも早くプログラミングの面白さを知ってもらいたい・・・ まず興味をもつことが一番大事であると思いました。 まずはプログラムの記述が簡単な言語で、プログラミングを好きになる事が大切だと思うからです。そうする事によって、プログラミングをもっと理解できるようになろうという意欲がわいてくると思います。 テーマとして考察 楽しさ・興味→意欲→理解へ!?

厳密文法派からの反論 論争Ⅱ自由文法派の意見に反論します。確かに、Ⅱ-2にある「初心者はプログラミングがどういうものかを知るために学習するので厳密すぎると嫌になる」という意見はその通りだと思いますが、案外簡単に進むほど基礎部分の理解ができていないということもあると思います。ただ漠然とプログラミングに触れて慣れていくのではなく、どこがどうなって、どういう結果が得られるかをしっかりと理解するためにも、最初は厳密な文法のほうがいいのではないでしょうか。

ある自由文法派の意見(示唆) BASICを使って議論を深めてみよう・・・ 私は、自由文法でプログラミングになれるという意見に賛成です。なぜなら、最初に厳しいもので学ぶとつまらないものだと思ってしまうと思うからです。例えば、BASICという言語があります。今は、VBという形で多くの人が利用していると聞きました。このBASICは、初心者向けに作られた言語で、かなり自由度が高いと思います。最初に、BASICを作った人もこれからはじめる人は、最初は文法に融通が効くものの方がよいと思ったのでこの言語を作ったのではないかと思います。受け取り方は人それぞれだと思いますが、私は自由な方が理解しやすく、自分からステップアップしていけると思います。 BASICを使って議論を深めてみよう・・・

BASIC言語プログラム例 2 + 3.5 = 5.5 制約が少ない!→初心者向き? 10: A=2 20: B=3.5 30: C=A+B 文番号が必要  2 + 3.5 = 5.5 <実行結果> 10: A=2 20: B=3.5 30: C=A+B 40: print A,”+”,B,”=“,C 制約が少ない!→初心者向き?  変数宣言なし!  実数型、整数型の区別もなし!  思いつくままに書いてprintで答を出力すれば良い!

スパゲッティ・プログラム 思いつくままに、GOTO文を使ってプログラムを拡張。→ 迷路のようなプログラムに。 10: INPUT A 20: IF A>0 THEN 50 30: PRINT “正ではない” 40: GOTO 60 50: PRINT “正の数” 60: END 10: INPUT A 20: IF A>0 THEN 50 25: IF A=0 THEN 45 30: PRINT “負の数” 40: GOTO 60 45: PRINT “0である” 46: GOTO 60 50: PRINT “正の数” 60: END 思いつくままに、GOTO文を使ってプログラムを拡張。→  迷路のようなプログラムに。

BASICの長所・短所 長所 短所 皆はBASICをどう評価しますか? 文法上の制約が少ない→初心者にも抵抗が少ない。 インタプリタなので、とにかく実行できる。 思いつくままに記述できる。 変数型の概念など、プログラミング上の基本概念が身に付きにくい。 誤った結果を得た場合の原因の解析が困難。 迷路のような見通しの悪いプログラムになりやすい。 皆はBASICをどう評価しますか?

プログラミングを教える側の配慮の必要性の指摘 自由文法言語の場合 プログラミングを教える側の配慮の必要性の指摘 自由文法言語の場合 (自由文法派6/1の意見) ・・・『初めて学習するプログラミング言語』は記述の自由度が高く融通が利くタイプだと思う。 ただ、このタイプだと教える側がいるなら、教える側が多少意地悪する必要があるのかもしれない。さりげなく失敗に仕向ける為に。 (厳密文法派6/8の意見)  ・・・全体的には、厳密文法派の方に支持を置くが、自分が教える側に立ったとき、(効果的に)教えるためには間違いの機会を与え、間違いを自分で発見してもらい、その前向きの力をバネに頑張ってもらうというのも理想な形なのかもしれない。こういった意味では、自由文法派の考えも否めないだろう。

プログラミングを教える側の配慮の必要性の指摘 厳密文法言語の場合 プログラミングを教える側の配慮の必要性の指摘 厳密文法言語の場合 (厳密文法派6/1の意見) ・・・構文規則の厳密なものからはじめるべきだと思います。・・・ ただ、構文が厳密なものを徹底しておこなっていると、それに縛られて柔軟な発想を妨げる可能性も出てくると思うので、それがすべてだと思って学習をするということのないようにする必要があると思います。 (自由文法派6/8の意見)  ・・・初心者には、簡単な言語と難しい言語があるということを伝えてから学習するべきだと思います。

テーマ1 あなたの友人で、「これからプログラミングを学習してみたい」という人がいたとします。あなたは、その友人にDelphiとBASICのいずれを勧めますか?これまでの議論を踏まえて、いずれを勧めるかを回答し、その理由(あなたの考え)を記述して下さい。  ※ どういう点(要素)をあなたが最優先とするか、という点がポイントになるはずです。

プログラミングの上達には?自由文法派の考え まずはそれを好きになり、そしてそれをすることで、喜びを感じることができたのなら進歩する速さは普通にするときよりも格段に早くなる・・・ まずは、本当にプログラミングの楽しさを知ることが一番に大切だと思います。・・・実行したときに、できてたときの快感がまたたまらないです。 少しでも早くプログラミングの面白さを知ってもらいたい・・・ まず興味をもつことが一番大事であると思いました。 まずはプログラムの記述が簡単な言語で、プログラミングを好きになる事が大切だと思うからです。そうする事によって、プログラミングをもっと理解できるようになろうという意欲がわいてくると思います。 楽しさ・興味→意欲→理解へ!?

テーマ2 理解が先?楽しさが先? <疑問> 皆の場合はどちらでしたか? テーマ2 理解が先?楽しさが先? <疑問> プログラミング演習の楽しさと理解度の相関をみると、楽しいと感ずる人ほど、理解度は高くなっています。 楽しいから理解できるようになったのか、あるいは理解できるから楽しくなったのか、どっちなのでしょうか? 皆の場合はどちらでしたか?

第9回目レポートテーマ テーマ1    あなたの友人で、「これからプログラミングを学習してみたい」という人がいたとします。あなたは、その友人にDelphiとBASICのいずれを勧めますか?これまでの議論を踏まえて、いずれを勧めるかを回答し、その理由(あなたの考え)を記述して下さい。 テーマ2   理解度と楽しさの相関について、あなたは「楽しいから理解度が上がる」と思いますか?それとも「理解できたから楽しくなる」と考えますか?回答と共にそう思う理由を、あなたのプログラミング演習での体験に基づいて答えて下さい。

第9回目レポート 上の2つのテーマについていつもと同じ要領でレポート提出して下さい。 なお、上の記述を行った上で、他のレポートへの意見等を付加しても結構です。 提出先:hiko@edu.sgu.ac.jp  件名:「学籍番号(半角)+半角空白+氏名」を記入して下さい。    例) s03xxxx 学院太郎

厳密文法派 自由文法派 Ⅰ.文法エラーが細かく出た方が初学者向き Ⅰ.文法エラーはあまり出ない方が初学者向き Ⅱ.最初に基礎をきちんと身に付けた方が良い Ⅱ.最初はプログラミングに慣れることが大切 Ⅲ.自由度の高い文法で学習すると誤った理解のまま進行するのでは? Ⅲ.あまり厳密だとやる気がなくなるのでは? Ⅳ.記述(の意味)が明瞭な方が理解しやすい Ⅳ.記述が簡潔な方が理解しやすい Ⅴ.厳密文法→自由文法へ Ⅴ.自由文法→厳密文法へ