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

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

プログラミング 平成25年10月29日 森田 彦.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
Takashi Taniguchi (谷口貴志)
プログラミング 平成25年12月3日 森田 彦.
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
比較プログラム言語論 平成16年6月30日 森田 彦.
1日目 10:25 【演習】 情報の収集とチームプレイの基本 -オリエンテーション- 松本 亜希子 障害者支援施設 虹の家.
情報基礎演習I(プログラミング) 5月25日 水曜5限 江草由佳
数値計算及び実習 第3回 プログラミングの基礎(1).
プログラミング 平成24年10月23日 森田 彦.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
クイズ 「インターネットを使う前に」 ネチケット(情報モラル)について学ぼう.
●レポートを書くこと→主張の根拠を示して、他の人を説得するため ●最初から順に読んで分かるように書く ●
認知カウンセリング 学習意欲改善に対する可能性.
森田 衛 国際交流基金 釜山日本語教育室 2014年 大邱中等日本語教育研究会研修会 2014年5月27日 大邱グローバル教育センター
情報科学1(G1) 2016年度.
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
比較プログラム言語論 平成16年6月2日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
質問-041-1( Oh社 開発部門 受講者様 ) 第3回 システム工学設計法講座
比較プログラム言語論 平成17年6月15日 森田 彦.
オブジェクト指向基礎学習Ⅰ ~オブジェクト指向へ至る背景~
プログラミング 平成23年12月21日 森田 彦.
プログラミング入門 電卓を作ろう・パートIV!!.
ソフトウェア制作論 平成30年10月3日.
心のバリアフリー研修 基本プログラム例C 00:00.
徹底活用するための校内研修パッケージ これから、「子どもの学びを支えるヒント集2」を活用した校内研修を始めます。
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
初回授業オリエンテーション 理科(生物) 大野 智久.
比較プログラム言語論 平成16年6月9日 森田 彦.
VBで始めるプログラミング こんにちは、世界。 /28 NARC.
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
第4回目「これからの生涯学習推進の方向を探る」
黒はいや!   白のパンダにして!.
ソフトウェア制作論 平成30年10月10日.
薬剤師ができること、 思いを明確にしていく ~鈴木信行~
●●先生 ●●先生●●先生 本日は、ありがとうございます。 下記の表のご自分のお名前が書かれた グループ名のテーブルにお座りください。
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラミング 平成22年10月13日 森田 彦.
制御文の役割と種類 IF文 論理式と関係演算子 GO TO文
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
本日のスケジュール 14:45~15:30 講義 15:30~16:15 企画書レビューシート記入 16:15~16:30 休憩
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
1日目 10:25 テキストp.◯ 【演習】 情報の収集とチームプレイの基本 -オリエンテーション- 松本 亜希子 障害者支援施設 虹の家.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
プログラミング入門 電卓を作ろう・パートI!!.
ワークシート 中学生向け Q1 Q2 Q3 Q4 Q5 自然・環境 サンゴは海の中でどんな役割を担っていますか?
比較プログラム言語論 平成16年6月16日 森田 彦.
プログラミング 平成24年10月9日 森田 彦.
プログラミングⅠ 平成30年12月10日 森田 彦.
自然言語処理2015 Natural Language Processing 2015
栗原正純 UEC Tokyo 電気通信大学 情報通信工学科 2007/5/2(修正2008/08/21)
専門ゼミ最終発表会ガイダンス 平成26年1月8日 森田 彦.
プログラミング基礎演習 第4回.
日本の大学における Critical Thinking 調査・研究
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
コンパイラ 2012年10月11日
プログラミング 平成24年12月11日 森田 彦.
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
自然言語処理2016 Natural Language Processing 2016
情報処理Ⅱ 2005年11月25日(金).
映像を用いた 「からだ気づき」実習教材の開発
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング 平成28年10月18日 森田 彦.
Presentation transcript:

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

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

テーマ1 回答結果 Delphi BASIC その他 Delphi派とBASIC派がちょうど半々!

テーマ1 勧める理由の整理 Delphi派 BASIC派 BASICでは欠点が多すぎるのでは・・・ テーマ1 勧める理由の整理 Delphi派 BASIC派 最初に基礎を身につけることが重要だから ミスの原因が分かりやすい方が良いから その後の発展性を考えるとDelphiの方が良いから BASICでは欠点が多すぎるのでは・・・ Delphiを勧めるが、学習者の意欲や性格によってはBASICも・・・ 最初のハードルを低くし抵抗感なく学習してもらいたいから まずはプログラミングの楽しさを知ることが大切だから とにかく実行できることが(初学者には)大切だから プログラミングの大まかな概念をつかみやすいから 自主的に自分の考えで学習するようになるから

論争を振り返って・・・ 今後、(皆が)プログラミング経験者として意見を求められた時に、ここでの意見交換を参考にしてください。 プログラミング言語を特徴づける視点として、文法の厳密さを採り上げた。 厳密文法と自由文法それぞれの長所と短所を考察した。 それぞれの代表例として、最終的にDelphiおよびBASICを採り上げ、初学者にどちらを勧めるかを考察してもらった結果・・・、回答結果は、ちょうど半々だった。 これは、どちらの長所を重視するか(あるいはどちらの短所を憂慮するか)、という点で意見が分かれる、ということを意味している。 しかし、単なる意見対立ではなく、お互いの長所と短所を理解した上での意見交換が大半を占めている点が重要。 今後、(皆が)プログラミング経験者として意見を求められた時に、ここでの意見交換を参考にしてください。

補足 BASICのメリットをもっと進めると・・・? 最初はプログラミングを「学ぶ」というより「遊ぶ」という感覚でやってみたらよいと思いました。(Delphi派) BASICは・・・十分プログラミングの楽しさを伝えられると思います。(Delphi派) 文法上の制約が少なく初心者にも抵抗が少ないという点が大事・・・(BASIC派 以下同じ) 意外とプログラミングというものは簡単なものであるということを教えてあげたい・・・ 始めは基本概念うんぬんよりもまず自分の思いどおりにやってみて、実行できるのが一番だと思います。 ポイントはやらされるのではなく、自分で考えて失敗して理解していくというところにあります。 これらのメリットを追求した言語としてLOGOがある。

参考 児童教育用言語LOGO 1967年 MIT(マサチューセッツ工科大学)のシーモア・パパート教授グループによって開発 -制約の少ない言語で創造性を高める教育を行う例ー 1967年 MIT(マサチューセッツ工科大学)のシーモア・パパート教授グループによって開発 児童教育用ツールとして開発 特徴:コンピュータとの対話形式でプログラミングできる。 例:タートルグラフィックス REPEAT 4 [FORWARD 100 RIGHT 90] <正方形を描くプログラムの例> (100歩進んで90度右に曲がることを4回繰り返す)

LOGOの効用 子どもたちは、LOGOを用いて様々な概念を獲得。→遊びの要素(楽しみながらやる要素)が重要 発想や想像力を発展させるツール(道具)として有効。 コンピュータを(自分の考えで)動作させるので、コンピュータに対する抵抗がなくなる。→やらされるものではなく、自分が動作させるものだという(能動的)意識が自然に身に付く。 日本でも小中学校で導入の実績あり→パソコンに関する導入教育の可能性を広げる!?

テーマ2 回答結果 理解が先 楽しさが先 「理解が先」が2/3を占める。

テーマ2 論点の整理 詳細はHP参照 「理解が先」派 「楽しさが先」派 経験上、理解度が高まるにつれて楽しくなってきた テーマ2 論点の整理 詳細はHP参照 「理解が先」派 「楽しさが先」派 経験上、理解度が高まるにつれて楽しくなってきた 自分の考えで動作させた時の達成感が楽しさにつながる 理解できると意欲がわき楽しくなる 「理解する→楽しくなる→さらに理解度が上がる」と循環しているのでは? 始めから楽しいと言うことは(そもそも)ないのでは? 経験上、プログラミングを楽しめることが理解度向上につながった プログラムが動作する楽しさが理解度向上につながる 楽しいと興味・意欲が湧いて理解度向上につながる 「楽しい→理解度が上がる→さらに楽しくなる」と循環しているのでは? まずは楽しまないと理解する気にもならないのでは?

FORTRANにみる言語構成要素の発展 FORTRANの起源および発展の概観 分岐処理の記述の発展 繰り返し処理の記述の発展 <本日の講義テーマ> FORTRANにみる言語構成要素の発展 <内容> FORTRANの起源および発展の概観 分岐処理の記述の発展 繰り返し処理の記述の発展 FORTRAN発展の方向性と現状

FORTRANの起源 ALGOL60プロジェクト以前! 1954年、IBM社バッカス(Backus)らにより開発開始 当初はIBM Mathematical FORmula TRANslating System と命名 →FORTRAN その性能や設計内容が高く評価される。 ALGOL60プロジェクト以前! FORTRANは進化し続けている。

FORTRANの発展① 原型 ー 型宣言のない世界 <プログラム例> 1234567890 ----------------------------------------- A=3.5 B=1.5 J=(A+B)/2 WRITE(6,100) A,B,J 100 FORMAT(2F4.1,I3) STOP END プログラムは7~72列の間に記述する。 12345678901 -------------------------- 3. 5 1. 5 2 <実行結果> I,J,K,・・・,Nで始まる変数:整数型 それ以外          :実数型 きわめて簡単な文法規則! 数式を書く様にプログラムを書ける!

FORTRANの発展② 副プログラムの導入 SUBROUTINE HEIKIN(A,B,C) C=(A+B)/2 RETURN END 1234567890 ---------------------------------------------- A=3.5 B=1.5 CALL HEIKIN(A,B,C) WRITE(6,100) A,B,C 100 FORMAT(2F4.1,F5.2) STOP END 1234567890123 -------------------------- 3. 5 1. 5 2. 5 <実行結果> プログラムの見通しが良くなる。

FORTRANの発展③ 型宣言の導入 1962年、FORTRANⅣ発表→型宣言を導入 <暗黙の型宣言> ALGOL60プロジェクトの影響 1234567890 -------------------------------------------- REAL A,B INTEGER J A=3.5 B=1.5 J=(A+B)/2 WRITE(6,100) A,B,J 100 FORMAT(2F4.1,I3) STOP END 1234567890 ------------------------------------------ A=3.5   これもOK B=1.5 J=(A+B)/2 WRITE(6,100) A,B,J 100 FORMAT(2F4.1,I3) STOP END I,J,K,・・・,Nで始まる変数:整数型 それ以外          :実数型 <暗黙の型宣言> ALGOL60プロジェクトの影響

FORTRANの発展④ 文字列型の導入 1978年、FORTRAN77発表→文字列型の導入 <実行結果> 1234567890 -------------------------------------------- REAL A,B INTEGER J CHARACTER MOJI*7 MOJI=‘Result:’ A=3.5 B=1.5 J=(A+B)/2 WRITE(6,100) MOJI,A,B,J 100 FORMAT(A,2F4.1,I3) STOP END 1234567890123456789 -------------------------------- Result : 3. 5 1. 5 2 <実行結果>

分岐処理の記述の発展① IF と GO TO の世界 分岐処理の表現(初期) プログラムの見通しが良くない! テストの得点を入力し、50点以上なら「合格」、50点未満なら「不合格」と表示するプログラム IF と GO TO の世界 INTEGER TEN READ(5,*) TEN IF(TEN.GE.50) GO TO 10 WRITE(6,*) ‘不合格’ GO TO 20 10 WRITE(6,*) ‘合格’ 20 STOP END 始め Tenの入力 Ten≧50 No Yes ‘合格’と表示 ‘不合格’と表示 終り プログラムの見通しが良くない!

分岐処理の記述の発展② 分岐処理の表現(改良) 無駄な文番号を排除→ GO TO文を排除 テストの得点を入力し、50点以上なら「合格」、50点未満なら「不合格」と表示するプログラム IF THEN~ ELSE~ END IF 文の導入 INTEGER TEN READ(5,*) TEN IF(TEN.GE.50) THEN WRITE(6,*) ‘合格’ ELSE WRITE(6,*) ‘不合格’ END IF STOP END 始め Tenの入力 Ten≧50 No Yes ‘合格’と表示 ‘不合格’と表示 終り 無駄な文番号を排除→ GO TO文を排除

繰り返し処理の記述の発展① 繰り返し処理の表現(初期) IF と GO TO の世界 プログラムの見通しが良くない 1~Nまでの和を求める。 INTEGER N,SUM,I READ(5,*) N SUM=0 I=1 10 CONTINUE IF(I.GT.N) GO TO 20 SUM=SUM+I I=I+1 GO TO 10 20 CONTINUE STOP END I≦N Nの入力 始め 終り No Yes SUM←0 SUM←SUM+i i ← i+1 I ← 1 プログラムの見通しが良くない

繰り返し処理の記述の発展② 繰り返し処理の表現(改良) DO文 の導入 さらに・・・ DO文の導入→GO TO文の排除 1~Nまでの和を求める。 DO文 の導入 INTEGER N,SUM,I READ(5,*) N SUM=0 DO 10 I=1,N SUM=SUM+I 10 CONTINUE STOP END I≦N Nの入力 始め 終り No Yes SUM←0 SUM←SUM+i i ← i+1 I ← 1 INTEGER N,SUM,I READ(5,*) N SUM=0 DO I=1,N SUM=SUM+I END DO STOP END さらに・・・ DO文の導入→GO TO文の排除 プログラムの見通しが良くなる

FORTRAN発展の方向性とは? 型宣言の導入→ALGOL60プロジェクトの影響!? IF THEN~ELSE~END IF文 および DO文の導入 → 構造化プログラミング(運動)の影響 FORTRANの(現在の)普及度は・・・ ユーザは、科学技術計算を行う、研究者および技術者に限定されている。→ソフトウェア資産が多いため、今後もしばらく存続・発展する。

第10回目レポート 本日の講義で、あなたが最も興味を持った点はどのような点ですか?講義の全体的な感想と共に、できる限り具体的に、200字~400字程度で記述して下さい。 なお、上の記述を行った上で、HP上の前回のレポートを読んでそれに対するコメント(意見や感想)を付加しても結構です。 提出先:hiko@edu.sgu.ac.jp  件名:「学籍番号(半角)+半角空白+氏名」を記入して下さい。    例) s03xxxx 学院太郎

Delphi派 Ⅰ.最初に基礎を身につけることが重要だから 最初にある程度厳しく教えて、その後に自由なプログラミングの世界に解き放ってあげた方が様々なプログラム言語にとっつきやすくなるのではないか。

Delphi派 Ⅱ.ミスの原因が分かりやすい方が良いから どちらかを薦めるならDelphiです。BASICは文法の制約が少なかったり、思いつくまま記述ができるのですが、間違ったときに原因がわかりずらければ学んでいくうえで身につきにくいのではないかと思う。間違いをある程度、自分で見つけられそれを修復していく作業がなければ成長しないと思うからです。面白さを感じにくいかもしれないけど自分で進めていけるようになれば楽しさは後からついてくるものだと思う。やはり基本をしっかりと学べる方がよいのではないかと思う。

Delphi派 Ⅲ.その後の発展性を考えるとDelphiの方が良いから その1 僕は厳密文法を支持してきました。どんなことでも基礎が重要だと思うからです。初心者に勧めるのであればDelphiです。Delphiは厳密で事前に設計しなくてはいけないという弱点があります。BASICであれば思いつくままに記述できます。しかしこの事前の設計こそがあとあと理解するのに役に立てることができるでしょう。 見通しを持ってプログラムを組む事が、プログラミング上達の最重要ポイント!

Delphi派 Ⅲ.その後の発展性を考えるとDelphiの方が良いから その2(BASIC経験者より) 私自身は「発想の実現化」が高いことが重要だと思います。BASICは確かに見てわかりますし、制約もほとんどありません。が、高度なものを作ろうと思えば思うほどわけがわからなくなり、正直作ってるときよくても後からバージョンアップとか修正とかやる気も起きません。そこで、発想は終わりです。・・・(中略)ところが、Delphiなら制約は多くなりますが「娯楽プログラム」から「高度なアプリケーション」まで勉強さえすれば作れますし、・・・どこで何が起こせるのか明確に分かるので、バージョンアップや修正も(BASICに比べれば)比較的容易です。そして、どんどん発想が拡張していっても、そんなに億劫にならずにプログラミングができ、発想が実現化しやすいと思います。 再利用性は、いいプログラムのポイント!

Delphi派 Ⅳ.BASICでは欠点が多すぎるのでは・・・

Delphi派 Ⅴ.Delphiを勧めるが、学習者の意欲や性格によってはBASICも・・・ もしその人が「プログラミングを学びたい」という本格的な意欲があるなら、構文がしっかりしているDelphiを勧めます。 そしてそれからもっとプログラミングを簡単に作れる言語もあるとJavaを勧めると思います。 また、逆にかるくプログラミングに興味があって、簡単なプログラミングしか作らないとかあまり本格的に学ぶつもりがないなら、BASICを勧めます。BASICはプログラム記述が進むにつれ順序がバラバラになってみにくい言語ですが、簡単なプログラミングしかつくらないのであれば初心者向けに記述も簡単なのであの程度の言語で十分プログラミングの楽しさを伝えられると思います。

BASIC派 Ⅰ.最初のハードルを低くし抵抗感なく学習してもらいたいから なぜ、BASICかというと、文法上の制約が少なく初心者にも抵抗が少ないという点が大事だと思ったからです。・・・(中略)私はプログラミングの敷居を高くしたくありません。どんな人にも触ってもらいたいし、・・・(中略)プログラミングがどのようなものなのかを最初に知ってもらううえで初心者にも抵抗ないというBASICの長所を推したいと思います。 私は間違いなくBASICを薦めると思います。やはり、初めての取り組みに対してプログラミングの可能性というものを潰したくないからです。私は興味を持てる環境を人に提供すると思います。それは意外とプログラミングというものは簡単なものであるということを教えてあげたいだけです。

BASIC派 Ⅱ.まずはプログラミングの楽しさを知ることが大切だから この講義を受けている中で、「Delphiは難しく、理解しづらい」というイメージが私の中で出来上がってしまっています。なので、友人のような初学者にはできるだけ理解のしやすい言語から学んでもらい「プログラミングは楽しい」ということを一番初めに知ってもらいたいです。 僕はBASICを勧めたいと思う。しかし、完全に独学ならばあまり勧めたくない。ある程度のところまで誰かが導くならばという条件付である。 なぜならば、完全な独学だとBASICの短所を思いっきり踏むと思うからだ。・・・(中略)BASICは指導者がいればこそ学習に使える言語だと思う。 そして、指導者がいるならばこの言語はプログラミング言語の楽しさを知るにはなかなかいい言語なのではないだろうか、と思う。

BASIC派 Ⅲ.とにかく実行できることが(初学者には)大切だから その1 参考意見 私ならまずBASICを勧めます。 理由は、プログラムの実行まで簡単に到達できるからです。どんなに簡単なプログラムであろうと、実行さえできればプログラミングの楽しさを味わうことができると思います。また、変数宣言や型などの基本概念が身に付きにくいと思いますが、基礎中の基礎である「変数への代入」という考え方はBASICで十分理解できるはずです。ただ、BASICのままプログラミングを続けていくとBASICの欠点(スパゲッティ等)の存在が大きくなっていくと思うので、ある程度慣れたらDelphiなどの言語に移ればよいと思います。 始めは基本概念うんぬんよりもまず自分の思いどおりにやってみて、実行できるのが一番だと思います。

BASIC派 Ⅲ.とにかく実行できることが(初学者には)大切だから その2(BASIC経験者より) これからプログラミングの学習をしたいという人には、はじめの内はBASICを勧めると思います。私は初めてプログラミングに触れた時に使った言語はBASICでしたが、スムーズに意味が理解でき、ある程度の英語力があれば初心者にも抵抗なく学習できる所がBASICの利点であって、これからプログラミングを学習する人にはまずプログラムを実行できる喜びを一番に感じてもらいたいからです。ただBASICは、あまりにも記述が自由すぎるし変数型の宣言がないなど、BASICで慣れてしまうと後々のプログラミング学習に身に付きにくくなってしまうと思うので、BASICはせいぜい数週間程度の学習でいいと思います。

BASIC派 Ⅳ.プログラミングの大まかな概念をつかみやすいから DelphiとBASICのどちらかを勧めるとしたら、BASICだと思います。文法上の制約が少なく、思いつくままに記述できるという長所から、プログラミングとはどういったものなのかという、雰囲気を掴みやすいと思ったからです。しかし、ある程度わかってくると、プログラミング上の基本概念が身につきにくい・見直しをしようと思っても迷路のようになっていて困難になるなど障害が出てくるかと思います。その点Delphiは基本的な文法を覚えてしまえば、あとはむしろBASICよりも学んで行き易いかも知れません。ですから実際に勧める場合、私はBASICを勧めつつも、2つの言語の短所・長所を伝えて本人に選んでもらうことになると思います。

BASIC派 Ⅴ.自主的に自分の考えで学習するようになるから あくまでも初心者の人に勧めるのであれば、BASICです。自分がプログラムを学んだ時に一番嫌になるのが、・・・(中略)プログラムを教科書通りに打ち込んではいるが何をしているのかわからないためにそのエラーの意味を理解出来ない時。つまり、やらされているので内容も理解出来ないので楽しくないと思います。BASICには制約が少ないので初心者の人が自由に打ち込むことができる。自由ということは考えなければならなので、結果的にぐちゃぐちゃになってしまっても、それは自分で考えたプログラムなので内容は理解しているということが、今後につながり興味をもつことができるのではないか。ポイントはやらされるのではなく、自分で考えて失敗して理解していくというところにあります。 自分の考えでコンピュータが動作したという充実感が初学者には重要との指摘→当を得た指摘!

タートルグラフィックス 正方形完成! FORWARD 100 RIGHT 90 FORWARD 100 RIGHT 90 REPEAT 4 [FORWARD 100 RIGHT 90] <一度に正方形を描ける>

対照的な意見(テーマ2のレポートより)-「理解が先」派- 昨年の自身の経験からも、「わからないけど動いたから楽しい」と思ったことはなく、「自分がしっかり理解でき、正しく動作した」から楽しかったと思います。また、現在SAをやっているのですが、自分の受け持っている後輩たちは理解できてはいないけど楽しいということはほとんどないようです。逆に最初のうちは理解できなかったけど、最近少しわかるようになって少しずつ楽しくなってきたという学生もいました。