COSC574: Automated Reasoning
Spring 2016
Contents
Announcements
Where, When, Who
Class Time: 
MW 3:30 PM – 4:45 PM 
Classroom: 
ICC 204A 


Instructor: 
Mark Maloof 
Office: 
325 St. Mary's Hall 
Mailbox: 
329A St. Mary's Hall 
Office Hours: 
Inperson (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.

Description
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
propositional logic,
predicate logic,
resolution proof,
production systems,
Prolog,
uncertain reasoning,
certainty factors,
Bayesian decision theory,
Bayesian networks,
exact inference,
approximate inference,
firstorder probabilistic models,
probabilistic programming languages,
and applications.
Prerequisites:
Ideally, students will have taken undergraduate courses in computer
science through data structures, but at the very least, students must
be able to implement trees and graphs using a highlevel programming
language, such as C++, Java, Python, or Ruby.
Students should have also taken undergraduate courses in mathematics,
such as calculus, linear algebra, and probability and statistics.
Recommended Text:
Additional Resources:
 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 ].
Learning Goals
By the end of the semester, students will be able to:
 explain the main foundations of automated reasoning
 understand and design objectoriented systems for automated reasoning
 analyze algorithms for automated reasoning in time and space
 implement methods of automated reasoning using a highlevel programming language
 comprehend, analyze, and critique scholarly papers from the primary literature
 replicate studies described in the primary literature
 design and conduct empirical studies
Policies
My course policies are designed to supplement 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've 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
master's students to the 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,
or by email.
In my experience, students at Georgetown do honest work.
The 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 follow proper scholarly practice for all submitted work,
whether graded or ungraded and whether a draft or final version of
a proposal, paper, or program.
We must acknowledge our reliance on the work of others through citation.
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, new graduate students in computer science may not realize that
formulae, theorems, proofs, algorithms, and programs can require the same
treatment as any other form of expression.
For convenience, you do not need to cite the course materials,
conversations with me or information you obtain from class lectures
and discussions.
If you are unsure about what requires citation or what constitutes
proper scholarly practice,
please ask me during class, during office hours, or by email.
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 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 runtime 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;
 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 which
is not part of the course's required reading.
If you modify any procedure which is presented in the course's
texts that is not specifically mentioned in class or covered
in reading assignments, then a citation with page number must
be given;
 incorporate code written by others (such as can be found on the
Internet).
Policies dealing with late projects, cell phones, attendance,
and inclement weather.
 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.
 If you use your laptop for development, you should keep a backup
of your projects on a university or department machine (e.g., csclass).
 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. Students bringing cell phones to class must either set the phone
to vibrate, turn the ringer volume off, or turn the phone off completely.
 Attendance is not required, but there is a correlation
between attendance and grade. It's positive.
 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 Blackboard Collaborate.
Assignments and Grading
 Programming Projects, 60%
 Project 1, assigned W 2/20, due Su 2/28, 20 points
 Project 2, assigned M 2/29, due W 3/23, 10 points
 Project 3, assigned W 3/23, due F 4/15, 10 points
 Project 4, assigned W 3/23, due M 5/2, 20 points
 Midterm Exam, W 3/2, 20%
 Final Exam, F 5/13, 12:30–2:30 PM, 20%
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
Materials: Readings, Videos, and Links
 PerezHernandez, 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 Unify algorithm.
 Robinson, J. A. (1965). A machineoriented 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.
 Tarjan, R. E. and Yannakakis, M. (1984).
Simple lineartime algorithms
to test chordality of graphs, test acyclicity of hypergraphs, and
selectively reduce acyclic hypergraphs. SIAM Journal on Computing
13.3:566579.
 Golumbic, M. C. (2004).
Algorithmic graph theory and perfect graphs
Elsevier: Amsterdam.

de Salvo Braz, R., Amir, E., and Roth, D. (2008).
A survey of firstorder probabilistic models.
In Innovations in Bayesian networks: Theory and applications,
289–317. Springer: BerlinHeidelberg.

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 firstorder probabilistic logic. In
Proceedings of the 26th National Conference on Artificial
Intelligence, 1902–1909. AAAI Press: Menlo Park, CA.
Schedule
 Introduction: Definitions, Areas, History, Paradigms
 Propositional logic and resolution proof for the propositional case
 Predicate logic, Mostgeneral Unifiers
 Resolution proof for predicate logic
 Proof strategies, Prolog
 Post's Productions, Rulebased Systems, Rete Algorithm
 Midterm Exam
 Uncertainty, Probability Review, Certainty Factors
 Bayesian Decision Theory
 Bayesian Networks
 Exact Inference
 Approximate Inference
 Probabilistic Firstorder Logics
 Probabilistic Programming Languages
Other Interesting Links
Copyright © 2019 Mark Maloof. All Rights Reserved.
This material may not be published, broadcast, rewritten,
or redistributed.