i116 Basic of Programming
Lecturer: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp) and DO, Canh Minh (email: canhdo at jaist dot ac dot jp)
Term
1-2 (Jun 12 - Jul 31), 2024
Contents:
News
How to tackle
Homework
Class schedule (lecture notes)
Links
News
- July 3: The explanation about
instance variables in a class was wrong, which was pointed out by a
student. The first lecturer is grateful for him to his pointing out it. A
program has been prepared to briefly explain instance variables and class
variables in Python. Please see the program.
-
June 26: For the final problem of HW4, you can use the following piece of
code:
zero = Zero()
one = NzNat(zero)
two =
NzNat(one)
print('one is ', one.str(), '.')
print('two is ', two.str(),
'.')
print('one.plus(one) is ', one.plus(one).str(), '.')
print('The
result of one.plus(one) (1+1) equals s(s(0)) (2), which proves 1+1 =
2.')
- Jun 14: The explanation of range() was wrong, which the first
lecturer was noticed by a student who has submitted the first homework report to
him. He thanks the student for it. The revised versoin of p.23 can be found
here.
- Jun 11: NO PLAGIARISM. Plagiarism is
strongly prohibited. Do not plagiarize any pieces of programs and/or reports
written by others, and do no let others plagiarize any pieces of programs and/or
reports written by you. If the lecturer finds any pieces of plagiarism in
submitted programs and/or reports, he will formally process the plagiarism. The
students who have been involved in the plagiarism will never succeed in taking
the credits of the course and moreover may be seriously punished.
- Jun 11:
You are supposed to instal Python in your computer and bring the computer in
each class. You are also supposed to be able to use a text editor to make
program files and kow something basic about computers, such as files and
directories (or folders).
- Jun 11: This website was open.
How to tackle
For each class, read the
lecture note in advance, type the prgrams appearing on it, run them with,
clarify what you have not understood and attend the class. At the class, ask the
lecturer about what you have not understood to get better understandings of
them. After the class, go over what you have acquired in the class and tackle
the homework.. Please read this in advance.
Homework
The lecturer will let you know what each piece of homework is, what you are
supposed to submit, when the submission deadline is, etc. in classes.
Class schedule (lecture
notes)
10:50-12:30, Jun 13, Thursday
1. Some program
constructs (1) (lecture note
1)
9:00-10:40, Jun 1518, Tuesday
2. Some program constructs
(2) (lecture note 2)
10:50-12:30,
Jun 20, Thursday
3. Built-in data structures (lecture note 3)
9:00-10:40, Jun 25,
Tuesday
4. User-defined data structures (1) (lecture note 4)
10:50-12:30, June 27,
Thursday
5. User-defined data structures (2) (lecture note 5)
bigTree4dfSeaerch.py
bigTree4bfSeaerch.py
tree4rSearch.py
tree4gameSearch.py
tree4game.py
9:00-10:40, July 2, Tuesday
6.
Arithmetic calculator: parse tree & interpreter (lecture note 6)
10:50-12:30, July 4,
Thursday
7. Arithmetic calculator: virtual machine & compiler (lecture note 7)
9:00-10:40, July 9,
Tuesday
8. Assignment calculator: assignments & parse trees (lecture note 8)
10:50-12:30, July 11,
Thursday
9. Assignment calculator: interpreter (lecture note 9)
9:00-10:40, July 16,
Tuesday
10. Assignment calculator: virtual machine & compiler (lecture note 10)
10:50-12:30, July 18,
Thursday
11. Programming language processor: syntax & parse trees
(lecture note
11)
parse.py
scan.py
token2.py
tname.py
9:00-10:40, July 23, Tuesday
12.
Programming language processor: interpreter (lecture note
12)
10:50-12:30, July 25, Thursday
13.
Programming language processor: virtual machine (lecture note 13)
9:00-10:40, July 30,
Tuesday
14. Programming language processor: compiler (lecture note 14)
Links
Python (in Japanese)
Jun 11, 2024 by K. Ogata