概要:
本科目では,実際のプログラミングの基礎について講義する.特に,Processing言語によって,基本的なプログラムの作成ができることを目標とする.また,これまで主にプログラミング言語について学んできたが,授業の後半ではソフトウェア開発の一連の流れを経験することで基本的な知識を習得することを目標とする.
授業の進め方・方法:
授業の前半では,プログラミングの基礎やProcessingの概要などを説明するため,座学を中心に行う.後半は,実際にコンピュータ室により演習を中心に行う.特に,グループでソフトウェアの設計から開発を行うことで,実際のソフトウェアによるモノ創りを学ぶ.限られた授業時間内では十分な技術は身につかない.授業中に出す課題を中心に,休み時間や放課後を利用して積極的に演習を行うことで理解を深める必要がある.
注意点:
1年次の情報リテラシーIおよび2年次の情報リテラシーIIで学ぶ基礎的知識を前提とする.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
これまでの復習 |
配列や関数を使うことができる.
|
2週 |
クラスとオブジェクト1 |
クラスの概念を理解し,説明できる.
|
3週 |
クラスとオブジェクト2 |
クラスの定義のやり方を理解し,説明できる.
|
4週 |
クラスとオブジェクト3 |
オブジェクトを理解し,クラスとオブジェクトの関係を説明できる.
|
5週 |
クラスとオブジェクト4 |
クラスを用いたプログラムを作成できる.
|
6週 |
プログラミング演習4 |
これまでの知識を使って,発展的なプログラムを作成することができる.
|
7週 |
プログラミング演習5 |
これまでの知識を使って,発展的なプログラムを作成することができる.
|
8週 |
【中間試験】 |
|
2ndQ |
9週 |
移動,回転,伸縮 |
ビジュアル表現を豊かにするために,基本的な座標変換について理解し,説明できる.
|
10週 |
運動の表現1 |
物理現象をシミュレーションするための数学的アルゴリズムを理解し,説明できる.
|
11週 |
運動の表現2 |
重力,放物線,ばね,振り子をプログラミングで表現できる.
|
12週 |
データの視覚化1 |
データの視覚化の実例とデータフォーマットについて理解し,説明できる.
|
13週 |
データの視覚化2 |
オープンデータを可視化するプログラムを作成できる.
|
14週 |
プログラミング演習6 |
これまでの知識を使って,発展的なプログラムを作成することができる.
|
15週 |
期末試験 |
|
16週 |
テスト返却と解説 |
|
後期 |
3rdQ |
1週 |
データ構造とアルゴリズム |
データ構造とアルゴリズムの関係を理解し,基本的なデータ構造とアルゴリズムの種類を説明できる.
|
2週 |
基本データ構造1 |
リスト(単方向,双方向,環状)構造,およびスタック構造を理解できる.
|
3週 |
基本データ構造2 |
スタック構造を利用した関数呼び出しの仕組みについて理解できる.二分木構造について理解できる.
|
4週 |
探索アルゴリズム1 |
線形探索,二分探索について理解できる.
|
5週 |
探索アルゴリズム2 |
ハッシュ法について理解できる.
|
6週 |
ソーティングアルゴリズム1 |
交換法,選択法,挿入法について理解できる.
|
7週 |
ソーティングアルゴリズム2 |
バブルソート,クイックソートについて理解できる.
|
8週 |
【中間試験】 |
|
4thQ |
9週 |
Robocodeの解説 |
ソフトウェアによるモノ創りを学び,その一つの具体例として,Robocodeによるソフトウェアの設計から開発までの流れを理解できる.
|
10週 |
Robocodeの利用法 |
Robocodeシステムの操作方法を理解できる.
|
11週 |
Robocodeによるロボット設計 |
Robocodeにおけるロボットの仕組みを理解し,設計書を作成する.
|
12週 |
Robocode によるモノ創り演習2 |
設計書に従って,ロボットの開発(プログラミング)を行い,設計書に近い形で実現することができる.
|
13週 |
Robocodeによる競技(予選会) |
Robocodeによる競技大会(予選)を行い,設計したロボットの改善点を見つけることができる.
|
14週 |
ロボットの改良 |
見つけた改善点を実現するためのプログラムを実装できる.
|
15週 |
Robocodeによる競技(本選) |
Robocodeによる競技大会(本選)を行い,設計したロボットの勝因や敗因を理解し,改善点を見つけることができる.
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 後1,後2,後3,後4,後5,後6,後7 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | 後11 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 後12 |
分野横断的能力 | 汎用的技能 | 汎用的技能 | 汎用的技能 | 他者の意見を聞き合意形成することができる。 | 3 | 後11 |
合意形成のために会話を成立させることができる。 | 3 | 後11 |
グループワーク、ワークショップ等の特定の合意形成の方法を実践できる。 | 3 | 後11 |
課題の解決は直感や常識にとらわれず、論理的な手順で考えなければならないことを知っている。 | 3 | 後11 |
どのような過程で結論を導いたか思考の過程を他者に説明できる。 | 3 | 後11 |
適切な範囲やレベルで解決策を提案できる。 | 3 | 後11 |
事実をもとに論理や考察を展開できる。 | 3 | 後11 |
態度・志向性(人間力) | 態度・志向性 | 態度・志向性 | 周囲の状況と自身の立場に照らし、必要な行動をとることができる。 | 3 | 後12 |
自らの考えで責任を持ってものごとに取り組むことができる。 | 3 | 後12 |
目標の実現に向けて計画ができる。 | 3 | 後12 |
目標の実現に向けて自らを律して行動できる。 | 3 | 後12 |
チームで協調・共同することの意義・効果を認識している。 | 3 | 後13 |
チームで協調・共同するために自身の感情をコントロールし、他者の意見を尊重するためのコミュニケーションをとることができる。 | 3 | 後13 |
当事者意識をもってチームでの作業・研究を進めることができる。 | 3 | 後13 |
チームのメンバーとしての役割を把握した行動ができる。 | 3 | 後13 |