2015年度 シラバス学部

コンピュータ理工学基礎関連科目

2016/02/01  現在

科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
2年
単位数
/Credits
4.0
責任者
/Coordinator
渡部 有隆
担当教員名
/Instructor
黄 捷 , 鈴木 大郎 , 陳 文西 , 丁 数学 , 渡部 有隆 , 渡邊 曜大 , イエン ニール ユーウェン
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites
P1 or P2

更新日/Last updated on 2015/01/30
授業の概要
/Course outline
コンピュータは情報を操作するものです。情報の組織化・操作・利用の方法を勉強することは、コンピュータを効率的に、そして、効果的に使うために非常に重要なことです。プログラミングや現代のデータ処理において、本質的に必要なものは、問題解決のための、あるいは、主記憶と2次記憶装置にあるデータにアクセスするための、効率的なアルゴリズム(算法)と一連の命令です。この効率というものは、処理するデータの構造に直接結び付いています。他のデータ項目に効果的に結び付けることによって、データ項目は、個々の内容を越えた意味を持つようになります。データ構造は、単に項目だけでなく、互いの関係をも考慮した、データの組織化の方法です。
この授業では、アルゴリズムとデータ構造を幅広く紹介し、プログラミング演習によってそれらの定義と実装の方法を学びます。
授業の目的と到達目標
/Objectives and attainment
goals
学生はデータ構造とアルゴリズムの長所と短所の評価、データ構造の定義と構築、効率的なアルゴリズムの開発ができるようになります。そして、最先端のデータ構造とアルゴリズムを問題の解法やソフトウェア開発に適用することができるようになります。演習では、限られた資源の下で現実的な問題を解くことにより、アルゴリズムの効率の差がハードウェアやソフトウェアの差よりもずっと重要なことを体験します。授業・演習で得られた知識、評価手法、実装方法と応用力は、最先端の研究活動や高度なソフトウェア及びハードウェアの開発に役立てることができます。
授業スケジュール
/Class schedule
1導入
2計算量
3配列・リスト
4スタック・キュー
5再帰・分割統治法
6整列I
7整列II
8探索
9木
10二分木
11ヒープ
12ハッシュ
13グラフ
14グラフアルゴリズム
15動的計画法
教科書
/Textbook(s)
教科書
T.コルメン、「アルゴリズムイントロダクション第1巻」「アルゴリズムイントロダクション第2巻」、近代科学社
セジウィック、「アルゴリズムC第1巻」「アルゴリズムC第2巻」、近代科学社

副読本
渡部有隆、「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」、マイナビ

成績評価の方法・基準
/Grading method/criteria
授業への出席 10%
課題 40%
試験 50%

このシラバスは本コースの基本情報だけを提供するもので、教科書、授業スケジュール、評価方法などは担当教員により異なる可能性があるので、担当教員の指示に従ってください。
履修上の留意点
/Note for course registration
履修規程上の先修条件:P1 プログラミング入門 または P2 プログラミングC
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
http://www.u-aizu.ac.jp/course/alg1/
http://web-int.u-aizu.ac.jp/~yutaka/courses/algo/
http://judge.u-aizu.ac.jp/onlinejudge/course.jsp

Sedgewick, 「Algorithms in C」,
Addison Wesley Singh, 「Introduction to Data Structures」,
T.Cormen「Introduction to Algorithms」
West Decker, 「Data Structures」,
Prentice Hall Baase, 「Computer Algorithms」,
Addison Wesley (日本語版:サラ・バース、「アルゴリズム入門」,
ピアスン・エデュケーション) 築山 修治, 「アルゴリズムとデータ構造の設計法」, コロナ社
奥村 晴彦, 「C 言語によるアルゴリズム事典」, 技術評論社


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
2年
単位数
/Credits
2.0
責任者
/Coordinator
浅田 智朗
担当教員名
/Instructor
浅田 智朗 , モハメド ハマダ , ファン トウアン ドゥク
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites
F3

更新日/Last updated on 2015/01/29
授業の概要
/Course outline
現代のデジタル通信社会においては,「如何に効率よく,かつ正確に伝送するか。」が,最重要命題の一つとなっている。この問いに理論的に答えるのが“情報理論”である。
情報理論は,確率・統計学に基づいて,情報のもつ統計的な性質のみに着目して,より効率的な情報源圧縮法,より正確な情報伝達法に対する数学的な解を明示している。
現代社会において情報理論は,画像データの圧縮,暗号理論,衛星通信等に幅広く応用されている。この授業では情報源符号化と通信路符号化の基本を学ぶ。さらに,A/D変換に伴う標本化,量子化の基本,余裕があれば画像圧縮,暗号理論についても学ぶ。
授業の目的と到達目標
/Objectives and attainment
goals
符号理論・通信理論の基礎である,情報量,情報源,エントロピー,情報源符号化,通信路符号化,誤り訂正符号,標本化定理,量子化理論,暗号理論等を習得する。
授業スケジュール
/Class schedule
・確率と統計,平均と分散,条件付き確率
・情報理論の歴史
・瞬時符号,クラフトの不等式,一意的に復号可能
・平均符号長,エントロピー
・情報源符号化定理,ハフマン符号
・マルコフ情報源,遷移図, 定常確率
・ランレングス符号,ZL符号,算術符号,シャノン符号
・情報量,条件付きエントロピー,相互情報量
・通信路容量,2元対称通信路,最尤復号化
・誤り訂正符号,パリティチェック,通信路符号化
・長方形符号,三角形符号,線形符号,巡回符号
・ハミング符号,生成行列,パリティチェック行列,シンドローム
・原始多項式,符号生成多項式
・標本化定理,量子化
・(暗号の基礎,秘密鍵暗号,公開鍵暗号)
・(フーリエ変換,離散コサイン変換,画像圧縮)
教科書
/Textbook(s)
大石,「例にもとづく情報理論入門」,講談社。
成績評価の方法・基準
/Grading method/criteria
中間試験(1/3),期末試験(1/3),その他小テスト等(1/3)。
履修上の留意点
/Note for course registration
特になし。
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
http://web-int.u-aizu.ac.jp/~asada/class/IT.html (浅田智朗)


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
2年
単位数
/Credits
3.0
責任者
/Coordinator
ローター シュミット
担当教員名
/Instructor
杉山 雅英 , ローター シュミット , 浅井 和人 , 森 和好 , イゴール ルバシェフスキー
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/26
授業の概要
/Course outline
This course is an introduction to Discrete Mathematics. The subject is important for computer scientists and engineers since almost all computer structures are based on discrete bits.
(1) In Logic and Set Theory, the most fundamental concepts of mathematical thinking (elementary logic, sets and mathematical propositions) and basic operations on them are introduced. This yields the structures of Boolean lattices/algebras and propositional calculus. This topic is important for computing since any theoretical argument or model uses this formalism. Examples for applications: using Boolean lattices to simplify computer hardware circuits; using theoretical arguments to design fast computer algorithms. Partition of sets into disjoint subsets (equivalence classes) is also studied. Examples for applications: information classification; computer-reconstruction of noisy images.
(2) In Relations and Functions, binary relations and their expression via 0/1-matrices are studied. We study properties of relations such as reflexivity, symmetry and transitivity, order, the composition of relations and corresponding matrix expressions. This includes the study of equivalence relations and classes (see above) which have important applications in computing. Examples: automatic information-clustering (in fuzzy logic and control); automatic simplification of computer programs. Ordered structures are important for understanding information storage and access in computers.
The study of relations leads to the study of functions which are a special type of relation. For functions, injectivity, surjectivity, bijectivity are studied. As a consequence of studying bijective (invertible) functions, one can define the cardinality of sets and, in particular, countable sets. Examples for applications: estimating/counting steps in a computation; the study of logic and its consequences for computing such as the following AI question: `Which theorems can be automatically proven given a system of mathematical rules?' Other types of functions such as characteristic functions are studied. Example for applications: computer control based upon fuzzy logic.
(3) In Graph Theory & Automata, we first study basic notions such as the degree of vertices, isomorphisms of graphs, walks in graphs, paths in graphs, or the diameter of a graph. In addition, we study a number of special graphs which occur in models and applications. Graphs can be represented by matrices which is important for their computer implementation. Examples for applications: every computer network or the whole WWW can be seen as graphs; information-linkage can be described by graphs (similarity of DNA structures or writing styles among people). Trees are an important class of graphs. A computer file-directory is a tree. Many company-structures are like a tree. Minimal spanning trees and minimal weighted paths in a graph are studied in this course.] Examples for applications: cost-minimalization in transportation or in production facilities.
Automata, a formalization of computer programs and computation, are described by certain types of graphs. The simplification of automata, which yields improved software and hardware performance in computers uses a combination of the above topics such as functions and equivalence relations.
(4) Finally, Combinatorics is a topic that is connected to most of the above, in particular, if one wants to determine the number of instances for a particular mathematical structure. Several principles of counting are studied, and basic notions such as binomial coefficients, permutations, combinations, repeated permutations, multinomial expansion, and (ordered) partitions. This includes studying mathematical induction. Combinatorics is important to count and estimate the number of computing steps and computing time in applications.



授業の目的と到達目標
/Objectives and attainment
goals
Logic, Set Theory, Boolean algebras, Relations, Order, Functions, Graph Theory, Finite Automata, and Combinatorics.


授業スケジュール
/Class schedule
Logic, Set Theory, Boolean algebras, Relations, Order, Functions, Graph Theory, Finite Automata, and Combinatorics.


教科書
/Textbook(s)
[1] Discrete Mathematical Structures.
B. Kolman, R.C. Busby, S.C. Ross.
Prentice Hal
[2] Discrete Mathematics.
S. Lipschutz (McGraw-Hill),
translated by Hiroshi Narushima. Ohm-sha.



成績評価の方法・基準
/Grading method/criteria
Attendance. Exercises. Exams.


履修上の留意点
/Note for course registration
This is a basic course with essentially high school mathematics as prerequisite.
Formal prerequisites:None



参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
Discrete Mathematical Structures. / B. Kolman, R.C. Busby, S.C. Ross. / Prentice Hall Int. Inc.
Discrete Mathematics (McGraw-Hill). / S. Lipschutz, / translated by Hiroshi Narushima. Ohm-sha.



科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
2年
単位数
/Credits
4.0
責任者
/Coordinator
齋藤 寛
担当教員名
/Instructor
北道 淳司 , 小平 行秀 , ウォンミィング チュー , 西村 憲 , 齋藤 寛 , ベン アブダラ アブデラゼク , 富岡 洋一
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/02/03
授業の概要
/Course outline
論理回路設計は,ディジタル集積回路設計の一過程で,集積回路として実現したい機能を0と1をとる論理変数と論理和,論理積,論理否定といった論理演算を用いて設計することです.
設計というからには,良し悪しが存在します.よい設計とは,コストが安い,あるいは性能の良い設計です.回路が正しく動作するよう設計することはもとより,最適化手法を駆使して良い設計を得る必要があります.
授業の目的と到達目標
/Objectives and attainment
goals
論理回路設計における基礎知識や,設計手法ならびに最適化手法を学び,与えられた仕様から自分で論理回路を設計できるようになることが目的です.

演習では,真理値表などによる仕様より自分で論理回路を生成し,回路図作成ソフトウェア上に設計します.また,シミュレータを使ってシミュレーションを行い,設計された回路が正しいかどうかを検証します.
授業スケジュール
/Class schedule
(担当教員によって異なりますが、おおよそ以下の内容を学習します)
1 数の表現(二進数,負数の表現,加減算)
2 ブール代数
3 二段論理と二段論理簡単化
4 論理関数の様々な表現
5 遅延とハザード
6 組み合わせ回路設計(各種演算器,階層設計)
7 メモリ論理設計
8 順序回路設計 (有限状態機械,同期式回路)
9 論理検証
教科書
/Textbook(s)
(担当教員によって異なります)
成績評価の方法・基準
/Grading method/criteria
中間試験,期末試験,レポート,宿題など
(担当教員によって異なります)
履修上の留意点
/Note for course registration
離散系論,論理回路設計特論,コンピュータアーキテクチャ,VLSI設計論
履修規程上の先修条件:なし


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
3年
単位数
/Credits
4.0
責任者
/Coordinator
宮崎 敏明
担当教員名
/Instructor
ウォンミィング チュー , 西村 憲 , 劉 勇 , 北道 淳司 , 宮崎 敏明 , 中里 直人 , ベン アブダラ アブデラゼク
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites
L4 & F4

更新日/Last updated on 2015/01/27
授業の概要
/Course outline
コンピュータアーキテクチャの基礎、設計手法、および性能評価法ついて学ぶ。 コンピュータはプロセッサ、メモリ、入出力装置等から成り立っているが、論理回路設計論で学んだ演算器や制御回路をどのように組み合わせることでこれらが構成できるかについて解説する。コンピュータを設計する際には、 性能、コスト、柔軟性、プログラム容易性、消費電力等、さまざまな要求を考慮しなければならない。本科目では商用プロセッサの1つであるMIPSを例に挙げ、そのアーキテクチャを解説し、これらの要求に対してどのような配慮がなされているかを見て行く。演習では、Cadenceツールを使った MIPS プロセッサの実装及び動作検証シミュレーションを行う。また、アセンブラプログラミングについても学習し、プロセッサの基本動作を理解する。
授業の目的と到達目標
/Objectives and attainment
goals
・コンピュータアーキテクチャの主要原理を理解する
・アセンブラプログラミングの基礎を知る
・ハードウエア記述言語を用いたプロセッサ設計の概要を学ぶ
授業スケジュール
/Class schedule
・コンピュータアーキテクチャ概要
・命令セットアーキテクチャ(ISA)、性能評価法 (2コマ)
・MIPS 命令セットと簡単なプログラム例 (2コマ)
・コンピュータにおける演算法 (2コマ)
・データパスと制御 (2コマ)
・シングルサイクル実装とマルチサイクル実装 (2コマ)
・パイプラインとハザード軽減 (2コマ)
・メモリ階層 (キャッシュと仮想記憶)(2コマ)
教科書
/Textbook(s)
・パターソン&ヘネシー,「コンピュータの構成と設計 第4版 (上), (下)」, 日経BP社
・原著Computer Organization and Design - The Hardware/Software Interface. David. A. Patterson and John L. Hennessy, 4th edition, Morgan Kaufmann Publishers, ISBN 0123747503
(ただし、上記第4版では、マルチサイクルに関しての記述が内ので、適宜下記第3版の内容を講義では用いる。)
・パターソン&ヘネシー,「コンピュータの構成と設計 第3版 (上), (下)」, 日経BP社
・原著Computer Organization and Design - The Hardware/Software Interface. David. A. Patterson and John L. Hennessy, 3rd edition, Morgan Kaufmann Publishers, ISBN 0123706068, 2007.
成績評価の方法・基準
/Grading method/criteria
・Liu,、Chuクラス
 期末テスト (45%)、 演習リポート (45%)、 出席 (10%)。 追試験は実施しない。
・西村、Abderazekクラス
・宮崎、北道、中里クラス
 定期テスト(50%)、演習リポート(50%)、追試験は実施しない。
履修上の留意点
/Note for course registration
演習リポートは必ず提出すること。
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
参考リンク先
初回の講義時にアナウンスする。

参考図書
"HDLによるVLSI設計―VerilogHDLとVHDLによるCPU設計 第2版" 深山正幸 他著


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
2年
単位数
/Credits
4.0
責任者
/Coordinator
アレクサンダー ヴァジェニン
担当教員名
/Instructor
劉 勇 , アレクサンダー ヴァジェニン , 大井 仁 , ソン グオ , コンスタンティン マルコフ , 西舘 陽平 , 李 鵬 , 大津山 公平
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites
L4

更新日/Last updated on 2015/01/25
授業の概要
/Course outline
Operating systems are an essential part of any computer system. Similarly, a course on operating systems is an essential part of any computer-science education. The operating system provides certain services to programs and to the users of those programs in order to make the programming task easier. In this course, four parts of the core of operating systems will be mainly learned. They are process management, memory and storage management, file system management, and I/O system management. Also, some abstract concepts such as cooperation of multi-process and deadlock will be discussed. We do not concentrate on any particular operating system or hardware. Instead, we discuss fundamental concepts that are applicable to a variety of systems. We present a large number of examples that pertain specifically to UNIX and to other popular operating systems.
授業の目的と到達目標
/Objectives and attainment
goals
1. To learn the concepts about OS.
2. To get the knowledge about process management, including process concept, inter-process communication, and CPU scheduling.
3. To learn memory management including page management and virtual memory.
4. To learn the design and implementation of file system.
5. To get the knowledge about software and hardware of I/O system.
授業スケジュール
/Class schedule
1. Operating System Concepts and Components
Topics to study:
OS Concepts
Computer-system components
Evolution Steps
OS Components
OS Services

2. PROCESSES
Topics to study:
Process Concept
Process States and Scheduling
Operations on Processes
Cooperating Processes
Threads
Inter-process Communication

3. CPU Scheduling
Topics to study:
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
Algorithm Evaluation
Conclusion

4. Process Synchronization and Deadlocks
Topics to study:
Background
Critical Section Problem
Semaphores
Classical Problems
Necessary Conditions of Deadlocks
Resource Allocation Graph
Deadlock Prevention
Deadlock Avoidance
Deadlock Detection
Recovery from a Deadlock

5. Memory Management
Topics to study:
Background
Logical versus Physical Address Space
Swapping
Contiguous Allocation
Paging Model of Logical and Physical Memory
Implementation of a Page Table
Multilevel Paging
Inverted Page Table
Segmentation: Basic Methods
Segmentation with Paging
Demand Paging
Performance of Demand Paging
Page Replacement Algorithms
Allocation Frames
Thrashing
Demand Segmentations

6. File Management
Topics to study:
File-System Concepts
File Attributes
File Operations and Access Methods
Directory Structure and Implementation
Protection Machanizm
File-System Organization
Allocation Methods
Free-Space Management
Directory Implementation
Efficiency and Reliability
Mass-Storage Management

7. Distributed Systems
Topics to study:
Background
Motivation
Topology
Network Types
Communication Strategies
Design Strategies
教科書
/Textbook(s)
1. Modern Operating Systems, by Andrew S. Tanenbaum, Prentice-Hall, Inc, 2008.
2. Operating System Concepts, 5-8, A. Silberschatz and P. B. Galvin, John Wiley & Sons, Inc.
3. Materials and handouts provided by instructurs
成績評価の方法・基準
/Grading method/criteria
Final examination, midterm, experimental reports, and class participation.
履修上の留意点
/Note for course registration
Computer Architecture or Computer Organization, Basic Algorithms and Data Structures, Programming I (C or C++) or Java

履修規程上の先修条件:L4 コンピュータシステム概論
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
1. Course WWW-site will be provided by each instructor.
2. 「オペレーティングシステム」前川 守著 岩波書店 ISBN4000103466


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
サバシュ バーラ
担当教員名
/Instructor
サバシュ バーラ , ウォンミィング チュー , マキシム モズゴボイ
推奨トラック
/Recommended track
CF,CM,SE
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/02/02
授業の概要
/Course outline
Database systems are commonly used for information Systems.
The course covers system architecture, and database design.
It also covers the relational database systems technology.
It provides knowledge of application development and
experiments of working with relational databases.
Concepts related to web data,  knowledge and information
extraction, and Data Mining are explained. Most of the study  uses
detailed examples and class exercises.
授業の目的と到達目標
/Objectives and attainment
goals
Philosophy and characteristics of the subject :
A tabular (relational) model of a data is created.
The model aims at understanding the users, Programmers and
implementation level difficulties. The course prepares the
participants to become system engineers, designers, and
software developers.  The first part, explains relational
theory and query languages for databases.
Second part contains a study of database management system.
授業スケジュール
/Class schedule
---------------------------------------------------------------------------
#  DATE     LECTURE TOPIC         OHP   Text:CHAP     LAB EXERCISES
---------------------------------------------------------------------------
1 Apr  7  Data Model+Operations  1-30     1,3  help exercises + HomeWork
2 Apr 14  Datbase Query Languages31-60    3,4  Model Database + Homework
3 Apr 21  Relational Algebra     61-90    4    Database I + HW
4 May 12  Relational Calculus    91-136   4    DatabaseII + HW
5 May 19  Dictionary and storage 61-136   2    Design of a Database + HW
6 May 26  Storage Indexing      136-165       Complete  Hw + Ex ( Part I )
-----------------------Mid-Term exam ( May 29 )--------------------------
7 Jun  2 Objects - Relations     1-20    5    startup(PostgreSQL O-RDBMSs)
8 Jun 09 Data Integrity         21-40    8    loading database
9 Jun 16 DBMS Architecture       41-60   1,2  simple SQL queries
10Jun 23 SQL  -  Programming    61-80    3    complex SQL queries
11Jun 30 Relational databases   81-100   4    SQL functions and procedures
12Jul  7 Views,XML,O-RDBMS     100-120  22    Database modifications
13Jul 14 Postgres Internals    120-140  10    Web database programming
14Jul 21 Web Data              140-160  10  Complete  Hw + Ex ( Part II)
15Jul 28 Postgres APIs         160-190
-----------------------------------------------------------------------------
The Lecture classes will be held on Tuesdays. Exercises will be on Thursdays.
There are 15 lecture and 15 Exercise meetings, as above.
教科書
/Textbook(s)
Database Systems Concepts, 6th edition,
by Korth, H.A., Silberschatz, A., and Sudershan, S., McGrawHill Book Co., 2010.
成績評価の方法・基準
/Grading method/criteria
Mid-term Examination(30 points); Two short quizzes (40 points (20 points each))
Database Programming Assignments(30 points)
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
Useful Links:
Course link for slides/handouts and exercise sheets
References:
Books, Course material, OHPs and notes recommended by the instructor(s).


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
鈴木 大郎
担当教員名
/Instructor
森 和好 , モハメド ハマダ , 鈴木 大郎
推奨トラック
/Recommended track
CF,SD,VH,RC
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/30
授業の概要
/Course outline
オートマトン言語理論は計算の理論の最も基本的な理論である。ここで中心となるのは、
言語といわれる無限集合(主に可算無限である) を記述する方法を知ることである。
本講義では、主要な2つの方法、すなわち、認識/受理システムであるオートマトンと、
生成システムである文法についてについて学ぶ。さらに、文法とオートマトンを通じて
形式言語の関係、言語の階層性、言語の多様な記述方法について学ぶ。
これらのものは、現実に直面する問題を定式化し、それが容易に解けるものかどうかを
判断したりするのに有益なツールとなる。
授業の目的と到達目標
/Objectives and attainment
goals
本講義は以下のことを理解させることを目指している。
1. (可算)無限集合(=言語)を正確に記述することの必要性
2. 言語の記述法、すなわち、言語の認識装置としてのオートマトン、言語の生成装置と
   しての文法
3. 言語に対するオートマトン、文法の設計法
4. オートマトン、文法に対する制約とそれの言語の記述能力に対する影響、
   チョムスキーの階層
5. オートマトンと文法との関係
授業スケジュール
/Class schedule
第1週 序論
はじめに、本講義の概要、講義を受ける上での注意事項などを説明する。
本講義の序論として、言語とは何かを説明し、それを記述する装置としての
オートマトン、文法の概要について説明する。

第2週--第4週 オートマトン
オートマトンとそれによって受理される言語について学ぶ。具体的には、以下の
4種類のオートマトンについて詳しく学ぶ。
有限オートマトン、プッシュダウンオートマトン、チューリング機械と線形拘束オートマトン

第5週--第8週 文法
文法とそれによって生成される言語について学ぶ。具体的には、以下の4種類の
文法について詳しく学ぶ。
正規文法と正規言語、文脈自由文法と文脈自由言語、文脈依存文法と文脈依存言語、
句構造文法と句構造文法

第 9週--第12週 オートマトンと文法との関係
これまでは、オートマトンと文法とを個別に学んできたが、言語を記述する装置という
観点から何らかの関係があることが期待される。ここでは,両者の関係について学ぶ。
具体的には、これまでに定義された4種類のオートマトンと4種類の文法とが、言語
記述能力という観点から見たとき、対応していることを明らかにする。すなわち、
次のような対応があることを説明する。
有限オートマトンと正規文法、プッシュダウンオートマトンと文脈自由文法、
線形拘束オートマトン文脈依存文法、チューリング機械と句構造文法

第13週--第15週 言語のクラスの階層性
これまでの講義で4つの言語クラスが存在することを説明した。これから、Chomskyの
階層といわれる関係を明らかにする。そのために各言語のクラスに属する言語が持つ
性質について調べ、一方のクラスには属さない言語が存在することを示す。
具体的には、以下のことを説明する。
正規言語の性質と正規言語ではない言語の存在, 文脈自由言語の性質と文脈自由言語
ではない言語の存在, 文脈依存言語の性質と文脈依存言語ではない言語の存在
教科書
/Textbook(s)
各教員が教科書を指定する。第1回目の講義までに用意しておくこと。
成績評価の方法・基準
/Grading method/criteria
成績の評価は、次のものに基づいて行なう。

1. 中間試験、期末試験の成績
2. 授業中のクイズ、課題レポート
3. 出席状況

その重みは各教員に依存する。評価方法の詳細については、各教員が
講義のはじめに説明する。
履修上の留意点
/Note for course registration
履修するに当たって、F3離散系論を学んでいることが望ましい。プログラミング、
アルゴリズム、計算機のハードウエア、(抽象レベルでの)計算機の動作についての
基本的な知識があることを期待する。

後期に開講される言語処理系論(特に、コンパイラの前半の処理である字句解析、
構文解析の学習)においては、オートマトン言語理論の知識がないと学習に
支障を来すから、言語処理系論を受講する予定のものは、本科目の受講を強く薦める。
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
参考図書として次のものを挙げておく。

* J. Hopcroft, J. Ullman: Introduction to Automata Theory,
Languages and Computation, Addison-Wesley, 1979.
* J. L. Hein: Theory of Computation, An Introduction,
Jones and Bartlett, 1996.
* M. Sipser: Introduction to the Theory of Computation,
PWS Publishing Co., 1996.
* N. Pippenger: Theories of Computability,
Cambridge Univ. Press, 1997.
* R. Greenlaw, H. J. Hoover: Fundamentals of the Theory of
Computation, Morgan Kaufmann Pubs.Inc., 1998
* A. Meduna: Automata and Languages, Theory and Applications,
Springer, 1999.
* J. Hopcroft, R. Motwani, J. Ullman: Introduction to Automata Theory,
Languages, and Computation(3rd ed.), Addison-Wesley, 2006.
* P. Linz: An Introduction to Formal Languages and
Automata(5 ed.), Jones and Bartlett, 2012.
* 本多波雄:オートマトン言語理論、コロナ社(1972)
* 福村晃夫、稲垣康善:オートマトン形式言語と計算論、 岩波書店(1982)
* J.ホップクロフト、J.ウルマン(野崎他訳):オートマトン 言語理論計算論I、II、 サイエンス社(1984、1986)
* V.J.レイワードスミス(吉田他訳):言語理論入門、共立出版(1986)
* 有川節夫、宮野悟:オートマトンと計算可能性、培風館(1986)
* A.サローマ(野崎他訳):計算論とオートマトン理論、サイエンス社(1988)
* 嵩忠雄、都倉信樹、谷口健一:形式言語理論、
電子情報通信学会(1988)
* 米田政明:計算機科学の基礎、森北出版(1991)
* 富田悦次、横森貴:オートマトン言語理論、
森北出版(1992)
* 足立暁生:オートマトンと言語理論、森北出版(1992)
* 米田政明、広瀬貞樹、大里延康、大川知:オートマトン言語理論の基礎、近代科学社(2003)
* 丸岡章:計算理論とオートマトン言語理論、
サイエンス社(2005)
* 大川知、広瀬貞樹、山本博章:オートマトン言語理論入門、共立出版(2012)
* 川添愛、白と黒のとびら: オートマトンと形式言語をめぐる冒険、東京大学出版会(2013)


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
4年
単位数
/Credits
3.0
責任者
/Coordinator
浅井 信吉
担当教員名
/Instructor
浅井 信吉 , コンスタンティン マルコフ
推奨トラック
/Recommended track
CF,CM
履修規程上の先修条件
/Prerequisites
F1

更新日/Last updated on 2015/02/02
授業の概要
/Course outline
The study of algorithms is at the very heart of computer science. This course is intended to teach the advanced computer algorithms and techniques for their design and analysis. After the course the students will have a solid background for this type of activity, as well as for representing algorithms in the format of computer programs.
授業の目的と到達目標
/Objectives and attainment
goals
This course will cover (but not limited to) the following contents: algorithms and their complexity, graph algorithms, heaps, B-trees, matrix multiplication, algebraic path problem, special mathematical algorithms, string pattern matching, divide-and-conquer, dynamic programming, recursion, greedy, and algorithm design techniques.
授業スケジュール
/Class schedule
Lecture 01 - Algorithms and their Complexity;
Lecture 02 - Priority Queue and Heap;
Lecture 03 - Graphs and Representations;
Lecture 04 - Weighted Graphs;
Lecture 05 - Shortest Path Problem;
Lecture 06 - Transitive Closure;
Lecture 07 - String-Matching Problem;
Midterm Exam.
Lecture 09 - Algorithm Design Techniques: Greedy Algorithms;
Lecture 10 - Algorithm Design Techniques: Divide-and-Conquer;
Lecture 11 - Algorithm Design Techniques: Dynamic Programming;
Lecture 12 - Algorithm Design Techniques: Backtracking;
Lecture 13 - Random Number Generators;
Lecture 14 - Randomized Algorithms;
Lecture 15 - Models of Computations.
教科書
/Textbook(s)
Robert Sedgewick. Algorithims in C (Addison Wesley Professional, 1990, ISBN:0-201-51425-7)
成績評価の方法・基準
/Grading method/criteria
Lab. Exercises: 60%;
Mid-Term Exam: 20%;
Final Exam: 20%;
(Note: Alterable by the professor in charge of the class.)
履修上の留意点
/Note for course registration
F3 Discrete Mathematics
F1 Algorithms and Data Structures
履修規程上の先修条件:F1 アルゴリズムとデータ構造
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
Course Website: http://hare.u-aizu.ac.jp/classaa/2013
1. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman. The Design and Analysis of Computer Algorithms (Addison Wesley Professional, 1974, ISBN:0-201-00029-6);
2. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman(著), 野崎昭弘, 野下浩平(訳)『アルゴリズムの設計と解析I』 (サイエンス社, 1977, ISBN:4-7819-0279-0);
3. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman(著), 野崎昭弘, 野下浩平(訳)『アルゴリズムの設計と解析II』 (サイエンス社, 1977, ISBN:4-7819-0280-4);
4. Robert Sedgewick(著), 野下浩平, 星守, 佐藤創, 田口東(訳)『アルゴリズムC 第1巻 基礎・整列』 (近代科学社, ISBN:4-7649-0255-9);
5. Robert Sedgewick(著), 野下浩平, 星守, 佐藤創, 田口東(訳)『アルゴリズムC 第2巻 探索・文字列・計算幾何』 (近代科学社, ISBN:4-7649-0256-7);
6. Robert Sedgewick(著), 野下浩平, 星守, 佐藤創, 田口東(訳)『アルゴリズムC 第3巻 グラフ・数理・トピックス』 (近代科学社, ISBN:4-7649-0257-5);


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
モハメド ハマダ
担当教員名
/Instructor
鈴木 大郎
推奨トラック
/Recommended track
SD
履修規程上の先修条件
/Prerequisites
F8

更新日/Last updated on 2015/02/02
授業の概要
/Course outline
プログラミング言語処理は、コンピュータ科学において基本的かつ必須の科目であり、
1950年代初めから精力的に研究され、今日でも重要な研究分野である。
この授業では、言語処理の基本的な技法とコンパイラの開発について、講義と
簡単なコンパイラのフロントエンドを作成するプログラミング演習を通じて、
学んでいく。
授業の目的と到達目標
/Objectives and attainment
goals
この授業の目的は以下の通りである。
-- プログラミング言語処理で培われてきた技法を、将来携わるプログラム開発で応用できる
   ようにする。
-- プログラミング言語処理に置ける理論と実際との関係を学ぶことで、コンピュータ科学の
   理論的な課題を学ぶ必要性に対する動機付けになる。
-- プログラミング演習での中規模のプログラム作成を通して、プログラミング言語処理技法の
   習得と、全般的なプログラミングスキルの向上を図る。

この授業を修めた学生は、以下のことについて理解できるようになる。
-- コンパイラ、インタプリタなどのプログラミング言語の処理系の役割
-- コンパイラの重要性
-- コンパイル処理の方法
-- 理論(オートマトンや文法)と実際(プログラミング言語処理系)との関係

また、この授業を修めた学生は、以下のことができるようになる。
-- プログラミング言語についての適切な理解
-- プログラム開発における言語処理系で使われる技法の適切な応用
-- 簡単なコンパイラのフロントエンドの実装を通し、言語処理系の
授業スケジュール
/Class schedule
本科目の講義では以下の内容を扱う(特に、コンパイラの前半部を重点的に講義する)。
1. 概論: コンパイラの概説。、コンパイラの構成、プログラミング
   言語の処理におけるコンパイラとインタプリタの役割。
2. 字句解析: 字句解析器(スキャナ)の役割、字句(トークン)、正規表現、
   正規表現による字句の定義、有限オートマトンの字句解析への応用。
3. 構文解析:構文解析器(パーザ)の役割、トップダウン構文解析技法、
   LL(1)構文解析、ボトムアップ構文解析技法、LR(1)構文解析、
   構文主導型変換法。
4. コンパイラの自動生成系:スキャナとパーサの自動生成、自動生成の
   ためのツール解説。
5. 意味解析: 意味情報の解析、型検査、記号表。
6. 中間コード生成: 中間言語(抽象構文木、スタック表現(後置表現)、3番地コード)。
   3番地コード、中間コードの生成方法。実行時データ構造
7. 中間コード最適化:簡単な最適化技法の紹介
8. 目的コード生成:中間コードからの目的コード生成。コード生成器。

演習では、与えられた原始言語を中間コード(構文木)に翻訳するコンパイラの
フロントエンドを作成する。以下のサブプログラムを作成することで、コンパイラの
フロントエンドを完成させる。
作成し、
・字句解析プログラム
・記号表管理プログラム
・構文解析、意味解析、中間コード生成を行う構文主導翻訳
  プログラム(パーサ自動生成ツールを利用)、

また、構文解析の手法などについて、講義室での演習も行う。
教科書
/Textbook(s)
コンパイラ -- 言語処理系の基礎から yacc/lex まで --
大川 知、鈴木 大郎. 近代科学社. 2008.
成績評価の方法・基準
/Grading method/criteria
本科目の基本方針は以下の通り。

1. 科目としての要求
(a) 講義への出席
(b) 試験(中間試験(必須)、定期試験)
(c) 演習への参加、プログラム課題の提出

2. 評価
-- 評価は、中間試験、定期試験、講義室での演習課題、プログラミング課題のみにより行う。
-- 評価基準は授業時間内に行う。
-- 再試験は行わない。
履修上の留意点
/Note for course registration
Cプログラミング、Javaプログラミング I, データ構造とアルゴリズムの
単位取得済であることが望ましい。オートマトンと言語理論は先修条件なので
履修は必修だが、単位取得していることが求められる。


*履修規程上の先修条件  Formal prerequisites
F8 オートマトンと言語理論
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
以下の参考書の他に、担当教員が参考書、ハンドアウト、その他の教材の情報を
必要に応じて随時提供する。

1. Compiler Design by Bergmann. WCB. Available for free download at
http://elvis.rowan.edu/~bergmann/books.html.

2. Compilers -- Principles, Techniques and Tools by M.S. Lam, R. Sethi,
   J.D. Ullman and A.V. Aho. Addison-Wesley. (2nd Ed.), 2006.

3. Introduction to Compiler Construction in a Java World by B. Campbell,
   S. Iyer and B. Akbal-Delibas. Chapman and Hall/CRC, 2012.


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
西舘 陽平
担当教員名
/Instructor
寺坂 晴夫 , 西舘 陽平
推奨トラック
/Recommended track
CM,BM
履修規程上の先修条件
/Prerequisites
F1

更新日/Last updated on 2015/02/02
授業の概要
/Course outline
数値計算手法の基礎について学ぶ科目。
コンピュータサイエンスにおいて幅広く使われる、数値計算手法やアイディアについて応用例を交えながら学ぶ。
授業の目的と到達目標
/Objectives and attainment
goals
この科目を修めた受講生は主要な数値計算手法を理解し、それを利用したプログラムを開発し、実用的な問題を解くことができるようになる。
授業スケジュール
/Class schedule
第1週:イントロダクション、数値誤差
        -イントロダクション
        -浮動小数点表現
        -コンピュータのパラメータの測定
第2週:浮動小数点演算誤差
        -桁落ち
        -誤差の伝搬
        -関数評価
第3週:関数の根
        -2分法
        -ニュートン法
        -系ためのニュートン法
第4週:線形代数方程式
        -ベクトルと行列
        -ピボットによるガウスの消去法
        -LU分解
第5週:逆行列と行列の固有値
        -行列式
        -行列の反転
        -行列の固有値、ヤコビ法による対角化
第6週:補間と曲線あてはめ
        -ラグランジェ補間
        -ニュートン補間
        -最小2乗法
第7週:3次スプライン
        -3次スプライン補間
        - B-スプライン
第8週:数値差分と数値積分
         -前進差分と中央差分
         -数値積分、台形公式
         -シンプソン公式
         -ガウス求積
第9週:常微分方程式
         -オイラー法
         -予測子修正法
         -ルンゲ・クッタ法
         -1階系
第10週:偏微分方程式
         -差分法
         -ラプラス方程式
         -ポアソン方程式
         -微分型境界条件
第11週:疎行列のための方法
        -行列の形式
        -直接解法
        -反復法  
第12週:乱数生成とモンテカルロ法
         -線形合同法
         -モンテカルロ法による積分
第13週:有限要素法(1)
         -ガラーキン法
         -変分法による定式化
         -有限要素方程式
第14週:有限要素法(2)
         -離散化
         -要素
         -3角形要素   
第15週:有限要素法(3)
         -アイソパラメトリック要素
         -有限要素方程式の組み立てと解
教科書
/Textbook(s)
講義資料.
数値で学ぶ計算と解析,金谷健一,共立出版.
成績評価の方法・基準
/Grading method/criteria
演習課題 50%
中間試験 20%
期末試験 30%
履修上の留意点
/Note for course registration
Cプログラミング、Javaプログラミング、アルゴリズムとデータ構造、微分積分、線形代数.

履修規程上の先修条件:F1 アルゴリズムとデータ構造


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
4年
単位数
/Credits
2.0
責任者
/Coordinator
浅田 智朗
担当教員名
/Instructor
浅田 智朗
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/28
授業の概要
/Course outline
データ圧縮技術は,その生い立ちが情報理論,符号理論にあり,さまざまな研究が行われている。現実に,それらの理論を知らなくてもデータ圧縮は頻繁に行われており,事実上ブラックボックスのように扱われている。また基本的なことは,情報理論,画像圧縮等で知っていても,いざプログラミングしようとすると困難なことが多い。
この授業では,データ圧縮技術の基本を理解し,各種の圧縮手法を実装することを目標とする。
授業の目的と到達目標
/Objectives and attainment
goals
データ圧縮の基本を理解し,各種の基本的な圧縮法を実装できることを目標とする。
授業スケジュール
/Class schedule
・ データ圧縮の用語と歴史
・ Huffman符号
・ Huffman符号演習
・ 適応型Huffman符号
・ 適応型Huffman符号演習
・ 算術符号
・ 算術符号演習
・ 移動窓による圧縮,LZSS
・ LZSS演習
・ LZW
・ LZW演習
・ 画像圧縮,DCT
・ DCT演習
・ Fractal
・ Fractal演習
教科書
/Textbook(s)
データ圧縮ハンドブック[改訂第2版],M.ネルソン,J.L.ゲィリー著,トッパン
成績評価の方法・基準
/Grading method/criteria
演習課題のレポート
履修上の留意点
/Note for course registration
C言語に習熟していること。
情報理論を学習していることが望ましい。
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
http://web-int.u-aizu.ac.jp/~asada/class/DC.html


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
3年
単位数
/Credits
2.0
責任者
/Coordinator
陳 文西
担当教員名
/Instructor
陳 文西
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/28
授業の概要
/Course outline
地理情報システム(GIS)やコンピュータグラフィックス(CG)、コンピュータ援用設計(CAD)、パターン認識などでは大量の幾何図形データを高速に処理しなければならない。本科目では、コンピュータでこのような幾何学的な問題を取り扱うための効率的なアルゴリズムとデータ構造の設計と解析を勉強する。
本授業は実世界の問題を提起し、計算幾何学と結びつけ、直観的な考え方から出発し、アルゴリズムを導き出し、適切なデータ構造を用いて問題を解く手法を説明する。
プログラミング宿題の他に、プロジェクト研究課題を設け、計算幾何学知識を活かせて、実際の問題解決へのアプローチを身に付けながら計算幾何学の素晴らしさを楽しむ。
授業の目的と到達目標
/Objectives and attainment
goals
計算幾何学の基本となるデータ構造やアルゴリズムを理解し、具体的な問題に対して応用できるようにする。
授業スケジュール
/Class schedule
第一章 基本概念  主要な幾何学的問題、典型的なデータ構造とアルゴリズムの復習
第二章 線分交差  直交線分と任意線分の交差検出
第三章 凸包     定義と計算方法(直接法、包装法、Graham走査法、逐次添加法等)
第四章 ボロノイ図  定義、性質と構成方法(直接法、逐次添加法、分割統治法、Fortune走査法)
第五章 ドローネ三角形分割 基本概念、関連術語、求め方(正当な三角形分割法、平面双対法、逐次添加法)
第六章 幾何的領域探索   直交領域探索の概念、1と2次元領域探索
第七章 多角形の三角形分割 問題の提起、基本概念、平面走査法
教科書
/Textbook(s)
 Computational Geometry - Algorithms and Applications
M. Berg, M. Kreveld, M. Overmars, and O. Schwarzkopf 著
Springer-Verlag
又はその和訳版
 コンピュータ・ジオメトリ-計算幾何学:アルゴリズムと応用
M. ドバーグ、M. ファン・クリベルド、M. オーバマーズ、O. シュワルツコップ 著
浅野 哲夫訳、近代出版社
又は
 計算幾何学入門 - 幾何アルゴリズムとその応用
譚学厚、平田富夫 著
森北出版
成績評価の方法・基準
/Grading method/criteria
 宿題        50%
プログラミング問題、4回。
プログラムの実装を通じて、計算幾何学のデータ構造とアルゴリズムに関する知識を深める。
又は
 プロジェクト研究 50%
1回。
冬休み期間を利用して、実用性のある課題を提出し、色々なリソースから調査活動を展開し、総合的に実際問題解決へのアプローチを勉強する。
及び
 期末試験     50%
1回。基本概念についての理解程度を検証する
履修上の留意点
/Note for course registration
先修科目
 プログラミング言語(C又はJAVA)
 データ構造とアルゴリズムの基礎
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
参考ホームページ
授業用
http://i-health.u-aizu.ac.jp/CompuGeo/index.html
邦文サイト
http://www.ise.chuo-u.ac.jp/ise-labs/imai-lab/
http://www.simplex.t.u-tokyo.ac.jp/kika.html
英文サイト
http://compgeom.cs.uiuc.edu/~jeffe/compgeom/compgeom.html
http://geometryalgorithms.com/
http://mathworld.wolfram.com/
http://www.diku.dk/hjemmesider/studerende/duff/Fortune/

参考図書
 計算幾何学
浅野哲夫 著
朝倉出版

 計算幾何学
今井浩、今井圭子 著
共立出版株式会社

 Computational Geometry in C
J. O'Rourke 著
Cambridge University Press

 データ構造(アルゴリズムシリーズ1)
浅野哲夫 著
近代科学社

 Algorithm in C, Vol. 2(又は同邦訳版)
Robert Sedgewick 著
Addison-Wesley


このページの内容に関するお問い合わせは学生課 教務係までお願いいたします。

お問い合わせ先メールアドレス:sad-aas@u-aizu.ac.jp