COSC-3450: Artificial Intelligence

Spring 2024

Contents

Announcements

Where, When, Who

Class Time: TR 9:30–10:45 AM
Classroom: WGR 211
   
Instructor: Mark Maloof
Office: 325 St. Mary's Hall
Office Hours: None for 24–25 academic year.

Description

Artificial Intelligence (AI) is the branch of computer science that studies how to program computers to reason, learn, perceive, and understand. The lecture portion of the class surveys basic and advanced concepts and techniques of artificial intelligence, including search, knowledge representation, automated reasoning, uncertain reasoning, and machine learning. Specific topics include symbolic computing, state-space search, game playing, theorem proving, rule-based systems, Bayesian networks, probability estimation, rule induction, Markov decision processes, reinforcement learning, and ethical and philosophical issues. Applications of artificial intelligence are also discussed in domains such as medicine and computer security. Students complete midterm and final exams, and five programming projects using the Java programming language.

Prerequisite: Data Structures (COSC-160/2010) and Advanced Programming (COSC-150/2020).

Required Text:

Learning Goals

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

Policies

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.

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. 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. They may require citation.

For convenience, you do not need to cite the course materials, which includes the syllabus, sources linked from the syllabus, the course textbooks, the class lectures and discussion, posts on the discussion board, and conversations with me and the courses assistants. You must, however, cite the use of any resource that is not part of the course materials. Note that “the textbook” does not extend to the textbook's Web site, its contents, lecture slides, solution manuals, code repositories, or any other supplemental material related to the textbook. 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. Note that under § 1202 of Title 17 of the U.S. Code it is illegal to remove or alter copyright management information.

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, students in current and future classes will be able to find your solutions and submit them as their own work without attribution. Naturally, students who submit another student's work as their own violate my course policies, and in the past, the Honor Council has found these students in violation and sanctioned them. The Honor Council has also found students who post their solutions on the Internet in violation because they facilitated cheating, violated copyright law, the Web site's terms of service, or some combination of these.

I understand that prospective employers may ask for examples of your work. I recommend that you devise a scheme for providing examples in a manner 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. One idea is to share a private folder on Google Drive with a prospective employer.

For this running of the class (Spring 2024), you can use generative AI tools for homeworks and projects. Such systems include but are not limited to ChatGPT, Bard, and Copilot. You must use these tools responsibly. You must adhere to the tool's terms of use. You must also abide by Georgetown's Acceptable Use Policy. This generally means that you must own the information in your queries and that you do not include material protected by copyright law. Any given generative AI tool is not included in the course materials, so if you decide to use such tool for an assignment, you must provide with your submission either a link to or a transcript of the session. If a tool does not provide this functionality, then you can not use it.

The following list details acceptable and unacceptable practices:

Policies dealing logistics:

OSs, IDEs, and Tools

Schedule

Week Topics and Materials
1 Introduction: What is AI? Foundations, History, State of the Art, Legal Challenges to Generative AI (Russell and Norvig, 2021, Ch. 1; Samuelson, July 2023; Samuelson, November 2023)
2 Uninformed Search: State-space Search, Depth-First, Breadth-First, Uniform-Cost Search (Russell and Norvig, 2021, § 3.1–3.4)
3 Informed Search: Greedy Best-First, A* (Russell and Norvig, 2021, § 3.5)
4 Local Search: Hill Climbing (Russell and Norvig, 2021, § 4.1)
5 Logic: Propositional, Resolution, Physical Symbol Systems (Russell and Norvig, 2021, § 7.3–7.5; Newell and Simon, 1976)
6 Logic: Predicate, Unification, First-Order Resolution, Can Machines Think? Midterm Exam (Russell and Norvig, 2021, Ch. 8 and 9; Turing, 1950)
7 Uncertainty: Probability Review, Bayes' Rule (Russell and Norvig, 2021, Ch. 12)
8 Probabilistic Reasoning: Bayesian Inference Networks (Russell and Norvig, 2021, § 13.1–13.3)
9 Learning: Supervised Learning, Rule Learning (Russell and Norvig, 2021, § 19.1–19.4)
10 Learning: Evaluation (Russell and Norvig, 2021, § 19.8 and 19.9)
11 Learning: Markov Decision Processes, Value and Policy Iteration (Russell and Norvig, 2021, § 17.1–17.3)
12 Learning: Reinforcement Learning (Russell and Norvig, 2021, § 22.1–22.3)
13 Learning: Linear Machines and Perceptron (Russell and Norvig, 2021, § 19.6.4, § 19.7.5)
14 Learning: Neural Networks, Back-propagation (Russell and Norvig, 2021, § 21.1–21.5)
15 Learning: Deep Learning and Convolutional Neural Networks (Russell and Norvig, 2021, § 20.1 and 20.2)
16 Adversarial Search: Minimax, Alpha-Beta Pruning, Expectiminimax, Monte Carlo Tree Search, AlphaGo (Russell and Norvig, 2021, § 5.1–5.5)
17 Philosophical and Ethical Issues in AI (Russell and Norvig, 2021, Ch. 27; Searle, 1990; O'Neil and Gunn, 2020)

Assignments and Grading

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 >= 77)
    return "C+";
  else if (grade >= 74)
    return "C";
  else if (grade >= 70)
    return "C-";
  else if (grade >= 67)
    return "D+";
  else if (grade >= 64)
    return "D";
  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. I grade the last submission for practical and pedagogical reasons.

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

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:

Materials: Readings, Videos, and Links

Other Interesting Links

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