Fall 2019

- Announcements
- Where, When, Who
- Description
- Learning Goals
- Policies
- Assignments and Grading
- Materials: Readings, Videos, and Links
- Schedule
- Other Interesting Links

- 11/26/19: Posted the location of the final exam: WAL 390.
- 11/14/19: Posted p3.
- 9/25/19: Posted p2.
- 9/18/19: Extended the deadline for p1 to F 8/27/19.
- 8/28/19: Posted p1.
- 8/17/19: Set the schedule and assessment dates.
- 3/18/19: Posted this Web site.

Class Time: | TR 12:30 PM–1:45 PM |

Classroom: | WAL 390 |

Instructor: | Mark Maloof |

Office: | 325 St. Mary's Hall |

Office Hours: | In-person (325 STM): TR 11:00 AM–12:00 PM; online: M 10:30–11:30 AM and W 3:00–4:00 PM; or by appointment. Send me an email to get the Zoom link for online office hours. |

This graduate lecture surveys methods of automated deductive reasoning. Through traditional lectures, programming projects, paper presentations, and research projects, students learn (1) to understand the foundations of logical and probabilistic methods of automated reasoning. (2) to implement algorithms for logical and probabilistic reasoning, (3) to comprehend, analyze, and critique papers from the primary literature, (4) to replicate studies described in the primary literature, and (5) to design, conduct, and present their own studies. Topics include state-space search, adversarial search, propositional logic, predicate logic, resolution proof, production systems, Prolog, uncertain reasoning, certainty factors, Bayesian networks, exact inference, approximate inference, Bayesian decision theory, ROC analysis, first-order probabilistic models, probabilistic programming languages, and applications. Students complete programming projects using Java.

Prerequisites: Students should have taken undergraduate courses in computer science through data structures; at the very least, students must be able to implement trees and graphs using Java. Students should have also taken undergraduate courses in mathematics, such as probability, statistics, and perhaps propositional and first-order logic.

Recommended Text:

*Artificial intelligence: A modern approach*, 3rd Edition, by Russell and Norvig. [ Amazon | Lauinger ].

*Logical foundations of artificial intelligence*, by Genesereth and Nilsson. [ Amazon | Lauinger ].*Probabilistic graphical models: Principles and techniques*, by Koller and Friedman. [ Amazon | Lauinger ].*Pattern recognition and machine learning*, by Bishop. [ Amazon | Lauinger ].

By the end of the semester, students will be able to:

- explain the main formalisms of automated reasoning
- describe, compare, and contrast logical methods for deductive reasoning
- describe, compare, and contrast probabilistic methods for deductive reasoning
- compare and contrast logical and probabilistic methods
- understand and design object-oriented systems for automated reasoning
- analyze algorithms for automated reasoning in time and space
- implement methods of automated reasoning using a high-level programming language

My course policies are designed to supplement the University's Undergraduate Honor System and the CS Department's Honor Policy. Unless stated otherwise when I distribute an assignment, the following is the default for all assignments for this course. I have developed my policies from past teaching experiences and from the CS Department's Honor Code at George Mason University.

I am obligated to refer all suspected cases of academic dishonesty by undergraduate and master's students to Georgetown's Honor Council. I am obligated to refer all suspected cases of academic dishonesty by doctoral students to the dean of the Graduate School. If you have any questions about these policies or how they apply, please discuss such concerns with me during class, during office hours, by e-mail, or using the class's discussion board.

In my experience, students at Georgetown do honest work. The very small percentage of students who have submitted someone else's work as their own did so because they did not manage their time wisely.

Students must always follow proper scholarly practice for all submitted work, whether graded or ungraded and whether a draft or final version of a proposal, paper, program, or problem set. As scholars, we must acknowledge our reliance on the work of others through citation. You can never submit someone else's work as your own without proper attribution. The University assumes that students learned how to properly cite material at their previous institutions. If this is not the case, please let me know.

Indeed, students may be quite adept at and knowledgeable about citing and quoting material from traditional sources, such as books and articles. Typically, we do not have cite facts, common math formulae, or expressions of our own ideas, observations, interpretations, and analyses, However, students new to computer science may not realize that theorems, proofs, algorithms, programs, and code fragments may require the same treatment as any other form of expression.

For convenience, you do not need to cite the course materials, which includes the syllabus, sources linked from the syllabus, the course textbook, the class lectures and discussion, posts on the discussion board, and conversations with me and courses's teaching assistants. You must, however, cite the use of any resource that is not part of the course materials. If you are unsure about what requires citation or what constitutes proper scholarly practice, please ask me during class, during office hours, by e-mail, or using the discussion board.

I design my courses and assignments so students have what they need to complete the assignments individually without consulting outside resources. I determine the size of and credit for assignments based on the assumption that the work for them is the result of individual effort using only the course resources and materials. Students who use outside resources to complete assignments may not be eligible for full credit. Students who do not acknowledge their use of outside resources to complete assignments may be in violation of my course policies and the university's policies on academic integrity.

The materials that I create and use for my courses (“Course Materials”) are my intellectual property. You may not disseminate or reproduce them in any form for public distribution (e.g., sale, exchange, etc.) without my written permission. Course Materials include all written or electronic documents and materials that I provide, including but not limited to syllabi, current and past assessments and their solutions (e.g., exams, homeworks, projects, problem sets, etc.), and presentations such as lectures, videos, slides, etc. Course Materials may only be used by students enrolled in the course for academic (i.e., course-related) purposes. Furthermore, your solutions to assessments are derivative works of my copyrighted material and are therefore subject to that protection because they necessarily incorporate my protected expression. Consequently, you may not further disseminate or reproduce in any form for distribution (e.g., uploading to websites, sale, exchange, etc.) your solutions to assessments.

Published course readings (book chapters, articles, reports, etc.) available in Canvas are copyrighted material. I make these works available to students through licensed databases or fair use. They are protected by copyright law, and may not be further disseminated or reproduced in any form for distribution (e.g., uploading to websites, sale, exchange, etc.) without permission of the copyright owner.

You can find more information about intellectual property and copyright here: https://www.library.georgetown.edu/copyright. You can find more information about computer acceptable use policy and intellectual property here: https://security.georgetown.edu/it-policies-procedures/computer-systems-aup.

Copyright issues aside, if you post your solutions to assessments on the Internet, it is possible that students in future classes will find your solutions and submit them as their own work without attribution. Naturally, students who do so violate my course policies, and the Honor Council will with high probability find them in violation and sanction them. The Honor Council may also find you in violation because you facilitated cheating and violated copyright law and the Web site's terms of service.

I understand that it is often important for securing a job or an internship for students to provide prospective employers with a portfolio of their work. I recommend that students devise a scheme for doing so that does not violate copyright law, does not violate the terms of service of the site on which you have posted material protected by copyright, and does not facilitate cheating.

The following list details acceptable and unacceptable practices:

- You can:
- obtain assistance in understanding course materials (textbooks, lecture notes, assignments);
- obtain assistance in learning to use the computing facilities;
- obtain assistance in learning to use special features of a programming language's implementation;
- obtain assistance in determining the syntactic correctness of a particular programming language statement or construct;
- obtain an explanation of a particular syntactic error;
- obtain explanations of compilation or run-time error messages.

- You can obtain assistance only from me and the teaching assistants:
- in designing the data structures and algorithms used in your solution;
- in modifying the design of an algorithm or data structure determined to be faulty;
- in implementing your algorithm or data structure in a programming language;
- in correcting a faulty implementation of your algorithm or data structure;
- in determining the semantic correctness of your program;
- in designing an experimental study and interpreting its results.

- You can not:
- show or give a copy of your work in any amount or form to another student;
- post course materials or your solutions for any assessment to any site on the Internet, including sites such as GitHub and CourseHero;
- see or receive a copy of someone else's work in any amount or form;
- attempt to gain access to files other than your own or those that I designate and authorize;
- inspect or retain in your possession another student's work, whether it was given to you by another student, it was found after other student discarded his or her work, or it accidentally came into your possession;
- collaborate in any way with someone else in the design, implementation, or logical revision of an algorithm;
- use or present as your own any algorithm, data structure, or implementation that is not of your own or of my design, or that is not part of the course materials.
- study or incorporate code that others have written, such as code found on the Internet;
- attempt to reverse engineer routines used for automatic grading.

Policies dealing logistics:

- You have permission to occasionally take digital photos of the material on the board for your personal and course-related use, but you can not post these recordings on the Internet. It is important to understand that all of the course material is covered by copyright, either mine or someone else's.
- You should submit all assignments on time. For late projects, there will be a 1% deduction for each minute after the deadline. In the real world, it won't be your grade that decreases. It'll be your stock price.
- I grant extensions only to students who have documentation for a medical issue, a family emergency, or an accommodation from the Academic Resource Center. In the cases of a medical issue or a family emergency, it would be best to coordinate with your advising dean since these situations often affect your work in all of your classes.
- If you use your laptop for development, you should keep a backup of your projects on a university or department machine (e.g., cs-class) so that if something goes wrong with your submission I can verify that you completed the work for an assignment before the deadline.
- You must take the final exam with the section and during the period designated by the Registrar.
- It is my job to maintain a constructive learning environment for everyone. Please silence your cell phone and other electronic devices.
- The University and I expect you to attend all classes. If you must miss class, be sure to get the lecture notes from a classmate.
- It is fine if you must leave class early, arrive late, or leave the room to answer your phone, but you should do so in a manner that does not disturb your fellow students.
- In the case of inclement weather that results in the university's closure, we will meet virtually during normal class times using Zoom.

- Programming Projects, 50%
- Project 1, assigned W 8/28,
~~F 9/20~~F 9/27 @ 5 PM, 10 points - Project 2, assigned R 9/26, due F 11/15 @ 5 PM, 30 points
- Project 3, assigned R 11/14, due M 12/9 @ 11:59 PM, 10 points
- Midterm Exam, R 10/17, 20%
- Final Exam, R 12/19 @ 12:30 PM in WAL 390, 30%

public String Grades::getLetterGrade() { if (grade >= 94) return "A"; else if (grade >= 90) return "A-"; else if (grade >= 87) return "B+"; else if (grade >= 84) return "B"; else if (grade >= 80) return "B-"; else if (grade >= 67) return "C"; else return "F"; } // Grades.getLetterGrade

I use automatic grading routines to assign an initial grade for the projects. It is important to emphasize that the grade you obtain from Autolab is an initial grade and may not be your final grade. There are many important aspects of a program that are difficult or impossible to assess using automatic grading routines. For example, automatic grading routines can not determine if you have written proper documentation. They can not easily assess if an implementation of an operation is optimally efficient. As a consequence, I start with the initial grade you obtain from Autolab and take further deductions if necessary.

For complete implementations, I use the following distribution as a guide:

- 40%: Compiles against the autograder
- 20%: Executes without failure using the autograder
- 40%: Autograder unit tests
- 10%: Internal documentation, if required
- Purpose of classes and methods explained in documentation comments
- Purpose, range, and meaning of identifiers explained, where needed
- Complex flow of control explained
- 10%: Style and formatting
- Nested indentation for loops and conditionals
- All class, method, and function headers emphasized
- Comments set off from code
- Vertical alignment of comments, where appropriate
- White space between blocks of code (and comments)
- Mnemonic identifier names
- 80%: Algorithm and Implementation
- Correct implementation of the operations
- Proper object-oriented design and implementation
- Appropriate error checking and diagnostic messages
- Appropriate data and object types
- Correct, clean, organized output format

Notice that an implementation consisting entirely method stubs would obtain an initial grade of 60%. Such an implementation is incomplete, and would be subject to further deductions based on the effort required to implement the required operations.

In addition to the above, the following deductions may be taken if applicable:

- 20%: Does not compile on
`cs-class` - 1–10%: Incomplete or improper submission
- 1–10%: Debugging or unnecessary output
- 1–5%: My effort for fixing any minor issue
- 1–5%: Inefficiently implemented routine
- 1% per minute: Late deduction

- Autolab, for submitting projects
- Piazza, for online discussions.
- Canvas, for document distribution and submitting projects if Autolab breaks
- Dynarski, S. M. (10 August 2017). For better learning in college lectures, lay down the laptop and pick up a pen. Research Report, Brookings Institution, Washington, DC. (Read if interested.)
- Perez-Hernandez, D. (28 March 2014).
Taking notes by hand benefits recall,
researchers find.
*The Chronicle of Higher Education*. (Read if interested.) - Mueller, P. A. and Oppenheimer, D. M. (2014).
The pen is mightier
than the keyboard: Advantages of longhand over laptop note taking.
*Psychological Science*, 25(6):1159–1168. (Read if interested.) - Russell and Norvig's algorithm for uniform-cost search.
- Russell and Norvig's Minimax algorithm.
- Russell and Norvig's alpha-beta pruning algorithm.
- Russell and Norvig's logical entailment and resolution algorithms.
- Russell and Norvig's Unify algorithm.
- Slides: Genesereth and Nilsson's Sematics for First-Order Logic
- Robinson, J. A. (1965). A machine-oriented logic based on the
resolution principle.
*Journal of the ACM*12.1:23–41. - Kowalski, R. and Kuehner, D. (1971). Linear resolution with
a selection function.
*Artificial Intelligence*2:228–260. - Russell and Norvig's forward and backward chaining algorihtms.
- Slides: Bayesian Decision Theory.
- Bishop's Chapter 8: Graphical Models
- Barber, D. (2012). Bayesian Reasoning and Machine Learning. Cambridge University Press: Cambridge, UK.
- Russell and Norvig's variable elimination algorihtm.
- Russell and Norvig's sampling algorithms.
- Slides: Algorithm for Probability Propagation in Trees.
- Tarjan, R. E. and Yannakakis, M. (1984).
Simple linear-time algorithms
to test chordality of graphs, test acyclicity of hypergraphs, and
selectively reduce acyclic hypergraphs.
*SIAM Journal on Computing*13.3:566--579. - Golumbic, M. C. (2004). Algorithmic graph theory and perfect graphs Elsevier: Amsterdam.
- Slides: Bayesian Decision Theory.
- Fawcett, R. (2006).
An introduction to ROC analysis.
*Pattern Recognition Letters*27(8): 859–928. -
de Salvo Braz, R., Amir, E., and Roth, D. (2008).
A survey of first-order probabilistic models.
In
*Innovations in Bayesian networks: Theory and applications*, 289–317. Springer: Berlin-Heidelberg. -
Russell, S. (2015).
Unifying logic and probability.
*Communications of the ACM*58.7:88–97. - Nilsson, N. (1986).
Probabilistic
logic.
*Artificial Intelligence*28.1:71–87. - Getoor, L. and Grant, J. (2006).
PRL:
A probabilistic relational language.
*Machine Learning*61.1:7–31. - Richardson, M. and Domingos, P. (2006).
Markov
logic networks.
*Machine Learning*61.1:107–136. - Gogate, V. and Domingos, P. (2011).
Probabilistic
theorem proving. In
*Proceedings of the 27th Conference on Uncertainty in Artificial Intelligence*, 256–265. AUAI Press: Corvalis, OR. - Domingos, P. and Web, W. A. (2012).
A tractable first-order probabilistic logic. In
*Proceedings of the 26th National Conference on Artificial Intelligence*, 1902–1909. AAAI Press: Menlo Park, CA. - Browne, C. et al. (2012).
A survey of Monte Carlo tree search methods.
*IEEE Transactions on Computational Intelligence and AI in Games*4(1): 1–43. - Slides: Monte Carlo Tree Search.

- Introduction: Definitions, Areas, History, Paradigms
- State-space search: Blind and Informed Search, Uniform-cost Search, Greedy-Best-First Search, A*
- Game playing: Minimax, Alpha-Beta Pruning, Expertiminimax, Monte Carlo Tree Search
- Constraint satisfaction
- Propositional logic and resolution proof for the propositional case
- Midterm Exam
- Predicate logic, Most-general Unifiers
- Resolution proof for predicate logic
- Proof strategies, Prolog
- Uncertainty, Probability Review, Certainty Factors
- Bayesian Networks
- Exact Inference
- Approximate Inference
- Bayesian Decision Theory
- ROC Analysis
- Probablistic First Order Logic

*
Copyright © 2019 Mark Maloof. All Rights Reserved.
This material may not be published, broadcast, rewritten,
or redistributed.
*