講義コード | 9419J | ||||||
講義名 | アルゴリズム | ||||||
(副題) | |||||||
開講責任部署 | 全体 | ||||||
講義開講時期 | 秋学期 | ||||||
講義区分 | |||||||
基準単位数 | 2 | ||||||
時間 | 0.00 | ||||||
代表曜日 | 金曜日 | ||||||
代表時限 | 1時限 | ||||||
開講学科 | 情報処理学科 | ||||||
必選別 | 選択 | ||||||
履修セメスター | 第2セメスター | ||||||
その他 | |||||||
担当教員 | |||||||
|
講義概要 | |||||||||||||||||||||||||||||||||||||||||||||||||||
コンピュータに対して、情報を処理し問題を解決させる指示・命令群をプログラム、プログラムを開発することをプログラミングと呼ぶ。本講義は、プログラミング技術を学ぶ上で不可欠となる「アルゴリズムとデータ構造」について学ぶ科目である。 コンピュータは曖昧さを苦手とする。人間が柔軟に対処できることでも、明確な手順が指示されていなければ、コンピュータに仕事をさせることはできない。ここでいう“明確な手順”がアルゴリズムである。そしてもうひとつ、コンピュータに情報を扱わせる場合には、扱いたい情報をコンピュータ上でどのように表現するか、その構造(データ構造)も考えなければならない。プログラミングの実際においては、処理の内容や状況に応じて適切なアルゴリズムとデータ構造を検討する必要が生じる。つまり、「アルゴリズムとデータ構造」こそが、プログラムの両輪となるのである。 本講義では、コンピュータにおける情報の処理方法についてその基本から学習し、いくつかの代表的なアルゴリズム・データ構造を例にあげながら、アルゴリズムの動きを検証・理解する方法、及びその性能評価法を学習することで、エンジニアとして必須の論理的な思考・構成能力を高める。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
到達目標 | |||||||||||||||||||||||||||||||||||||||||||||||||||
(1)アルゴリズムとデータ構造とは何か、その必要性とあわせて簡単に説明できる (2)入力・演算・代入・出力、順次・選択・繰り返しといった、基本的な処理の流れを流れ図や擬似言語で表現できる。 (3)基本的な処理の流れ(アルゴリズム)をトレースし、そのアルゴリズムの動作と意味を理解できる。 (4)探索と整列の代表的なアルゴリズムについて、そのアイデアと特徴を理解し、アルゴリズムとして表現できる。 (5)配列・リンクトリスト・スタック・キューなどの代表的なデータ構造の特徴を説明できる。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
履修のポイント及び留意事項 | |||||||||||||||||||||||||||||||||||||||||||||||||||
本授業は、情報処理技術者試験「基本情報技術者試験」における、アルゴリズム、プログラム設計、プログラム作成能力に関する内容に関係するほか、本学が実施する「基本情報技術者試験」午前試験免除認定講座の一部である。 | |||||||||||||||||||||||||||||||||||||||||||||||||||
講義日程 | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
他の授業科目との関連 | |||||||||||||||||||||||||||||||||||||||||||||||||||
本授業で学んだアルゴリズムとデータ構造を、各プログラミング言語で実際に実現(実装)することは、内容理解の上で非常に重要である。ゆえに、プログラミング関係の授業「ソフトウェアデザインI~IV」「WebプログラミングI~II」を受講することを強く推奨する。特に、同セメスターに開講する「ソフトウェアデザインII」は連携授業であり、本授業と並行して履修しなければ理解が非常に困難になる。 また、コンピュータのハードウェア・ソフトウェアに関して、「コンピュータシステム」「コンピュータ科学基礎」を履修済みであれば、さらに理解が深まるだろう。そのほか、ソフトウェア開発プロセス全体について学ぶ「システムマネジメント」を並行して履修すれば、システム開発におけるプログラミングの位置づけが一層明確になる。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
評価方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||
上記到達目標に対応した定期試験の成績を基本点として成績評価を行う。 単位取得(C以上)のためには、この定期試験で一定の点数以上を取ることと、2/3以上の出席が「必要条件」となる。また、出席と小テスト、課題、授業参加の状況によって、成績評価(A1・A2・B・C・D)の調整(最大上下1段階)を行う。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
教科書 | |||||||||||||||||||||||||||||||||||||||||||||||||||
明解 Javaによるアルゴリズムとデータ構造 ソフトバンククリエイティブ |
|||||||||||||||||||||||||||||||||||||||||||||||||||
ISBN番号 | |||||||||||||||||||||||||||||||||||||||||||||||||||
ISBN-13: 978-4797345230 | |||||||||||||||||||||||||||||||||||||||||||||||||||
参考図書 | |||||||||||||||||||||||||||||||||||||||||||||||||||
スッキリわかるJava入門(インプレスジャパン) イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室 (技術評論社) アルゴリズムC(新版) 著者:R.セジウィック (近代科学社) 基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ~流れ図と擬似言語~(技術評論社) |
|||||||||||||||||||||||||||||||||||||||||||||||||||
オフィスアワー(授業相談) | |||||||||||||||||||||||||||||||||||||||||||||||||||
随時、宮川の研究室に直接訪問して良い。Facebook(kampei.miyakawa)からの質問も歓迎する。 | |||||||||||||||||||||||||||||||||||||||||||||||||||
学生へのメッセージ | |||||||||||||||||||||||||||||||||||||||||||||||||||
プログラミング関係の授業にも関わらず、座学であることに違和感を感じるかもしれない。闇雲にコンピュータの前に座ってキーボードを叩いているだけでは、良いプログラムを作成することはできないということを、この授業を通じて理解して欲しい。 プログラマやシステムエンジニア、もしくは情報工学分野への進学を検討している学生には受講を強く推奨する。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
準備学習の内容 | |||||||||||||||||||||||||||||||||||||||||||||||||||
テキストについて、次回の学習する範囲に対応する部分については必ず読み込んでおくこと。授業内において、テキストを端から端まで読むようなことはしない。 | |||||||||||||||||||||||||||||||||||||||||||||||||||
授業用URL | |||||||||||||||||||||||||||||||||||||||||||||||||||
https://www.facebook.com/kampei.miyakawa | |||||||||||||||||||||||||||||||||||||||||||||||||||
授業用E-mail | |||||||||||||||||||||||||||||||||||||||||||||||||||
miyakawa@ftokai-u.ac.jp |