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


授業の目的 【日本語】
Goals of the Course(JPN)
C言語(C99)を用いて, 数理アルゴリズムについて学ぶ.
アルゴリズムを理解し, アルゴリズムの標準的な実装(プログラミング)を行えるようになること. プログラミング言語そのものの習得は目的ではない.
また必要に応じて自ら簡単なアルゴリズムの考案ができるようになること.
授業の目的 【英語】
Goals of the Course
This course introduces some mathematical algorighms with C99.
到達目標 【日本語】
Objectives of the Course(JPN))
学んだ数理アルゴリズムを理解し, 実際にC99を用いてプログラミングできるようになること.
到達目標 【英語】
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
毎週, 授業の前半を講義形式, 後半を実習形式で行う.
実習では授業中に提示した課題についてプログラミングを行う.
内容はC言語, プログラミングリテラシ, アルゴリズムで, C言語の解説は最初の7~8回程度にわけて少しづつ行う.
プログラミングリテラシは, コメントの書き方, 字下げの仕方, デバッグの仕方などで, こちらも毎回少しづつ紹介する.
アルゴリズムの解説は4~5回目あたりから行い, 主に取り扱うアルゴリズムは概ね以下の通り
・代数アルゴリズム (Euclidの互除法/Eratostenesの篩/行列計算など)
・探索アルゴリズム (8クイーン/一筆書き/Hamilton閉路問題など)
・ソーティング (バブルソート/クイックソート/マージソート/ヒープソート)
基本的には整数アルゴリズムを主として学び, 数値計算など浮動小数点演算を多用するアルゴリズムについては取り扱わない.

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
B. カーニハン・D. リッチー「プログラミング言語C 第2版 ANSI規格準拠」共立出版, 1989.
S. P. ハービソンIII・G. L. スティールJr「Cリファレンスマニュアル」エスアイビーアクセス, 2015.
教科書・テキスト
Textbook
なし(毎回資料を配布する)
課外学習等(授業時間外学習の指示)
Study Load(Self-directed Learning Outside Course Hours)
プログラミングは手を動かして書かないと身につかないので, それなりの時間をとって訓練することが必要.
注意事項
Notice for Students
レポート提出はNUCT経由で行うので, 各自ログインできることを確認しておくこと.
(https://ct.nagoya-u.ac.jp/portal/)

履修手続き前にはNUCTの講義サイトにアクセスできないので、個人ページ https://www.math.nagoya-u.ac.jp/~kubo/ を参照のこと。(8/26現在準備中)
他学科聴講の可否
Propriety of Other department student's attendance
他学科聴講の条件
Conditions for Other department student's attendance
レベル
Level
1
キーワード
Keyword
数理アルゴリズム, 計算量, C言語
履修の際のアドバイス
Advice
実習の時間は限られているので, 各自自分のPCなどにプログラミング環境をインストールしておくと学習が捗る.
Macユーザならxcodeを, Windowsユーザならgnupackを利用するのがよい.
これについての情報は近々個人ページにアップロードする.
授業開講形態等
Lecture format, etc.
COVID-19により例年使えていた理学部サテライトラボが使えない(間を開けて座ると、使えるMacの台数が足りない)ので、遠隔講義とする.
遠隔授業(オンデマンド型)で行う場合の追加措置
Additional measures for remote class (on-demand class)