学部・大学院区分
Undergraduate / Graduate
理学部
時間割コード
Registration Code
0618900
科目区分
Course Category
専門科目
Specialized Courses
科目名 【日本語】
Course Title
数理解析・計算機数学Ⅰ
科目名 【英語】
Course Title
Computational Mathematics and Computer Science I
コースナンバリングコード
Course Numbering Code
担当教員 【日本語】
Instructor
GARRIGUE JACQUES ○ 佐藤 猛
担当教員 【英語】
Instructor
GARRIGUE JACQUES ○ SATOH Takeshi
単位数
Credits
3
開講期・開講時間帯
Term / Day / Period
秋 水曜日 1時限
秋 水曜日 2時限
Fall Wed 1
Fall Wed 2
授業形態
Course style
講義及び演習
学科・専攻
Department / Program
数理学科
必修・選択
Compulsory / Selected
選択


授業の目的 【日本語】
Goals of the Course(JPN)
数理アルゴリズムとデータ構造について学ぶ.
アルゴリズムを理解し, アルゴリズムの標準的な実装(プログラミング)を行えるようになること. プログラミング言語そのものの習得は目的ではない.
また必要に応じて自ら簡単なアルゴリズムの考案ができるようになること.
プログラミング言語として OCaml を使う予定である.(https://ocaml.org/)
授業の目的 【英語】
Goals of the Course
This course introduces some mathematical algorithms and data structures.
It will be taught using OCaml. (https://ocaml.org/)
到達目標 【日本語】
Objectives of the Course(JPN))
学んだ数理アルゴリズムを理解し, 実際に指定のプログラミング言語を用いてプログラミングできるようになること.
到達目標 【英語】
Objectives of the Course
At the end of the course, participants are expected to understand algorithms, and to be able to code them.
授業の内容や構成
Course Content / Plan
毎週, 授業の前半を講義形式, 後半を実習形式で行う.
実習では授業中に提示した課題についてプログラミングを行う.
内容はプログラミング言語, プログラミングリテラシ, アルゴリズムで, プログラミング言語の解説は最初の7~8回程度にわけて少しづつ行う.
プログラミングリテラシは, コメントの書き方, 字下げの仕方, デバッグの仕方などで, こちらも毎回少しづつ紹介する.
アルゴリズムの解説は4~5回目あたりから行い, 主に取り扱うアルゴリズムは概ね以下の通り
・データ構造 (リスト/配列/木構造など)
・代数アルゴリズム (Euclidの互除法/Eratostenesの篩/行列計算など)
・探索アルゴリズム (8クイーン/一筆書き/Hamilton閉路問題など)
・ソーティング (バブルソート/クイックソート/マージソート)
基本的には整数アルゴリズムを主として学び, 数値計算など浮動小数点演算を多用するアルゴリズムについては取り扱わない. (数値計算等については4年生の授業で扱う.)

This course will be taught in Japanese.
履修条件
Course Prerequisites
主に高等学校で履修する数学と, 数理学科3年前期までの数学の知識があればよい.
コンピュータ, プログラミングの細かな知識は不要だが, 実習時間を効率よく使うためにもタイピングがそこそこ速いとよい.
関連する科目
Related Courses
2年生までの数学の基礎科目および情報数学基礎.
成績評価の方法と基準
Course Evaluation Method and Criteria
毎週課すレポートの合計点を元に総合的に評価を行う.
不可(F)と欠席(W)の基準
Criteria for "Fail (F)" & "Absent (W)" grades
提出されたレポート問題が全体の2/3に満たない場合は欠席とする.
参考書
Reference Book
浅井健一「プログラミングの基礎」サイエンス社,2007
大堀淳・ガリグ・西村進「コンピュータサイエンス入門1・アルゴリズムとプログラミング言語」岩波書店,1999
教科書・テキスト
Textbook
なし(毎回資料を配布する)
課外学習等(授業時間外学習の指示)
Study Load(Self-directed Learning Outside Course Hours)
プログラミングは手を動かして書かないと身につかないので, それなりの時間をとって訓練することが必要.
注意事項
Notice for Students
レポート提出はTACT経由で行うので, 各自ログインできることを確認しておくこと.
(https://tact.ac.thers.ac.jp/portal/)

履修手続き前にはTACTの講義サイトにアクセスできないので、個人ページ https://www.math.nagoya-u.ac.jp/~garrigue/lecture/ を参照のこと。(8/23現在準備中)
他学科聴講の可否
Propriety of Other department student's attendance
他学科聴講の条件
Conditions for Other department student's attendance
-
レベル
Level
1
キーワード
Keyword
数理アルゴリズム, 計算量, プログラミング言語
履修の際のアドバイス
Advice
実習の時間は限られているので, 各自自分のPCなどにプログラミング環境をインストールしておくと学習が捗る.
これについての情報は近々個人ページにアップロードする.
授業開講形態等
Lecture format, etc.
授業は講義(A-207セミナー室)、後半は実習を行う。

実習は理学部サテライトラボ(A-250)で行う。ただし受講生の人数が多すぎて座席が不足する場合は、サテライトラボのMacで実習を行う学生と、持参したノートPCで実習を行う学生(A-207セミナー室)に分かれて実習を行う。
遠隔授業(オンデマンド型)で行う場合の追加措置
Additional measures for remote class (on-demand class)
-