(注意:学内からのみアクセス可能.また,
閲覧するのにAdobe社のフリーソフトAcrobat Readerが必要.)
Chen's Lecture Notes
(見たい科目名をクリックしてください)
2025年度(前期)
2024年度(後期)
情報システムセミナー:
講演資料
ソフトウェア開発の手順:
資料1,
資料2.
「情報システムデザイン概論」の予定資料:
資料
2025年度「コンピュータプログラミングT・同演習」(Chenクラス)の予定資料:
2025年度「アルゴリズム特論」の予定資料:
2024年度「コンピュータプログラミングU・同演習」(クラス0)の予定資料:
2024年度「数理最適化入門」の資料:
2024年度「応用JAVAプログラミング」の予定資料:
2023年度「計算量と暗号」の予定資料:
2018年度「コンピュータプログラミングT・同演習」(Chenクラス)の資料:
2012年度「アルゴリズム論」の資料:
- 初歩的整列アルゴリズム
- Shellソート,Quickソート
- マージソート,リストマージソート
- ヒープソート
- 順次リスト探索
プログラムのダウンロード:
structure_header.h,
liststructure.c(ポインタのポインタを使わない),
liststructure2.c(ポインタのポインタを使う).
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch.cとliststructure.cをコンパイルする.
キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch.cとliststructure.cをコンパイルする.]
- 2分木探索
プログラムのダウンロード:
structure_header.h,
bintreestructure.c,
bintreestructure2.c(番兵法を使ったもの),
bintreestructure3.c(再帰的呼び出しを多用したもの),
int_header.h,
intSearch.c,
string_header.h,
stringSearch.c.
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch.cとbintreestructure.cをコンパイルする.キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch.cとbintreestructure.cをコンパイルする.]
- 2分木探索(続き)
プログラムのダウンロード:
structure_header.h,
bintreestructure4.c(削除操作で回転操作を利用したもの),
int_header.h,
intSearch.c,
string_header.h,
stringSearch.c.
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch.cとbintreestructure4.cをコンパイルする.キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch.cとbintreestructure4.cをコンパイルする.]
- 2色木
プログラムのダウンロード:
structure_header.h,
redblackstructure.c,
int_header.h,
intSearch.c,
string_header.h,
stringSearch.c.
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch.cとredblackstructure4.cをコンパイルする.キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch.cとredblackstructure4.cをコンパイルする.]
- B木,B+木
- ハッシュ探索
プログラムのダウンロード:
structure_header.h,
chainhashstructure.c(分離連鎖法),
openhashstructure.c(再ハッシュなしのオープンアドレシング法),
openhashstructure2.c(空きが見つからないときに再ハッシュを行うオープンアドレシング法),
openhashstructure3.c(占用率が高いときにも再ハッシュを行うオープンアドレシング法),
int_header.h,
intSearch.c,
string_header.h,
stringSearch.c.
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch.cとchainhashstructure.cをコンパイルする.キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch.cとchainhashstructure.cをコンパイルする.]
- 外部探索
プログラムのダウンロード:
structure_header.h,
externhash_new.c(外部ハッシュ法),
int_header.h,
intSearch_e.c,
string_header.h,
stringSearch_e.c.
[注意:キーが整数の場合,ファイルint_header.hをappli_header.hにコピーしてからintSearch_e.cとexternhash_new.cをコンパイルする.キーが文字列の場合,ファイルstring_header.hをappli_header.hにコピーしてからstringSearch_e.cとexternhash_new.cをコンパイルする.]
-
万能スタックと万能キューとそれらの応用
プログラムのダウンロード:
万能スタックの提供する関数の宣言
(ダウンロードしてファイル"stackstructure.h"に保存すること),
万能スタックの提供する関数のプログラム,
算術式の計算プログラム,
万能キューの提供する関数の宣言
(ダウンロードしてファイル"queuestructure.h"に保存すること),
万能キューの提供する関数のプログラム,
グラフ構造の提供する関数の宣言
(ダウンロードしてファイル"graphstructure.h"に保存すること),
グラフ構造の提供する関数のプログラム
(頂点と辺の追加と削除,幅優先探索, 深さ優先探索),
あなたのテストでグラフの頂点と辺に置きたいデータの型の宣言
(ダウンロードしてファイル"graph_appli_header.h"に保存すること),
あなたのテストのプログラム(main関数等).
-
文字列照合のアルゴリズム
プログラムのダウンロード:
KMP法のプログラム ,
簡略版BM法のプログラム ,
拡張簡略版BM法のプログラム ,
BM法のプログラム
2011年度「ISD実習B」の資料:
2010年度「コンピュータ科学演習B」の資料:
- --NEW-- 模擬試験作成問題のプログラム:
ManualClock.java
- 1回目のノート
(Eclipseの使い方,
Hello.java,
CharTest.java,
BooleanTest.java,
StringTest.java,
LibFuncTest.java,
StdInTest.java,
BranchTest.java,
StringPlusTest.java)
- 2回目のノート
(Array1Test.java,
Array2Test.java,
LoopTest.java,
ForTest.java,
BreakTest.java,
Reverse.java,
OuterLoopBreakTest.java)
- 3回目のノート
(Fibonacci.java,
InnerProduct.java,
MatrixSum.java)
- 4回目のノート
(Point2.java,
StructTest.java,
StructTest2.java,
StructTest3.java,
StructTest4.java,
StructTest5.java)
- 5回目のノート
(Full.java,
FullTest3.java,
FullTest4.java,
FullTest5.java,
WrapperTest.java)
- 6回目のノート
(Full.java,
Manager.java,
ManagerTest.java)
- 7回目のノート
(Full.java,
Manager.java,
ManagerTest.java)
- 8回目のノート
(Employee.java,
Full.java,
Manager.java,
ManagerTest.java,
Part.java,
Sortable.java,
SortAlgorithm.java,
SortFull.java,
SortPart.java)
注意: 講義ノートの内容が分かりづらかったので,簡単にした.
- 9回目のノート
(SavingCal.java)
- 10回目のノート
(Painter.java)
- 11回目のノート
( Painter2.java)
- 12回目のノート
(MyApplet1.java,
MyApplet2.java,
MyApplet3.java,
MyApplet2Appli.java,
SavingCal2Applet.java)
- 13回目のノート
(SumIntInFile.java,
EasyCopyTextFile.java,
CopyTextFile.java,
ReadFromTextFile.java,
WriteIntoTextFile.java)
2008年度「形式言語とオートマトン2」の資料:
2008年度「プログラミング演習1」の資料:
2008年度「コンピュータ科学入門」の資料:
2008年度「プログラミング演習2」の資料:
2008年度「形式言語とオートマトン1」の資料:
-
有限オートマトン
-
非決定性有限オートマトン
(
宿題)
-
ε-動作を有する有限オートマトン
-
正則表現
-
正則表現の応用,および,正則ではない言語
-
幅優先探索と深さ優先探索のアルゴリズム
プログラムのダウンロード:
グラフ構造とそれの提供する関数の宣言
(ダウンロードしてファイル"graphstructure.h"に保存すること),
グラフ構造の提供する関数のプログラム
(頂点と辺の追加と削除,幅優先探索, 深さ優先探索),
あなたのテストでグラフの頂点と辺に置きたいデータの型の宣言
(ダウンロードしてファイル"graph_appli_header.h"に保存すること),
あなたのテストのプログラム(main関数等),
キュー構造とそれの提供する関数の宣言
(ダウンロードしてファイル"queuestructure.h"に保存すること),
キュー構造の提供する関数のプログラム,
スタック構造とそれの提供する関数の宣言
(ダウンロードしてファイル"stackstructure.h"に保存すること),
スタック構造の提供する関数のプログラム.
-
正則言語に関する問題とアルゴリズム,および,有限オートマトンの最小化
-
出力付き有限オートマトン
-
生成文法, 言語
-
Yacc, Lex
2008年度「データ構造論2」の資料:
-
1回目のノート:探索(準備,および,初等的探索法);
順次探索のプログラムをテストするための
main関数など;
順次探索のプログラムを,応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"array_structure.h"に保存すること),
データ構造の提供する関数のプログラム]と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
- 第1回目の宿題のプログラム
(注意:先生の用意した枠組みを変えないこと)
順次リスト探索のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"liststructure.h"に保存すること),
データ構造の提供する関数のプログラム]と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"list_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
おまけ:
キーボードから整数を1つ入力する関数.
キーボードから数字以外の文字を入力してもどんなに大きい整数を入力しても
正しく動作する.
仕様: void readAnInt( int *p ) .
-
2回目のノート: 2分木探索
2分木探索のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"bintreestructure.h"に保存すること),
データ構造の提供する関数のプログラム]と,応用に依存する部分
(
あなたの応用でのキーのデータ型と関数の宣言
[ダウンロードしてファイル"bin_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
-
3回目のノート: 平衡木(その1: 確率2分探索木,2-3-4探索木)
確率2分探索木のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"rbintreestructure.h"に保存すること),
データ構造の提供する関数のプログラム.]と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"rbin_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.注意: gcc以外の処理系を使用する場合,
関数srandomをsrandに,randomをrandに変えること.
2-3-4探索木のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"234treestructure.h"に保存すること),
データ構造の提供する関数のプログラム] と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"234_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
-
4回目のノート: 平衡木(その2: B-木,B+-木)
-
5回目のノート: ハッシュ探索
分離連鎖法のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"chainhashstructure.h"に保存すること),
データ構造の提供する関数のプログラム)]と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"CH_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
線形探査法のプログラムを, 応用に依存しない部分
[
データ構造の提供する関数の宣言など
(ダウンロードしてファイル"linearprobestructure.h"に保存すること),
データ構造の提供する関数のプログラム]と,応用に依存する部分
[
あなたの応用でのキーのデータ型と関数の宣言
(ダウンロードしてファイル"LP_appli_header.h"に保存すること),
あなたの応用でのデータのキーを求める関数やmain関数のプログラム]
に分けたもの.
-
データベースの基本概念
-
リレーション上の代数演算
-
2分探索木の自由課題(やりたい人はやってきてください.)
-
(JET) SQL入門
-
リレーショナルデータモデルの設計論