The Importance of Mathematics
for Information Technology

(情報テクノロジーでの数学の役割と重要性)

Discrete Mathematics I

(情報数学 I)

1st lecture, September 16/on demand, 2022

https://www.sw.it.aoyama.ac.jp/2022/Math1/lecture1.html

Martin J. Dürst

(テュールスト マーティン ヤコブ)

duerst@it.aoyama.ac.jp

Building O, Room 529

 

AGU

© 2005-22 Martin J. Dürst 青山学院大学

 

Today's Schedule

 

自己紹介

Covid Precautions

 

About Moodle

We will use the Moodle instance of the Software Lab in this course.

Moodle is an open-source electronic learning support system.

The address of the course is https://moo.sw.it.aoyama.ac.jp/course/view.php?id=58.

Attention: Both Moodle course enrollment and official course registration are necessary for successful course completion.

Needed for Moodle course enrollment:

 

授業の進め方

 

 

About Communication by E-mail

To communicate with me, use e-mail (NOT Moodle chat, NOT CoursePower, ...). Always include:

(E-mail is different from LINE)

Send mail from your Aoyama Mail account, and check your Aoyama Mail account for mails from me.

You also can used the Q&A Forum in Moodle.

[連絡は電子メール (又は Q&A Forum) のみ; 電子メールの場合、る連絡の場合、名前、学籍番号、授業名、具体的な要件と過去の経緯を明確に!]

 

授業の位置づけ

 

Method of Evaluation

Comprehensive evaluation

Questions for quizes/homework may be in English only, but for minitests and final exams, they will be in Japanese or bilingual. Except where explicitly specified otherwise, answers can always be in Japanese.

 

英語の大切さ

 

The Importance of English

Example: Ruby Kaigi (one of my talks in English)

 

Glossary

 

Schedule

Schedule of Discrete Mathematics I

Book list

 

情報数学の概要

 

Examples of Relationship between
Mathematics and Information Technology

Field of Mathematics Field of Information Technology
probability theory information transmission, natural language processing, machine learning
Fourier analysis image processing, sound processing
linear algebra, geometry, topology computer graphics, robotics
(formal) language theory, type theory programming languages, compilers
number theory cryptography

 

Discrete Mathematics I and II

 

数学の考え方

 

言語としての数学

 

Homework: Languages Necessary for Information Technology

Complete the quiz at https://moo.sw.it.aoyama.ac.jp/mod/quiz/view.php?id=3036

Deadline: Tuesday, Sept. 27, 22:00 (strict)

Caution: One attempt, 5 minutes

 

英語の勉強の仕方

 

How to Study English

 

Simple Arithmetic in English

Addition: Two plus two is four.

Subtraction: Twelve minus five equals seven.

Multiplication: Fifteen times two is thirty.

Division: Two hundred divided by five is forty.

(see https://en.wikipedia.org/wiki/English_numerals)

 

Homework: Simple Arithmetic in English

Complete the quiz at https://moo.sw.it.aoyama.ac.jp/mod/quiz/view.php?id=3036

Deadline: Tuesday, Sept. 27, 22:00 (strict)

Repeat until you get 100% correct answers

 

Example: Proof of an Algorithm

 

The Euclidean Algorithm for the GCD

To calculate the GCD of a and b, assuming that a,b∈ℕ:

Example: gcd(35, 63) = gcd(35, 28) = gcd(7, 28) = gcd(7, 21) = gcd(7, 14) = gcd(7, 7) = 7

What we have to prove:

  1. The algorithm finishes (terminates)
  2. The algorithm is correct

 

Proof of Termination

Prove that the algorithm terminates:

Case 1:
We are done, so okay.

Case 2/3 (symmetric):
The sum a+b gets smaller in both cases, but both a and b are >0.
The sum will get smaller by at least 1, so we need at most a+b
invocations of the algorithm to terminate.

 

Proof of Correctness

Case 1: g = gcd(a, b) = a = b so c=d=1,
and so there is no h>g with a=c'h and b=d'h.

Case 2 (and symmetric for case 3): g = gcd(a, b) = gcd(a-b, b)
Assuming that the result for gcd(a-b, b) is correct,
a-b=(c-d)g=cg-dg and b=dg and therefore a=cg,
so g is a factor of a-b, b, and a.
If there is a larger factor h>g for a and b,
then this would also be a larger factor for a-b,
but g is the largest factor for a-b and b,
and so it must also be the largest factor for a.

Q.E.D.

 

Math used in Proof

 

Algorithm as a Program (C Function)

int gcd (int a, int b)
{
    if (a==b)
        return a;
    else if (a>b)
        return gcd(a-b, b);
    else if (a<b)
        return gcd(a, b-a);
}

 

Algorithm as a Program (Ruby Method)

def gcd (a, b)
  if    a==b then a
  elsif a>b  then gcd(a-b, b)
  elsif a<b  then gcd(a, b-a)
  end
end

 

This Week's Homework (Summary)

 

次回までの宿題のまとめ

 

Glossary

technical term
専門用語
probability theory
確率論
information transmission
情報通信
natural language processing
自然言語処理
fourier analysis
フーリエ解析
image processing
画像処理
sound processing
音声処理
representations of numbers
数の表現
modular arithmetic
合同算術
logic
論理
Boolean formulæ
論理式
Boolean function
論理関数
propositional logic
命題論理
predicate logic
述語論理
set
集合
relation
関係
proof methods
証明の仕方、証明方法
information theory
情報理論
linear algebra
線形代数
geometry
幾何学
topology
位相幾何学
computer graphics
コンピュータグラフィクス
robotics
ロボット工学
(formal) language theory
(形式) 言語理論
programming language
プログラム言語
compiler
コンパイラ
number theory
整数論
cryptography
暗号学
graph theory
グラフ理論
simultaneous translation
同時通訳
native tongue
母国語
(course) registration
(履修) 登録
enrollment
(履修) 登録
electronic learning support system
電子学習支援システム
repeater
再履修者
digit
spam/junk
迷惑メール
algorithm
アルゴリズム
greatest common denominator
最大公約数
factor
約数
Euclid
ユークリッド
deadline
締切
decimal (number representation)
十進法
binary (number representation)
二進法
n-ary (number representation)
n進法
textbook
教科書
reference book
参考書