計算機序論2・実習(2012年度)

授業科目, www.kameda-lab.org 2012/11/27q

本授業について

講師:亀田能成(実習)・北原格(講義)
TA:
連絡先:ic2qa[at]image.esys.tsukuba.ac.jp
教室:3L201(座学)、3L504(実習)
期間:2学期
時間:月曜4、5時限目(13:45-15:00, 15:15-16:30)
単位:2単位

本講義(計算機序論2)は2012年度2学期に、 筑波大学理工学群工学システム学類 (知的工学システム・機能工学システム主専攻)の2年生を 想定して開講されます。
受講にあたっては、 2年生1学期配当の「情報処理講義」・ 2年生1学期配当の「情報処理実習」・ 2年生1学期配当の「計算機序論1」 の知識が必須になります。
(その単位が本講義単位取得の前提になっているわけではありません。)

また、本講義の内容は 2年生3学期配当の「プログラミング序論」 や 3年生1学期配当の「データ構造とアルゴリズム」 の履修に役立ちます。

なお、本ページは、 「計算機序論2」のうち亀田能成が担当する実習について 情報提供しています。北原先生からの講義分には別ページがあります。

北原先生分の講義URL
http://www.image.esys.tsukuba.ac.jp/~kitahara/lecture/2011/kj2/
(ないしmoodle上の当該科目を参照)


日程

全日程のうち、講義と実習が概ね半々行われる予定です。
実習は原則として全て3L504(計算機室)で行います。

年/月/日内容
2012/09/0301北原
2012/09/1002北原
2012/09/1903北原:変則水曜日
2012/09/2404北原
2012/10/0105北原
2012/10/15北原
2012/10/2206亀田
2012/10/2907亀田
2012/11/0508亀田
2012/11/1209亀田:Webベースなので講義アーカイブ無し
2012/11/1910亀田


実習資料

OpenGLを用いたC言語によるCGプログラミング

1. プログラミング基礎復習 -- "Hello ESYS" 再び --
1.1. ぞんざいなHello ESYS
1.2. 上品なHello ESYS
1.3. 至極丁寧なHello ESYS
1.4. 知っていると便利なマクロ

2. ファイルの開き方
2.1. ファイルのぞんざいな開き方
2.2. ファイルの上品な開き方
2.3. bashとの連携

3. 関数利用によるプログラムの構造化
3.1. 簡易電卓プログラムの設計
3.2. fgets()の試運転
3.3. sscanf()の試運転
3.4. 簡易電卓

4. 分割したファイルでのプログラミング
4.1. C言語プログラムのソースファイル分割
4.2. 簡易電卓・分割コンパイル版
4.3. 簡易電卓・自家製ライブラリの製作と利用

5. Eclipse CDT (C Development Tooling) 入門
5.1. 作業概念
5.1.1. 2種類のパースペクティブと2種類の実行ファイル
5.1.2. プロジェクト
5.1.3. ワークスペース
5.2. フォルダとファイルの配置
5.2.1. ワークスペース
5.2.2. プロジェクト
5.2.3. ソースファイル
5.2.4. 実行ファイルと実行時カレントディレクトリ
5.2.5. その他
5.3. はじめてのeclipse
5.3.1. eclipseの起動とワークスペースの設定
5.3.2. eclipseの初期設定
5.4. はじめてのプロジェクト - Hello Eclipse -
5.4.1. プロジェクト概要の決定
5.4.2. 新規プロジェクトの登録
5.4.3. 新規ソースファイルの作成
5.4.4. 編集時の便利な機能
5.4.5. 実行時デバッグの設定
5.4.6. 実行時デバッグ
5.4.7. ステップ実行(ステップイン、ステップオーバー)
5.4.8. デバッグの再実行
5.4.9. 通し実行(Run, Break point)
5.4.10. C/C++パースペクティブに戻る前に - デバッグの終了 -
5.4.11. デバッグ用実行ファイルの動作確認
5.4.12. パースペクティブの切り替え
5.4.13. リリース用実行ファイルの生成
5.5. プロジェクトへの外部ソースファイルの持ち込み - Hello ESYS again -
5.5.1. プロジェクトの概要
5.5.2. 新規プロジェクトの登録
5.5.3. 外からのソースファイルの取り込みとデバッグ・実行
5.6. プロジェクトへの外部ソースファイル群の持ち込み - 簡易電卓の分割ソースファイル群 -
5.6.1. プロジェクトの概要
5.6.2. 新規プロジェクトの登録
5.6.3. 外からの分割ソースファイル群の取り込みとデバッグ・実行
5.7. プロジェクトへの外部ソースファイル群の持ち込み - ファイルを開くプログラム -
5.7.1. プロジェクトの概要
5.7.2. 新規プロジェクトの登録
5.7.3. 外からのソースファイルの取り込み
5.7.4. 起動時引数(オプション)を伴う実行時デバッグの構成
5.7.5. eclipse:デバッグパースペクティブでの配列変数の読み方と、文字列の配列というargvの構造
5.8. 補足資料

6. OpenGLプログラミング入門
6.1. はじめてのOpenGL - プログラムの枠だけ -
6.2. はじめてのOpenGL - バッファを切り替えよう -
6.3. はじめてのOpenGL - バッファ切替の確認 -
6.4. はじめてのOpenGL - バッファを時間で切り替え -
6.5. はじめてのOpenGL - 直交投影カメラ -
6.6. はじめてのOpenGL - 線画物体を描画 -
6.7. はじめてのOpenGL - 周期的動作 -
6.8. はじめてのOpenGL - マイクロ秒オーダの計測 -
6.9. はじめてのOpenGL - コードクリーニング -

7. GLUTを用いたプログラムの構造化
7.1. プログラムの構造設計
7.2. ファイル分割
7.3. ファイル分割に伴う修正
7.4. イベントの追加(キーボード)
7.5. イベントの追加(ロゴの拡大縮小)

8. GLUTを用いたCGの移動と回転
8.1. OpenGLライブラリが使う行列
8.2. 初めての移動
8.3. OpenGLでの行列操作の実際
8.4. 多段階の行列操作

9. 透視投影
9.1. 透視投影の導入(暫定)
9.2. 透視投影の導入(正式)
9.3. 透視投影下での回転と移動

10. ファイルからの3DCGモデル読込
10.1. ファイルのオープン・クローズ
10.2. モデルデータのファイルからの読込

11. 3DCGモデルの表示
11.1. プログラム同居
11.2. プログラム統合
11.3. プログラム完全統合
11.4. ポリゴン表示
11.5. ポリゴン表示・Depth付


課題に関する注意


課題内容

講義前後に掲載します。

課題については、課題1〜課題5の5回とも必須課題部分を提出することが単位取得のための絶対必要条件です。 提出洩れのないように厳に注意してください。


シラバス

シラバス(知的工学システム主専攻)
シラバス(機能工学システム主専攻)


kameda[at]iit.tsukuba.ac.jp