高知大学 教育学部 科学技術教育コース 赤松 直 北川 晃 科学技術教育総合演習IV 高知大学 教育学部 科学技術教育コース 赤松 直 北川 晃
この講義で扱う内容 地学(および物理学)のテーマに関する教材の作成 Visual Basicを用いたシミュレーションアプリの開発 Visual Studio 2017のセットアップ Visual Basicの文法事項の復習 Visual Basicを用いたグラフィック 様々な物理現象の シミュレーションアプリの作成 個人ごとの課題作成 プレゼン資料の作成,発表 電子黒板とタブレット(スマホ)の連携 成績評価 出席状況,授業態度,課題提出などを 総合的に判断して判定する 定期試験は実施しない予定
Visual Studio 2017のインストール https://www.visualstudio.com/ja/vs/community/
Visual Studio 2017のインストール(続き) インストールするコンポーネントにチェックを入れて「インストール」
Visual Studio 2017のインストール(続き) ダウンロードしながらセットアップが進む.
Visual Studio 2017の起動 初回起動時に,Microsoftアカウントでのサインインが促される. サインインしないと,一月後に起動できなくなる.
ネットワークにつながっていない機器は価値が半減 情報化社会とネットワーク 現代は情報化社会といわれる コンピュータ スマートフォン,携帯電話 据え置き型および携帯ゲーム機 テレビ 無線,光ファイバ網を通じて接続 ネットワークにつながっていない機器は価値が半減 ネットワークを通じて,様々な情報にアクセスできる 技術的にできることは何でもしてよい? 外部から第三者が自分のコンピュータへ侵入することも可能 セキュリティ対策の重要性
世界を席巻するSNS SNS(Social Networking Service)は第五の権力 ソーシャル =人間関係 立法 行政 司法 (責任者がいる) マスコミ エリック・シュミット (元Google CEO) SNS 非常に大きな影響力を持ちうる! フェイスブック Google+ ツイッター LINE … アラブの春 スマホ依存症 バイトテロ 災害時における有用性 ソーシャル 誰でもアカウントを無料で取得して利用できる 実名制のものと匿名で参加できるものがある 企業の宣伝用のアカウントの作成を奨励 =人間関係
学校現場におけるICT教育・活用 I C T … Information (情報) … Communication (通信) … Technology (技術) 単純に教科書,板書をタブレットに 置き換えれば,教育効果は上がる? 電子黒板,タブレットなどを用いた授業 情報機器の基本的な操作方法 情報機器の利用に当たってのマナー,モラル教育 ICT機器を用いた業務負担の軽減(成績評価,文書作成) クラブ活動など,課外活動での利用 ✔ ✔
学校現場における活用例 成績評価(クラス分け) 定期試験のデータ処理(平均点,偏差値など) 文書の作成(授業資料,試験問題,連絡プリントなど) 会計処理 名簿,年間行事予定表などの作成 運動系クラブ(陸上,水泳など)でのタイム集計 進路指導(進学先最新案内,過去問などの入手) 表彰状 情報機器に長けた先生は格好いい!?
スマートフォンがあればパソコンはいらない!? 1980年代 現在 基本的には趣味の道具 必要な機能をプログラミングする コンピュータ一台だけで完結 日常生活,仕事に必要不可欠なツール 必要なアプリをダウンロードして使う ネットワークにつながっていることが必須 最近のスマートフォンはメール,Web閲覧,写真,動画など,何でもこなすように思えるが… それでもパソコンは必要!? スマートフォンは,既存のアプリを消費するための道具 文書作成,プレゼン用資料など,パソコンでなければできないことも多い 2020年~,小学校でプログラミング学習の必修化
日常生活におけるプログラム 入学式,卒業式のプログラム 結婚式の式次第 電車やバスの時刻表 教育に関する計画(教育プログラム) プログラミングのイメージは… 覚えることが多くて難しそう キーボードでたくさん入力する必要がある 理系だけがこなせる達人技!? 日常生活のいたる所で現れる概念 でも,そもそも「プログラム」とは… 入学式,卒業式のプログラム 結婚式の式次第 電車やバスの時刻表 教育に関する計画(教育プログラム) テレビ番組(英語で’TV program’) 壮大な計画(アポロ計画,’Apollo program’)
プログラムとは 順序立てられている あらかじめ作られている 何らかのタイミングでとるべき行動が決められている プログラムに共通することは… プログラムの語源は,ギリシャ語の’προγραμμα’,「公に書かれたもの」という意味 法令 宗教的儀式 哲学 その他人々をコントロールするためのルール 本来コンピュータとは関係のない概念 手順を正確に記した文書
死角となるタイミングをなくすための余地(バッファ)を設ける 現実社会でのプログラムの例その1 長篠の戦い(織田信長の鉄砲隊が,当時無敵といわれた武田信玄の騎馬軍団を撃破) 機動力があり,高所から攻撃できる騎馬兵が圧倒的有利 当時の鉄砲は①筒の掃除,②火薬と弾薬を詰める,③撃つ,の手順が必要 死角となるタイミングをなくすための余地(バッファ)を設ける そこで信長が取った戦術は… 鉄砲隊を三列に分ける 一列目が発砲すると,すぐさま後ろに下がる 二列目はいつでも発砲できる体制を維持 三列目は発砲の準備 適切なプログラミングのおかげで,絶大な戦果を挙げることができた!!
現実社会でのプログラムの例その2 アルゴリズム データ プログラム 適切な材料とレシピがあれば,誰でもおいしい料理を作ることができる(はず) 料理とプログラムの類似性 アルゴリズム 例:ハムエッグ 【材料】 サラダ油 適量 卵 一個 ハム 1~2枚 水 50cc 【料理手順】 強火で熱したフライパンにサラダ油を入れる フライパンが十分に温まったら,ハムを入れる 卵を低い位置から割ってハムの上に載せる 水を50ccフライパンに入れ,すぐにフタをする 中火で熱し,黄身が白くなったら火を止めてできあがり =レシピ データ プログラム 適切な材料とレシピがあれば,誰でもおいしい料理を作ることができる(はず)
プログラムの基本構造 アルゴリズム:問題を効率よく解決するための手順 プログラミング:アルゴリズムを具体的な作業手順として書き下す フライパンを 火にかける フライパンは十分 温まったか? フライパンを熱する ループ ループ終わり ハムを入れる 卵を割り入れる Yes No アルゴリズム:問題を効率よく解決するための手順 プログラミング:アルゴリズムを具体的な作業手順として書き下す プログラムの三大要素 流れ図 (フローチャート) 逐次処理 …順番に命令をこなす 分岐 …条件を満たすか否かで処理を変える 繰り返し …同じ作業を規定回数繰り返す 一つ一つの作業はごく単純なもの 誰が操作しても再現できるよう,具体的なステップに分ける 各ステップを適切につなげる 操作する人は,正確にそれぞれの作業をこなす
コンピュータを用いたプログラミング コンピュータは0と1とだけで書かれた機械語(マシン語)しか理解できない コンピュータは単純な作業が得意 それぞれの作業をものすごい速さで正確にこなす 何万回繰り返しをさせても文句は言わない プログラミングはコンピュータに向いている コンピュータは0と1とだけで書かれた機械語(マシン語)しか理解できない 人間が理解しやすい(英語に似せた)プログラミング言語が必要 コンパイラを用いて,プログラムを機械語に翻訳する C言語 Java Python Visual Basic HTML Fortran さまざまなプログラミング言語があり,それぞれ特徴がある
視覚的なプログラミング言語 プログラミング言語を操るためには,一般的に文法(命令,ルール)を覚えなければならないが… MITで開発されたSCRATCH 無償でダウンロードして使うことができる ブロックを組み立てるだけで プログラミングができる 本格的なプログラミングには向かないが, プログラミングの導入用 プログラミングになれたら,より本格的な 言語を勉強する
プログラミングを学習する利点 バグ(プログラム上の誤り) のないプログラムはない プログラムは思った通りに動かない 書いたとおりに動くのだ プログラミング言語には冗長性はない(誰が見ても唯一の解釈しかできない) プログラムに一箇所でも論理的に誤りがあると,コンピュータは止まる(融通が利かない) 誤り箇所を訂正して(デバッグ),プログラムが動作するようにする バグ(プログラム上の誤り) のないプログラムはない プログラムは思った通りに動かない 書いたとおりに動くのだ 問題を論理的に解決する能力が身につく 問題を効率的に解決する能力が身につく 問題が解けるまで根気よく頑張る力が身につく コンピュータに創造的な仕事をさせられる
参考文献
参考書
計算機(コンピュータ)を用いて,効率的に問題を解決する. 情報処理を学ぶ意義 理工系において… 数学を用いて 方程式を解く 実験を行い, データを取る 手で解けない問題も多い 膨大なデータを,素早く整理したい 例: の解を求めよ. 例:1000個以上あるデータを, 小さい順に並べ替えよ. 計算機(コンピュータ)を用いて,効率的に問題を解決する. ユーザーの指示により,動作する(自発的には動かない). 機械は繰り返しなど,単純操作は得意. 用途に合わせて,最適な方法を適用する.
アルゴリズム 数学,コンピューティング, 言語学などの分野におい て,問題を解くための効 率的手順を定式化した形 で表現したもの. 流れ図,フローチャート
プログラム コンピュータの行う処理(演算,動作,通信,等)の手 順を指示したもの 上底A,下底B,高さHの 台形の面積Sを求める Sub Main() Dim a, b, h, s As Single Console.WriteLine("上底の値を入力して下さい") a = Console.ReadLine() Console.WriteLine("下底の値を入力して下さい") b = Console.ReadLine() Console.WriteLine("高さを入力して下さい") h = Console.ReadLine() s = (a + b) * h / 2 Console.WriteLine("台形の面積はs={0}", s) End Sub 上底A,下底B,高さHの 台形の面積Sを求める Visual Basicプログラム
プログラミング アルゴリズムを元に,プログラムを作成 (流れ図などを利用) アルゴリズム プログラム プログラム言語 話の内容(文脈) 文章 対応
プログラミング言語 ※自然言語(日本語,英語,ドイツ語…)との違い 論理的,厳密 構文上の間違いは許されない コンピュータに対する一連の動作の指示を記述するため の人工言語の総称 ※自然言語(日本語,英語,ドイツ語…)との違い 論理的,厳密 構文上の間違いは許されない 文脈によって意味が変わることがない 設計者の意図と作業によってのみ変更される
主なプログラム言語 BASIC C C++ COBOL FORTRAN Java JavaScript Lisp Pascal Prolog BASIC: Beginner’s All-purpose Symbolic Instruction Code (初心者向け汎用記号命令コード) 英語を基礎とした,初学者にも分かりやすい文法 非常に多くの方言がある → Visual Basic (Microsoft)