730 likes | 829 Views
Summer Science Camp 2014 Aug. 21-23 東京 工科 大学 コンピュータサイエンス 学部. 初めてのソフトウェア開発 体験 ~ オブジェクト指向でゲーム開発に挑戦 ~. 東京工科大学 コンピュータサイエンス学部 亀田弘之. スケジュール( 1 日目 ). 14:00-14:20 スケジュール確認、自己紹介 、 開始 時アンケート等 14:20-14:30 課題ゲーム Greeps の紹介 14:30-16:00 Greenfoot の 体験 ・開発 環境操作法とプログラミングの 基礎
E N D
SummerScience Camp 2014 Aug. 21-23 東京工科大学 コンピュータサイエンス学部 初めてのソフトウェア開発体験~オブジェクト指向でゲーム開発に挑戦~ 東京工科大学 コンピュータサイエンス学部 亀田弘之
スケジュール(1日目) 14:00-14:20 スケジュール確認、自己紹介、 開始時アンケート等 14:20-14:30 課題ゲームGreepsの紹介 14:30-16:00Greenfootの体験・開発環境操作法とプログラミングの基礎 ・講義付き演習および相互教え合い 16:00-16:20 チームビルディング 16:20-17:00 施設見学(各種デモゲーム体験)
スケジュール(2日目) 9:30-10:00 ソフトウェア工学入門(講義)(ソフトウェア開発の現状と開発プロセスについて)10:00-10:10 ゲーム大会の説明(チャレンジ内容の説明・確認) 10:10-12:00 Greenfootでゲームプログラミング(一部講義・対話形式) 13:00-16:00Greepsゲームの作成(実習) 16:00-17:00 ファイナルゲーム大会と 成果発表会
スケジュール(3日目) 9:30-10:00 ソフトウェア開発と プロジェクトマネジメント(講義) 10:00-11:00RPG型プロジェクトマネジメント 教育システムによるPM体験 11:00-12:00 自作ゲームの開発企画書作成(講義付き演習) 13:00-14:30 ゲーム作りに役立つ関連知識の 紹介(既存のツールなど) 14:30-15:00 最終アンケート、表彰式、閉会式
ソフトウェアの現状 社 会 基 盤 大規模化 複雑化 安心・安全 変更 高度なソフトウェアエンジニアが必要
産業界からの要望 • 即戦力型ICTエンジニア • 実用システム開発ができるエンジニア
産業界からの要望 大学 プロジェクトマネジメント RP演習システム ソフトウェア開発プロセス 教材開発 プログラミング 高校生のレベル
講 義 概 要 今日からプログラマーへの第一歩を踏み出そう! プログラミング初心者でもOK。まずは簡単なゲームプログラミングから始めてみよう!
まずは予備知識から 焦らずに、 まずはゆっくりと
第1部 • ハードウェアとソフトウェア • ソフトウェア開発とその手順 • ソフトウェアの開発ってどんなことをするの? • プログラマーとは • ゲーム制作に関わる人たち • 誰がどんなことをするの?
ハードウェアとソフトウェア s(A,C):-n(A,B),vp(B,C). vp(A,C):-v(A,B),np(B,C). np(A,C):-d(A,B),n(B,C). n([tom|T],T). n([cup|T],T). v([broke|T],T). d([the|T],T). 英語の文を解析する人工知能プログラム
ソフトウェア開発 ゲーム、知的情報検索システム、携帯電話システムなどに関するソフトウェアを開発すること。 (注) ソフトウェア開発 ≠ プログラミング
ソフトウェア開発プロセス(1) • 要求分析 • 設計 • プログラミング • デバッグ • テスト • 運用 ⇒再び1へ戻る
ソフトウェア開発プロセス(2) • 何(どんなもの)を作ればいいの? • どう作ればいの? • 作成作業そのもの(デバッグもやりながら) • 本当にちゃんとできたのかな? • 実際に使おう! • ちょっと変更したいな。
プログラマーとは • ソフトウェアの設計図に基づき、ソースコードを作成する人たち
ゲーム作成に関わる人たち • ゲームクリエータ • アーティスト • レベルデザイナ • ゲームプログラマ
第2部 • プログラミングに必要なものとは... • プログラミング言語とは
プログラミングに必要な知識・技能 • PCの基本的操作(ITリテラシー) • プログラミング言語 • プログラム開発ツール
プログラミングに必要な知識・技能 • PCの基本的操作 • ウィンドウズの操作方法 • プログラミング言語 • Java言語やC言語 • プログラム開発ツール • エディタや統合開発環境ツール • (ソフトウェア開発プロセス) • (プロジェクトマネジメント)
PCの基本操作は知っているものとしましょう。PCの基本操作は知っているものとしましょう。
プログラミング言語とは • プログラムを作成するための言語。 • プログラムとは、コンピュータに行ってもらいたい仕事(の手順)を書いたもの。
プログラミング言語の種類 • 手続き型言語 • 関数型言語 • 論理型言語 • オブジェクト指向型言語
手続き型言語 • BASIC言語 • C言語 • Fortran言語 • Pascal言語 • Cobol言語
関数型言語 • ML • Haskell • Lisp
論理型言語 • Prolog
オブジェクト指向型言語 • Smalltalk • C++ • C# • Java • Eiffel プログラミング言語は少なくとも約8000種類あると言われています。
東京工科大学で学ぶ言語 • 必須言語 • Java • 第2言語 • C言語 • その他の言語 • C++ • Prolog • Php, Ruby など
第3部 • いよいよ本題です!
今日の目標 • 簡単なソフトウェアゲームを作ろう!
今日の内容 • プログラミング基礎の基礎変数、代入、条件文、繰り返し文 • コンピュータの計算モデル • Greenfootの紹介 • ゲーム作成のデモ
行動指針 • サイエンスキャンプを楽しむ • お互いに教え合う(他利的に行動する) • 主体的に行動する(考える・質問する・教える) (注) 他利的(altruistic) 利己的(egoistic)
プログラミングの基礎の基礎 • その前に
コンピュータ= ソフトウェア + ハードウェア プログラム main ( ) { inti, n = 10; double mean = 0; for ( i = 0; i < n; i++) { mean += I; } mean = means / n; printf(“mean=%lf”, mean); }
コンピュータの基本構成要素 • 入力装置 • 出力装置 • CPU(中央演算装置) • 記憶装置 • 制御装置 コンピュータの基本構成図(出典) http://www.infonet.co.jp/ueyama/ip/ concept/composition.html
ハードウェア • メモリ • 箱(複数個) • 作業台(1つ) • 作業者(CPU+制御+バス)
プログラミング入門 • (各自図書あるいはWebで勉強してください。1つの言語をしっかりと学ぶことから始めてください。英語の勉強,古典(日本語)の勉強など,自分の過去の経験も活用してください。 学び方を学ぶためにも,知っている学び方を応用してみよう!)
本サイエンスキャンプでのキーワード • 変数 • 代入 • 条件文 • 繰り返し文 今回は,この2つが最も大切 この用語の意味と実際の書き方を学ぶことでブログラムは記述できるよ。
1~5までの和を求めるプログラムの例(C言語)1~5までの和を求めるプログラムの例(C言語) main( ) { int A = 0; int k = 0; for( k = 1; k <=5; k++ ){ A = A + k; } printf(“1+2+3+4+5 = %d\n”, A ); }
第3部後半 • 簡単なゲームを作ってみましょう!
まとめ • ソフトウェアの重要性 • 実践的エンジニアが求められている • プログラマ ≠ ソフトウェアエンジニア • コンピュータの基本構成要素 • コンピュータのモデル • 変数・代入・条件文・繰り返し文 • Greenfoot
学びの方法は,PBLで • 今回のサイエンスキャンプでは,PBL形式で行います。
目的達成のための方法論 • Virtual Company (VC) を立ち上げ、体験的かつ主体的に実践的な知識・スキルを身につけよう! • PBL(Problem Based Learning) による主体的学びで実践力を培う
PBLとは… • Project Based Learning のこと • 従来の勉強方法 • 座学 • 演習 • 実習・実験
従来の勉強方法 • 座学 先生の話をみんなが聴いて、ノートにメモを取ったりしながら学ぶ。途中で質疑討論することもある。 • 演習 座学で教わったものを練習問題を解くことで確認する学習形態。例えば、Javaのfor文を座学で教わったら、for文を使う練習問題を解いてみるなど。 • 実習・実験 事前に用意されたテキストなどに従って、体験的に学ぶ。座学で教わったものの応用練習などが目的。
これからの学び PBL • 手引書のない実習・実験に相当。より実践的な状況での主体的な学び。 • 例えば、座学で電気回路を学んだとする。その後、電気回路の問題集を解くのは演習授業。どのような知識を使って解けばいいのか分かっている。 • 一方、PBLでは 「いまここに電機系が故障しているトースタがある。 原因を追求し、使えるようにしなさい。」となる。電気関係の知識を使えばいいのだろうが、どの知識をつかえばいいのかは自分で考える。必要ならば役に立ちそうな新しい知識を自分で学ぶ。
PBLの実施方法 • グループに分かれる • Vurtual (VC)を立ち上げる。