1. 科目名 (Course Name) アルゴリズムとデータ構造 Algorithms and Data Structures 2. 担当教員名 (Instructors) Masahide Sugiyama, Qiangfu Zhao, Jie Huang, Shuxue Ding, Wenxi Chen and Aiguo He(Hirokuni Kurokawa), 3. 授業の哲学、特色 (Course Description) コンピュータは情報を操作するものです。情報の組織化・操作・利用の方法 を勉強することは、コンピュータを効率的に、そして、効果的に使うために非 常に重要なことです。プログラミングや現代のデータ処理において、本質的に 必要なものは、問題解決のための、あるいは、主記憶と2次記憶装置にあるデー タにアクセスするための、効率的なアルゴリズム(算法)と一連の命令です。 この効率というものは、処理するデータの構造に直接結び付いています。他の データ項目に効果的に結び付けることによって、データ項目は、個々の内容を 越えた意味を持つようになります。データ構造は、単に項目だけでなく、互い の関係をも考慮した、データの組織化の方法です。この授業では、もっとも使 用されているプログラミング言語である C 言語を使います。 Computers are machines that manipulate information. Fundamental studies of computer science include the problems how information is organized in the computer, how it can be manipulated, and how it can be utilized. The efficiency of programming and data processing is directly linked to the structure of the data being processed and algorithms. Thus, it is crucial for students of computer science to understand the concepts of information organization, information manipulation and algorithms. 4. 授業目的 (Goals) この授業では、アルゴリズムとデータ構造を幅広く紹介します。データ構造 とアルゴリズムの長所と短所の評価、データ構造の定義と構築、効率的なアル ゴリズムの開発、そして、最先端のデータ構造とアルゴリズムの利用の方法に ついて学びます。 Evaluate the strengths and weaknesses of data structures and algorithms Define and build data structures Develop efficient algorithms Use state-of-the-art of data structures and algorithms Practice and further develop programming skills for applications 5. 教科書 (Textbook) セジウィック、アルゴリズム C、 1、近代科学社 (Japanese translation of "Algorithms in C" by Sedgewick, published by Kindaikagaku-sha) 6. 評価方法 (Student Evaluation) 授業への出席 (Class Participation) 10% 課題 (Lab Exercises) 40% 試験 (Quuizzes, Midterm and Final Exams) 50% 注意: 配点については担当する各教員によって異なる可能性がある。 (Different instructors will have DIFFERENT EVALUATION METHODS.) 7. 講義内容 (Topics) 導入、配列、リスト、スタック、キュー、再帰、計算量、木、整列、探索 Introduction and data structures overview, Arrays, Lists, Stacks, Queues, Recursion, Analysis of Algorithms, Trees, Sorting, Searching ( 8. 先修科目 ) ( 9. リンク先 ) 10. 参考図書 (References) Sedgewick, Algorithms in C, Addison Wesley Singh, Introduction to Data Structures, West Decker, Data Structures, Prentice Hall Baase, Computer Algorithms, Addison Wesley 奥村 晴彦, C 言語によるアルゴリズム事典, 技術評論社 Reference (using MUSE library search) + Computer Algorithms: introduction to design and analysis, by Baase + Introduction to Data Structures, by Singh + Data Structures Using C, by Tenenbaum, Langsam, and Augenstein + 奥村 晴彦, C 言語によるアルゴリズム事典, 技術評論社 + セジウィック, アルゴリスム 1,2 3, 近代科学社 + 浪平博人, データ構造, CQ 出版社 + 浪平博人, アルゴリズム, CQ 出版社 + 茨木, アルゴズムとデータ構造, 昭晃堂 + 足立, アルゴリズムと計算理論, 森北出版 + ブラッサール, アルゴリズム論, 東京電気大学出版 + エイホ, データ構造とアルゴリズム, 倍風館 + ヴィルト, アルゴリズムとデータ構造, 近代科学社 + タルジャン, データ構造とネットワークアルゴリズム, マグロウヒ ル, + アルゴリズムとデータ構造, 岩波講座 ソフトウェア科学 3, 岩波書 店 + 浅野, データ構造, 近代科学社 + Ammerraal, データ構造とプログラム, オーム社 + 服部, C 言語とデータ構造, 工学図書 + 近藤, アルゴリズムとデータ構造, SOFTBANK + 千葉, 他, C アルゴリズム全科, 啓学出版. + プレパラータ, 他, 計算幾何学入門, 総研出版