情報 | プログラミング応用 | 3年・通年・必修・履修2単位 | |
担当教員 | 滝沢 陽三 | 連絡先 | |
---|---|---|---|
講義の概要 | プログラミングを様々な問題に応用する方法を学ぶ。C言語による応用プログラムの開発手法の他、プログラム処理系、オペレーティングシステム、アルゴリズム、ソフトウェア開発方法論、ネットワークプログラミングのそれぞれ基礎について、講義と演習を通して理解を深める。 | ||
到達目標 | 1.様々な分野のための応用プログラムをC言語で作成できる。 2.オペレーティングシステムの役割と構成を理解する。 3.コンパイラやインタプリタの原理を理解する。 4.並べ替えや平方根計算などの簡単なアルゴリズム例について理解する。 5.代表的なソフトウェア開発方法論について理解する。 6.コンピュータネットワークの基礎を理解し簡単なプログラムを作成する。 |
日程 | 授業項目 | 理解すべき内容 | 理解度 (1~4) | |
---|---|---|---|---|
前期 | 第1週 | C言語によるソフトウェア実装 | C言語を用いた実践的なソフトウェアの構成 | |
第2週 | ソースコードの管理(1) | 適切な修正方法、パッチ | ||
第3週 | ソースコードの管理(2) | リポジトリの考え方、ソースコードの配布 | ||
第4週 | ソースコードの管理(3) | プログラムを実行しながら不具合を発見する方法 | ||
第5週 | ソフトウェアと知的財産権 | コンピュータ・ソフトウェアにおける知的財産権の考え方、ソースコードの著作権の適用 | ||
第6週 | オペレーティングシステムとプログラミング(1) | 歴史、カーネル、システムコール | ||
第7週 | (中間試験) | |||
第8週 | オペレーティングシステムとプログラミング(2) | プロセス、プロセス間通信 | ||
第9週 | オペレーティングシステムのプログラミング(3) | 記憶管理、ファイルシステム、ファイル入出力 | ||
第10週 | プログラム実行の制御(1) | コマンドインタプリタとバッチ処理 | ||
第11週 | プログラム実行の制御(2) | コマンドインタプリタを用いた応用例 | ||
第12週 | 言語処理系(1) | コンパイラの構成、インタプリタの種類、文法と言語 | ||
第13週 | 言語処理系(2) | オートマトン、文脈自由文法、字句解析、構文解析 | ||
第14週 | 言語処理系(3) | yaccとlexを用いた簡単な処理系実装例 | ||
第15週 | (期末試験) | |||
第16週 | 総復習 | |||
後期 | 第1週 | 再帰処理(1) | 再帰とは、C言語での実装例 | |
第2週 | 再帰処理(2) | 再帰処理とリスト構造 | ||
第3週 | 再帰処理(3) | 再帰処理とスタック構造 | ||
第4週 | アルゴリズムの例(1) | 並べ替え(単純な整列、再帰を用いた並べ替え) | ||
第5週 | アルゴリズムの例(2) | 検索の例(先頭から検索する方法、並べ替えてから検索する方法) | ||
第6週 | アルゴリズムの例(3) | 平方根を求めるアルゴリズム例 | ||
第7週 | (中間試験) | |||
第8週 | ソフトウェア開発方法論(1) | 様々なソフトウェア開発の捉え方 | ||
第9週 | ソフトウェア開発方法論(2) | グループ開発やシステム開発に対する考え方 | ||
第10週 | ソフトウェア開発方法論(3) | ソフトウェア開発方法論の具体例 | ||
第11週 | ソフトウェア開発方法論(4) | Unified Modeling Language | ||
第12週 | コンピュータネットワーク(1) | コンピュータネットワークの仕組み、プロトコル階層モデル | ||
第13週 | コンピュータネットワーク(2) | クライアント/サーバシステムの仕組み | ||
第14週 | コンピュータネットワーク(3) | クライアント/サーバシステムのプログラミング例 | ||
第15週 | (期末試験) | |||
第16週 | 総復習 | |||
学習教育目標 | A、Bに対応 | 達成項目 | 本科イ)、ロ)に対応 | JABEE認定基準 | |
---|---|---|---|---|---|
教科書・参考書 | 教科書:資料配布 | ||||
評価方法及び合格基準 | 成績の評価は、定期試験の成績で行い、平均の成績が60点以上の者を合格とする。 | ||||
学生への メッセージ |
プログラミング基礎で学んだ知識や技術を踏まえ、より具体的なプログラミング技術を学んでいく。演習では問題を一つ一つ確実に理解しながら進めること。また、次回予定の部分は予習しておくこと。 |