科目名 |
情報システムプログラミング |
担当教員 |
高田 喜朗 |
対象学年 |
2年 |
クラス |
学部:専門001 |
講義室 |
A−WS |
開講学期 |
2学期 |
曜日・時限 |
月4,木4 |
単位区分 |
選択 |
授業形態 |
一般講義 |
単位数 |
2 |
準備事項 |
|
備考 |
|
授業の詳細1 |
授業の目的
効果的な情報システム・通信システムを構築するためには,計算機自身の仕組みを深く理解すること,および最新の効率的なソフトウェア作成技術を修得することの両方が必要である.
本科目では,基本的なプログラミング方法を学び終えた履修者に対し,プログラム実行機械としての計算機の仕組みと近代的なソフトウェア作成技術の両方に視点を置いた講義と演習を行う.これにより,ソフトウェア技術者に求められる基盤的知識と能力を習得することを目的とする. |
授業の詳細2 |
授業の進め方
C言語によるプログラミングの習得を中心として,講義と演習課題を通して学習する.一般的なプログラミング自体は習得済みであるので,プログラム実行の仕組みを意識した,より深い部分に立ち入った内容が中心となる.基本的な知識を問う課題から実用的なプログラムの作成課題まで,多くの課題を用意し,自然と理解を深められるよう配慮する. C言語自体の学習の後,分割コンパイルやMakeなどの開発技術の学習と,スタック等による実行制御の仕組みの学習,アセンブリ言語の初歩の学習などを,順次行う.
各課題に対する報告書,および,口頭試問(ヒアリング)によって,理解度・達成度を評価する. |
授業の詳細3 |
達成目標
以下の能力を修得すること. * C言語およびアセンブリ言語によるプログラミングを行える. * スタックによるプログラム実行制御の仕組みを説明できる. * スタックやヒープなどの記憶管理法,およびポインタについて説明できる. * 読みやすいプログラムを書くことの必要性を理解し,実践できる. * Makeやバージョン管理システムなどを使って効率よくソフトウェア開発を行える. * 作業工程の記述と結果に対する考察を含む報告書を作成できる. |
授業の詳細4 |
授業計画
以下のような順序で授業を進める.項目は順序を表しているだけで,1項目が1回の講義に対応しているわけではない.
* 最初のCプログラム 記述方法,コンパイル方法を学ぶ.printfと変換仕様,エスケープ系列について学ぶ. 読みやすいプログラムを書くことの必要性について学ぶ.
* C言語入門(初級編) scanfによる数値入力,標準ライブラリ関数の使い方,マクロ定義,基本データ型,配列,文字と文字列,ファイル入出力など,基本的なプログラム要素について学ぶ.
* C言語入門(中級編) 再帰関数の定義の仕方,ポインタ,コマンドライン引数,テキストファイルとバイナリファイルなど,実用的なプログラムを作るために必要となる要素について学ぶ.
* C言語入門(上級編) ビット単位の演算,数値の内部表現,構造体,メモリの動的な確保,低水準入出力など,プログラム実行の仕組みを理解する上での基礎となる知識を学ぶ.
* 分割コンパイルとGNU Make 複数のソースファイルにプログラムを分割する方法,GNU Makeを使ってコンパイル作業を自動化する方法について学ぶ.
* プログラム実行の仕組み スタックを用いることによる関数呼び出しの仕組み,自動変数の仕組みについて学ぶ.
* アセンブリ言語から見たC 前項目のプログラム実行の仕組みをより詳細に見ることを目的として,Cプログラムの一部をアセンブリ言語でプログラムし直し,どのような仕組みで実行が行われているか,特に,スタックの使い方,引数の渡し方について学ぶ.
* バージョン管理システム バージョン管理システムの使用法について学ぶ. |
授業の詳細5 |
テキスト: 「情報システム工学実験第2」の実験指導書を利用する.
また,副教科書として以下を使用する. 『プログラミング言語C 第2版』,B.W. Kernighan, D.M. Ritchie著(共立出版)
参考書: 『プログラミング作法』,B.W. Kernighan, R. Pike著(アスキー) 『アルゴリズムとデータ構造』,石畑清著(岩波書店) 『やさしいコンピュータ科学』,A.W. Biermann著(アスキー) |
授業の詳細6 |
成績評価: A-WSに用意された環境で演習を行い,レポート提出と口頭試問(ヒアリング)により評価する.配点はヒアリング55点,レポート45点とする.全課題の合計が60点以上あれば合格とする.再試験はしない. AA:90〜100点 A:80〜90点 B:70〜80点 C:60〜70点 F:60点未満 |
授業の詳細7 |
履修上の注意: 本科目の履修を希望する場合には,「情報システム工学実験第2」「情報ネットワークプログラミング」を同時に履修すること.
備 考: 履修前の受講が望ましい科目=「アルゴリズムとデータ構造1」「計算機言語第1」 履修の前提となる必須科目=「情報システム工学実験第1」 同時履修すべき科目=「情報システム工学実験第2」「情報ネットワークプログラミング」 |
授業の詳細8 |
|
授業の詳細9 |
|
授業の詳細10 |
|