科目名 |
計算機言語 |
担当教員 |
妻鳥 貴彦 |
対象学年 |
2年 |
クラス |
学部:専門001 |
講義室 |
A106 |
開講学期 |
1学期 |
曜日・時限 |
月5,木5 |
単位区分 |
選択 |
授業形態 |
一般講義 |
単位数 |
2 |
準備事項 |
|
備考 |
|
授業の詳細1 |
【授業の目的】 計算機言語は,要求や仕様に沿ったソフトウェアを作成する上で,プログラムを記述するために用いる言語のことである.目的に応じて多くの計算機言語が存在する.その中でも,大規模・多人数でのソフトウェア開発にオブジェクト指向言語が向いているとされている.代表的なオブジェクト指向言語にJava,Smalltalk,C++がある. この授業では,「情報科学1」,「情報科学2」で学習する手続き型言語であるCに引続き,オブジェクト指向言語Javaを対象として計算機言語を学習する.Java言語は実用性が高く,職業人として覚えるべき基本事項として重要である.なお,この授業と並行して実施される「情報学群実験第1」では, Javaによるプログラミング実験を行うことで理解をより深める.
【授業の概要】 キーワード:オブジェクト指向プログラミング,クラス,オブジェクト,Java 授業の形態:通常の授業(座学)である.これに加え,理解をより深めるために専門科目演習の時間に3〜4回の演習を行う.
計算機言語とは何かを把握した上で,Javaについて学ぶ.Javaを理解することを通してプログラミングパラダイムの一つであるオブジェクト指向プログラミングについて把握する. |
授業の詳細2 |
【達成目標】 オブジェクト指向の概念を把握し,Javaプログラムを読んで理解できる. この達成目標を満たすための項目を以下に示す. (1).計算機言語とは何か (2).Javaプログラミング (3).クラスの仕組み (4).コンストラクタ (5).クラスの継承 (6).オーバーロードとオーバーライド (7).参照 (8).抽象クラスとインタフェース (9).条件分岐と繰り返し (10).例外処理 (11).ストリーム入出力 (12).コレクション・総称型 (13).スレッド |
授業の詳細3 |
【授業計画】 1.ガイダンスおよび計算機言語入門 まず,カリキュラム全体におけるこの授業の位置付けを理解する.特に「情報科学1〜3」,「情報学群実験第1」,「アルゴリズムとデータ構造」との関係を把握する.その上で,この授業の授業計画と成績評価について把握する. 次に,計算機言語の役割とその歴史について学習した上で,自然言語と人工言語との差,および計算機言語の分類を理解する.そして簡単なJavaプログラムの実行を通じて,プログラミングの概観およびクラスとは何かを把握する.
2.クラスの仕組みとカプセル化 クラスはフィールド,コンストラクタ,メソッドから構成されている.これらのそれぞれの役割を理解し,クラスの全体像を把握する. さらに,アクセス修飾子について学び,Java言語の大きな特徴の一つであるカプセル化について理解する.
3.クラスとファイル Javaでプログラミングを行う際の規則について学び,複数のクラスから構成されるJavaプログラムについて理解する.また,パッケージについて学び,その構成方法および利用の仕方について理解する. |
授業の詳細4 |
4.オーバーロードとコンストラクタ オブジェクトを生成した際にオブジェクトを初期化するコンストラクタについて理解する.また,オーバーロードについて学び,コンストラクタやメソッドの呼び出し方について理解する.
演習.1〜4回目までの内容に関する演習を行い,理解を深める.
5.参照とオブジェクト 参照の概念について学び,オブジェクトや配列との関係について理解する.また,参照を引数や返り値に用いる場合についても理解する.
6.1〜5回目までのまとめ(習熟度確認)を行う.
演習.習熟度に応じた解説によって理解を深める. |
授業の詳細5 |
7.クラスの継承と型 オブジェクト指向プログラミングの特徴である継承の概念を理解する.サブクラスやスーパークラスについて学び,Objectクラスとは何かを理解する. また,型の概念について学び,型変換(キャスト)とは何かを理解する.
8.オーバーロードとオーバーライド オーバーロードとオーバーライドについて学び,隠蔽や再利用といった継承に関わる概念をより深く理解する.また多態性(ポリモーフィズム)について理解する.
9.抽象クラスとインタフェース 抽象クラスについて学び,その意味や役割を理解する.またJavaで禁止されている多重継承を補う,あるいは公開メソッドを明確にする手段としてのインタフェースについて学び,Javaにおけるオブジェクト指向の概念をより深く理解する.
10.条件分岐と繰り返し if文,if-else文,switch文の動作を理解する.これにより,条件によりプログラムの挙動を変化させられることを学習する.同時にブロックとbreak文の動作も合わせて理解する.さらに,while文,for文,do-while文の動作とそれぞれの違いを理解する.これにより,同じ動作を繰り返して実行する手法を学習する.同時にcontinue文の概念を導入し,改めてbreak文の動作についても理解する. |
授業の詳細6 |
演習.7〜10回目までの内容に関する演習を行い,理解を深める.
11.例外とストリーム入出力 Javaの実行時のエラーは,全て例外として通知される.プログラム実行時に発生するエラーを処理する手段のことを例外処理という.ここでは,Javaによる例外処理について学ぶ. ストリームは,様々なデータソースやストアを処理する際のプログラミングに一貫性を持たせるために考えられた概念である.Javaでは,入出力を処理する際はストリームを使用することから,まずストリームの概念について学習し,Fileクラスを例に挙げて入出力について理解する.さらに,直列化(シリアライズ)について理解する.
12.コレクション・総称型 リスト,セット,マップ,キュー等のデータ構造を取り扱うためのコレクションについて学び,さらに総称型(ジェネリクス)の概念と利用方法について理解する.
演習.11〜12回目までの内容に関する演習を行い,理解を深める.
13.スレッド 複数の処理を同時に行う処理のことを並行処理という.ここでは,Javaでの並行処理を実現させるためのスレッドについて理解し,その実現方法を学習する.さらに,スレッドの状態遷移について理解し,同期化や協調について学ぶ.
14.7〜13回目までのまとめ(習熟度確認)を行う.
15.習熟度に応じた解説によって理解を深める. |
授業の詳細7 |
【成績評価の方法・基準】 2回の習熟度確認と演習によって成績評価を行う. 具体的には,演習の課題を全てこなし,達成目標で示した(1)〜(13)の項目それぞれの問題に対し8割以上解くことができ,かつ(1)〜(13)のうち10項目程度をクリアできればAと評価する.それ以外については,以下の基準により判定を行う. AA:演習の課題を全てこなし,(1)〜(13)の項目それぞれの問題に対しほぼ全てを解くことができ,かつ(1)〜(13)全ての項目がクリアできている A:演習の課題を全てこなし,(1)〜(13)の項目それぞれの問題に対し8割以上解くことができ,かつ(1)〜(13)のうち10項目程度をクリアできている B:演習の課題をこなし,(1)〜(13)の項目それぞれの問題に対し8割以上解くことができ,かつ(1)〜(13)のうち8項目程度をクリアできている C:演習の課題をこなし,(1)〜(13)の項目それぞれの問題に対し6割以上解くことができ,かつ(1)〜(13)のうち8項目程度をクリアできている F:AA〜Cの基準に達していない |
授業の詳細8 |
◇テキスト 『わかりやすいJava オブジェクト指向編』,川場 隆 著(秀和システム,2010,ISBN978-4-7980-2571-1) 注:このテキストは,「情報学群実験第1」でも使用する.
◇参考書 『わかりやすいJava 入門編』,川場 隆 著(秀和システム,2009,ISBN978-4-7980-2403-5)
【準備学習等についての具体的な指示】 履修前提科目:「情報科学2」「情報科学3」 同時に履修すべき科目:「情報学群実験第1」
◇備考 情報学群全専攻 専門基礎科目(履修登録必須科目) 履修前提科目:「情報科学2」「情報科学3」 同時に履修すべき科目:「情報学群実験第1」 オフィスアワー:毎週月曜日5限目終了後(18:00〜19:30) 連絡先:A471(A棟4階) |
授業の詳細9 |
|
授業の詳細10 |
|