Teadmispõhise tarkvaraarenduse meetodid / Methods of Knowledge Based Software Development 2016
Course code: ITI8600 (Ainekaart eesti keeles ITI8600)
Language: The default language of the course is English, but if all students understand Estonian, it will be in Estonian.
Lecturers:
- Tanel Tammet, tanel.tammet@ttu.ee, 6203457, TTÜ ICT-426
- Juhan Ernits, juhan.ernits@ttu.ee, 6202326, TTÜ ICT-428 (handles ÕIS registrations)
Past editions
Teadmispõhise tarkvaraarenduse meetodid / Methods of Knowledge Based Software Development - 2015
Time, place, result
- Lectures: Mondays 14:00-15:30, CYB-Veenus
- Labs: Fridays 14:00-15:30, ICT-401, (last lab on December 23)
Exam
Exam will be written (2h), no additional materials. It is necessary to register to the exam in ÕIS.
You can choose one day for the exam out of two:
- January 12, 10:00, room U05-103
- January 19, 10:00, room SOC-209
Exam preparation Q&A sessions:
- January 10, 16:00, registration in the wiki of the course at ained.ttu.ee, room ICT-315
- January 17, 16:00, registration in the wiki of the course at ained.ttu.ee, room ICT-315
Grading
The final grade will be based on 40% of points from homework assignments and 60% of the result of an exam.
There will be four homework assignments, one for each block. Assignments will give up to 10 points each. In order to successfully pass the course, at least three homeworks must be successfully defended.
Homeworks can be done alone or in pairs. Pairs will be formed randomly by the lecturers, separately for each homework. As said, you can always opt to do it alone.
Homework has to be presented during lab time to the lecturer on site: email submissions are not accepted. Both pair members must be present during presentation: in case one of them is not present, the homework of the missing person is not considered to be defended. It is also not guaranteed that both pair members get the same grade.
The homeworks have to be submitted to the university git and then defended: git details will be presented later by Juhan.
Homework deadline policy:
- Defended code must be submitted for defence latest one date before the defence deadline (example: defence deadline 22. Sept, submission 21. Sept).
- In case the homework is defended in time, you have one extra week to add missing details/improvements without losing points.
- In case the homework is not defended in time, you have two extra weeks to defend it, but in this case you will get only half the points.
- No homeworks are accepted after the two extra weeks after the deadline have passed.
- In order to be accepted to exam you have to successfully defend at least three of the four homeworks.
Grades and additional homework info available at https://ained.ttu.ee
Materials for search algorithms
The search algorithms block was based on the following chapters from the book Artificial Intelligence, a Modern Approach, 3rd Edition, by Stewart Russell and Peter Norvig. (The book is available in TUT library as [1] and [2]):
- Chapter 3: Solving problems by searching
- Chapter 4: Beyond classical search
- Chapter 5: Adversarial search
- Chapter 6: Constraint satisfaction problems
In particular, it will be necessary to be able to choose best methods from the ones mentioned in those chapters for solving particular problems. In addition it is necessary to be able to charachterize the properties of these approaches in terms of relevant criteria (branching factor, time complexity, space complexity, completeness).
Course structure
The course will consist of four interconnected blocks covering crucial areas of the subject:
Search algorithms
Homework is available in Moodle. To log in you will need to use your TUT e-mail account in Office 365. The groups will be assigned to participants who are registered to the course in Moodle on September 12. Homework defence deadline: 30. September.
- Tree search, graph search, formulating problems to be solved by search (recap of what you know)
- The task of the first lab is to pull code from the AIMA Python project and look at the search.py file. You should be able to run the examples shown in the lecture.
Homework 1
Note: HW1 hints are available in https://ained.ttu.ee. The groups and git repositories are available.
Git cloning urls are https://youruniid@git.ttu.ee/ained/iti8600/hw1teamXX.git, where XX corresponds to the 2-digit number of your team. All team members have rights to push code to the server.
Knowledge representation
Knowledge representation homework
Homework defence deadline: 3. November. Presentation afer this deadline will give half of the points. Absolute deadline 1 December.
Work should be submitted to git. Latest one day before deadline.
New groups and repositories are available.
Useful in-depth material for reading as free pdf-s:
- Knowledge Representation and Reasoning
- Handbook of Knowledge Representation
- Interesting to browse: recent conference proceedings
- Interesting to browse: course materials, course materials
- Google natural language processing publications
Block structure:
Intro: SQL, logic and RDF.
First lecture as ppt and as as pdf
Natural language and restricted natural language
Lecture intro as ppt and as as pdf
See also about IBM Watson
RDFa, RDFs, OWL and rules
Lecture intro as ppt and as as pdf
- Start with the wikipedia take on RDF and RDFs
- RDFa in wikipedia and w3c RDFa primer
- Continue with w3c RDF primer which contains also RDFs aka RDF schema.
- OWL OWL wikipedia, w3c OWL primer
Logic for uncertain knowledge
- default logic: main material for this lecture.
- Uncertain_prob_fuzzy.ppt Intro to probabilistic and fuzzy logic.
- Vienna_tanel_2.pdf Additional examples and combining.
- nonmonotonic logic: long intro to main concepts
- belief and knowledge
Interesting to try out:
- dlv system for answer set programming: usable for implementing default logic
Things we looked at before:
Reasoning and deduction
Automated reasoning homework 2016
Deadline 2. december.
Useful books for reading:
- T.Tamme, T.Tammet, R.Prank. Loogika: mõtlemisest tõestamiseni. TÜ Kirjastus, 2002
- Geoff reasoning course notes
Test and compare simple propositional solver algorithms:
Block structure:
First order logic solvers
- one page about predicate logic provers
- into for prop case
- wiki intro to pred logic case
- a book by Geoff created from course notes: best content IMHO despite weird formatting.
- Otter by McCune: use it for experimenting.
- tiny examples of problems for otter
Propositional solvers
- Read about propositional solvers
- Use http://logictools.org/ to experiment with random problems of various sizes and solver algorithms
SMT solvers
- Intro to SMT from wikipedia
- SMT tutorial slides (8 first slides were shown in the lecture)
- Z3 tutorial in Python, links to binaries etc as compiled by Juhan Ernits.
- The official binary releases of Z3 now include Java support. The example is available here.
- The sample code built during the lecture is available in Moodle.
Interesting to try out:
- dlv system for answer set programming: usable for implementing default logic
Things we looked at before:
- Uncertain_prob_fuzzy.ppt Intro to probabilistic and fuzzy logic.
- Vienna_tanel_2.pdf Additional examples and combining.
Extra material about predicate logic solvers
Learning
Homework 4
(3 best results of 4 homeworks will be taken into account in marking.)
The task is to sign up to the "Titanic: Machine Learning from Disaster" challenge at Kaggle, download the data and evaluate at least 3 different learning algorithms in Scikit learn on that data. You should submit the appropriate scripts and a report of the results with appropriate explanation. The report should give a quick overview of what you did and why and which approach worked better and how you determined that.
NB! It is necessary to run cross-validation in all cases and explain why you think why some approach performs better than the other.
It is encouraged but not mandated to submit your best result to Kaggle. NB! While you are encouraged to learn in the Kaggle environment and look at the examples, you should explicitly mark in comments all code taken from other sources.
Homework defence deadline: 23. December. It will be possible to defend the homework on January 10, starting at 16:00 in the exam Q&A session. Room TBA.
Lecture notes
- Learning 1: Decision trees
- Recommended reading: Chapter 18 in AIMA 3rd edition.
- Learning 2:
- Evaluation of machine learning classifiers
- Random forests (last part of the slides)
- Recommended reading: Chapter 18 in AIMA 3rd edition.
- For the evaluation part read Chapter 4 in Introduction to Statistical Learning with applications in R (ISL), referenced below
- Learning 3:
- Combining classifiers: adaptive boosting
- Intro to linear regression
- Recommended reading: Chapter 18 in AIMA 3rd edition.
- Additional reading: Linear regression - Chapter 3 in ISL
- Additional reading: Adaptive boosting - Chapter 8 in ISL
- Learning 4:
- Deep learning (lecture by Kairit Sirts)
- Additional reading: Deep learning book(html version freely available)
Lab samples
- machine_learning_1.py Using classifiers and cross validation
- machine_learning_2.py Evaluation of classifiers
Additional recommended reading
- Introduction to Statistical Learning with applications in R by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani.