Introduction - Cornell University

advertisement
CS 4700:
Foundations of Artificial Intelligence
Carla P. Gomes
gomes@cs.cornell.edu
http://www.cs.cornell.edu/Courses/cs4700/2008fa/Module:
Introduction
(Reading R&N: Chapter 1)
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Overview of this Lecture
Course Administration
What is Artificial Intelligence?
Course Themes, Goals, and Syllabus
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Course Administration
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
CS 4700:
Foundations of Artificial Intelligence
Lectures: Monday, Wednesday, Friday 1:115 – 12:05
Location: Phillips Hall, room 101
Lecturer: Prof. Gomes
Office: 5133 Upson Hall
Phone: 255 9189
Email: gomes@cs.cornell.edu
Administrative Assistant: Kelly Duby
Kelly Duby <kduby@cs.cornell.edu>
4105 Upson Hall, 255-0980
Web Site: http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
CS 4700:
Foundations of Artificial Intelligence
Head Teaching Assistants
Yunsong Guo guoys @cs.cornell.edu
Anton Morozov amoroz @cs.cornell.edu
Teaching Assistants
Clayton Chang cc843 @cornell.edu
Sean Sullivan sps27 @cornell.edu
Web Site: http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Office Hours
Prof. Gomes:
Office: 5133 Upson Hall
Fridays: 1:15p.m – 2:15 p.m. (starting next week)
I prefer to meet during my scheduled office hours, however,
if you need to meet with me at a different time please
schedule an appointment by email.
TAs - TBA
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Grades
Midterm
(15%)
Homework
(45%)
Participation
(5%)
Final
(35%)
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Homework
Homework is very important. It is the best way for you to learn the
material. You are encouraged to discuss the problems with your
classmates, but all work handed in should be original, written by you in
your own words.
Assignments turned in late will drop 5 points for each period of 24
hours for which the assignment is late. In addition, no assignments
will be accepted after the solutions have been made available. No late
homework will be accepted
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Mailing List
cs4700ta-l@lists.cs.cornell.edu.
Contact us by using this mailing list. The list is set to mail all
the TA's and Prof. Gomes -- you will get the best response
time by using this facility, and all the TA's will know the
question you asked and the answers you receive.
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
CS 4701:
Practicum in Artificial Intelligence (Optional)
CS4701 Project (Optional)
CS4700 is a co-requisite for CS473.
There will be an organizational meeting in Hollister Hall room 110 on Tuesday,
September 2nd at 3:35pm.
The main assignment for CS4701 is a course project. Students will work in groups
(probably pairs). A project proposal is required. A separate project handout
with project suggestions, details, and due dates regarding the project
proposal, and final project write-up will be made available from the course
home page.
Grading CS4701
20%: Project proposal
80%: Final code, write-up, and presentation
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Textbook
Artificial Intelligence: A Modern Approach (AIMA)
(Second Edition) by Stuart Russell and Peter Norvig
Required
Artificial Intelligence : A New Synthesis
By Nils Nilsson
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Lecture notes and reading material
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Optional
reading material
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Welcome to this class!
We will work together throughout this semester.
Questions and suggestions are welcome anytime.
– E.g., if you find anything incorrect or unclear, send an email or talk to
me.
Any questions?
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Overview of this Lecture
Course Administration
What is Artificial Intelligence?
Course Themes, Goals, and Syllabus
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
AI: Goals
Ambitious goals:
– understand “intelligent” behavior
– build “intelligent” agents
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
What is Intelligence?
Intelligence:
– “the capacity to learn and solve problems”
(Webster dictionary)
– the ability to act rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
What is AI?
Views of AI fall into four different perspectives:
Thinking versus Acting
Human versus Rational
Human-like
Intelligence
Thought/
Reasoning
Behavior/
Actions
“Ideal” Intelligent/
Rationally
2.Thinking humanly 3.Thinking
Rationally
1.Acting
Humanly
4.Acting
Rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Different AI Perspectives
2. Systems that think like humans
Human Thinking
Human Acting
1. Systems that act like humans
3. Systems that think rationally
Rational Thinking
Rational Acting
4. Systems that act rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
1. Acting Humanly
Human-like
Intelligence
Thought/
Reasoning
Behavior/
Actions
“Ideal” Intelligent/
Rationally
2. Thinking
humanly
3. Thinking
Rationally
1. Acting
Humanly
Turing Test
4. Acting
Rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
In 1936, Alan Turing, a British mathematician, showed
that there exists a relatively simple universal computing
device that can perform any computational process.
Computers use such a universal model.
Alan
Turing
Turing Machine
(abstraction)
Turing also showed the limits of computation – some problems
cannot be computed even with the most powerful computer and even
with unlimited amount of time – e.g., Halting problem.
Acting humanly: Turing Test
Alan Turing
Turing (1950) "Computing machinery and intelligence":
"Can machines think?“ Instead, "Can machines behave intelligently?"
– Operational test for intelligent behavior: the Imitation Game
AI system passes
if interrogator
cannot tell which one
is the machine
(interaction via written questions)
Predicted that by 2000, a machine might have a 30% chance of fooling a
lay person for 5 minutes
Anticipated all major arguments against AI in following 50 years
Suggested major components of AI
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Acting humanly: Turing Test
Turing test  identified key research areas in AI:
Natural Language Processing – to communicate with the machine;
Knowledge Representation – to store and manipulate information;
Automated reasoning – to use the stored information to answer questions and draw new
conclusions;
Machine Learning – to adapt to new circumstances and to detect and extrapolate patterns.
but does a machine need to act humanly
to be considered intelligent?
Carla P. Gomes
INFO372
Some Famous Imitation Games
1960s
ELIZA Joseph Weizenbaum
– Rogerian psychotherapist
1990s
ALICE
Loebner prize
– win $100,000 if you pass the test
Carla P. Gomes
INFO372
ELIZA:
impersonating a Rogerian psychotherapist
1960s ELIZA Joseph Weizenbaum
http://www-ai.ijs.si/eliza/eliza.html
Eliza:
a friend you could never have before
Eliza: Hello. I am ELIZA. How can I help you?
You: Well I feel sad
Eliza: Do you often feel sad?
You: not very often, but it's becoming more common
Eliza: Please go on.
Carla P. Gomes
INFO372
Chat Bot – ALICE
(AI Foundation)
Human: hi my name is Carla
ALICE: How are you doing, Carla.
Human: what is your name?
ALICE: My name is ALICE.
Human: what is your full name?
ALICE: ALICE = Artificial Linguistic Internet Computer Entity.
Human: when were you born?
ALICE: I was connected to the net on November 23, 1995.
Human: Have you passed the Loebner Prize?
ALICE: The Loebner Prize is an annual Turing Test sponsored by New York philanthropist Hugh
Loebner. Dr. Wallace and ALICE won it in 2000. The ALICE program was ranked "most human
computer" by the panel of judges.
Human: who is Dr. Wallace?
ALICE: He is a famous computer scientist, the author of ALICE, and a graduate of Carnegie
Mellon.
Human: Where does Dr. Wallace work?
ALICE: he works from his home in San Francisco.
Carla P. Gomes
INFO372
The Loebner contest
A modern version of the Turing Test, held annually, with a $100,000 cash
prize.
Hugh Loebner was once director of UMBC’s Academic Computing Services
(née UCS)
http://www.loebner.net/Prizef/loebner-prize.html
Restricted topic (removed in 1995) and limited time.
Participants include a set of humans and a set of computers and a set of
judges.
Scoring
– Rank from least human to most human.
– Highest median rank wins $2000.
– If better than a human, win $100,000. (Nobody yet…)
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
2. Thinking Humanly
Human-like
Intelligence
Thought/
Reasoning
Behavior/
Actions
“Ideal” Intelligent/
Rationally
2. Thinking
humanly
 Cognitive
Modeling
Thinking
Rationally
Acting
Humanly
Turing Test
Acting
Rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Thinking humanly:
modeling cognitive processes
Requires scientific theories of internal activities of the brain;
1) Cognitive Science (top-down) : computer models + experimental
techniques from psychology
 Predicting and testing behavior of human subjects
2) Cognitive Neuroscience (bottom-up)
–  Direct identification from neurological data
Both approaches are now distinct from AI
1960s "cognitive revolution": information-processing psychology
Carla P. Gomes
INFO372
3. Thinking Rationally
Human-like
Intelligence
Thought/
Reasoning
Behavior/
Actions
“Ideal” Intelligent/
Rationally
Thinking humanly
 Cognitive
Modeling
3. Thinking
Rationally
”Laws of
Thought”
Acting
Humanly
Turing Test
Acting
Rationally
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Thinking rationally:
formalizing the "laws of thought“
Logic  Making the right inferences! Several Greek schools developed
various forms of logic: notation and rules of derivation for thoughts;
Aristotle: what are correct arguments/thought processes? (characterization
of “right thinking”);
Socrates is a man
All men are mortal
-------------------------Therefore Socrates is mortal
More contemporary logicians (e.g. Boole, Frege, Tarski) 
Direct line through mathematics and philosophy to modern AI
Limitations::
•Not all intelligent behavior is mediated by logical deliberation
•What is the purpose of thinking? What thoughts should I have?
Carla P. Gomes
CS4700
•
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
4. Acting Rationally
Human-like
Intelligence
Thought/
Reasoning
Behavior/
Actions
Thinking humanly
 Cognitive
Modeling
Acting
Humanly
Turing Test
“Ideal” Intelligent/
Rationally
3. Thinking
Rationally
”Laws of
Thought”
4. Acting
Rationally
Course
Perspective
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Acting rationally: rational agent
•
Rational behavior: doing the right thing
•
• The right thing: that which is expected to
maximize goal achievement, given the
available information
•
Doesn't necessarily involve thinking – e.g.,
blinking reflex – but thinking should be in
the service of rational action
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Rational agents
• An agent is an entity that perceives and acts
•
This course is about designing rational agents
• Abstractly, an agent is a function from percept
histories to actions:
•
[f: P*  A]
• For any given class of environments and tasks, we
seek the agent (or class of agents) with the best
performance
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Carla P. Gomes
CS4700
Building Intelligent Machines
I Building exact models of human cognition
view from psychology and cognitive science
II Developing methods to match or exceed human
performance in certain domains, possibly by
very different means  e.g., Deep Blue;
Focus of CS4700 (most recent progress).
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Methodology of AI
Theoretical aspects
– Mathematical formalizations, properties, algorithms
Engineering aspects
– The act of building (useful) machines
Empirical science
– Experiments
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
What's involved in Intelligence?
A) Ability to interact with the real world
to perceive, understand, and act
speech recognition and understanding
image understanding (computer vision)
B) Reasoning and Planning
CS4700
modelling the external world
problem solving, planning, and decision making
ability to deal with unexpected problems, uncertainties
C) Learning and Adaptation
We are continuously learning and adapting.
We want systems that adapt to us!
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Historic Perspective
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
AI Leverages
from different disciplines
Philosophy
e.g., foundational issues in logic, methods of reasoning,
mind as physical system, foundations of learning,
language, rationality
Computer science and engineering
e.g., complexity theory, algorithms, logic and inference,
programming languages, and system building (hardware
and software).
Mathematics and physics
e.g., probability theory, statistical modeling, continuous mathematics,
Carla P. Gomes
Markov models, statistical physics, and complex systems.
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
AI
More direct Influence
Obtaining an understanding of the human mind is one of the
final frontiers of modern science.
George Boole, Gottlob Frege, and Alfred Tarski
formalizing the laws of human thought
Alan Turing, John von Neumann, and Claude Shannon
thinking as computation
Direct Founders:
John McCarthy, Marvin Minsky, Herbert Simon, and Allen Newell
the start of the field of AI (1959)
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
History of AI:
Milestones
The gestation of AI 1943-1956
1943 : McCulloch and Pitts
– McCulloch and Pitts’s model of artificial neurons
– Minsky’s 40-neuron network
1950 : Turing’s “Computing machinery and intelligence”
1950s Early AI programs, including Samuel’s checkers program, Newell
and Simon’s Logic theorist
1956 Dartmouth meeting : Birth of “Artificial Intelligence”
– A 2-month Dartmouth workshop of 10 attendees – the
name of AI
– Newell and Simon’s Logic Theorist
– Do you think AI is a god name?
Carla P. Gomes
CS4700
http://www.cs.cornell.edu/Courses/cs4700/2008fa/
Perceptrons
Early neural nets
More about
Neural Nets
later in the course…
Carla P. Gomes
INFO372
History of AI
Look, Ma, no hands !
(1952-1969)
Early enthusiasm, great expectations
1957 Herb Simon:
It is not my aim to surprise or shock you – but the simplest way I can summarize is to
say that there are now in the world machines that think, that learn and that create.
Moreover their ability to do these things is going to increase rapidly until – in the
visible future – the range of problems that they can handle will be coextensive with
the range to which human mind has been applied.
1958 : John McCarthy’s LISP
1965 : J.A. Robinson invents the resolution principle, basis for automated
theorem
Intelligent reasoning in Microworlds (such as Block’s world)
Carla P. Gomes
INFO372
The Block’s world
A
A
B
D
D
C
C
Initial State
T
Goal State
Carla P. Gomes
INFO372
History of AI
A dose of reality (1966-1978)
1965 : Weizenbaum’s ELIZA
Difficulties in automated translation ( try http://babelfish.yahoo.com/)
Syntax is not enough
“the spirit is willing but the flesh is weak”
“the vodka is good but the meat is rotten”
Limitations of Perceptrons discovered
 can only represent linearly separable functions
Neural network research almost disappears
NP-Completeness (Cook 72)
Intractability of the problems attempted by AI,
Worst- case result….
History of AI
Knowledge based systems (1969-79)
Intelligence requires knowledge - Knowledge based systems as opposed to weak
methods (general-purpose search methods)
 Expert Systems,
E.g.:
– Mycin : diagnose blood infections
– R1 : configuring computer systems
Carla P. Gomes
INFO372
History of AI
AI becomes industry (1980-88)
Expert systems
Lisp-machines
Return of Neural Nets
 End of 80’s – limitations of expert systems became clear,
even though they have been quite successful in certain
domains.
Carla P. Gomes
INFO372
History of AI:
2000AI is Alive and Kicking
Current work on “intelligent agents”:
Emphasis on integration of reasoning (search
and inference as well as probabilistic
reasoning), knowledge representation, and
learning techniques
AAAI08
AI as a science: Combining theoretical and
empirical analysis
Mathematical sophistication of AI
techniques
Key challenge:
building flexible and scalable AI
systems in the Open World
.
“… A better understanding of the problems and their complexity properties,
combined with increased mathematical sophistication,
has led to workable research agendas and robust methods” R&N.
Carla P. Gomes
INFO372
AI Achievements
A few recent examples…
Carla P. Gomes
INFO372
1996 - EQP:
Robbin’s Algebras are all boolean
A mathematical conjecture (Robbins conjecture) unsolved for 60 years!
First creative mathematical
proof by computer:
unlike brute-force based proofs
such as the 4-color theorem.
The Robbins problem was to determine whether one
particular set of rules is powerful enough to capture all of
the laws of Boolean algebra. One way to state the Robbins
problem in mathematical terms is:
Can the equation not(not(P))=P be derived from the
following three equations?
[1] P or Q = Q or P,
[2] (P or Q) or R = P or (Q or R),
[3] not(not(P or Q) or not(P or not(Q))) = P.
[An Argonne lab program] has come up with a major mathematical
proof that would have been called creative if a human had thought of it.
New York Times, December, 1996
http://www-unix.mcs.anl.gov/~mccune/papers/robbins/
Carla P. Gomes
INFO372
Microsoft Office’97 + Answer Wizard
Diagnosis reasoning using Bayesian Models
Restricted NLP
Carla P. Gomes
INFO372
1997:
Deep Blue beats the World Chess Champion
vs.
I could feel human-level intelligence across the room
-Gary Kasparov, World Chess Champion (human…)
Carla P. Gomes
INFO372
Deep Blue vs. Kasparov
Game 1: 5/3/97:
Kasparov wins
Game 2: 5/4/97:
Deep Blue wins
Game 3: 5/6/97:
Draw
Game 4: 5/7/97:
Draw
“I felt a new kind of
Intelligence” ( across
the board from him)
Kasparov 1997
Game 5: 5/10/97:
The value of IBM’s stock
Draw
Increased by $18 Billion!
Game 6: 5/11/97:
Deep Blue wins
One of the most famous modern computers,
Deep Blue, which defeated Gary Kasparov at chess.
Carla P. Gomes
INFO372
1999: Remote Agent takes
Deep Space 1 on a galactic ride
Goals
Scripts
Scripted
Executive
ESL
Mission-level
actions &
resources
Generative
Planner &
Scheduler
Generative
Mode Identification
& Recovery
component models
Monitors
Real-time Execution
Adaptive Control
Hardware
For two days in May, 1999, an AI Program called Remote Agent
autonomously ran Deep Space 1 (some 60,000,000 miles from earth)
Carla P. Gomes
INFO372
Remote Agent:
1999 Winner of NASA's Software of the Year Award
It's one small step in the history of space flight. But it was one giant leap for
computer-kind, with a state of the art artificial intelligence system
being given primary command of a spacecraft. Known as Remote Agent,
the software operated NASA's Deep Space 1 spacecraft and its futuristic ion
engine during two experiments that started on Monday, May 17, 1999.
For two days Remote Agent ran on the on-board computer of Deep Space 1,
more than 60,000,000 miles (96,500,000 kilometers) from Earth.
The tests were a step toward robotic explorers of the 21st century that are
less costly, more capable and more independent from ground control.
http://ic.arc.nasa.gov/projects/remote-agent/index.html
Carla P. Gomes
INFO372
Proverb 1999: Solving Crossword Puzzles as
Probabilistic Constraint Satisfaction
Proverb solves
crossword puzzles
better than most humans
Michael Littman et a. 99
Carla P. Gomes
INFO372
2000: SCIFINANCE
synthesizes programs for financial modeling
Develop pricing models for
complex derivative structures
Involves the solution of a set of
PDEs (partial differential
equations)
Integration of object-oriented
design, symbolic algebra, and
plan-based scheduling
Carla P. Gomes
INFO372
Robocup @ Cornell
1999
http://www.mae.cornell.edu/raff/MultiAgentSystems/MultiAgentSystems.htm
Raff D’andrea
Carla P. Gomes
INFO372
From Robocup to
Warehouse Automation
First user of system
Raff D’Andrea
Carla P. Gomes
INFO372
Machine learning successes
Source: R. Greiner
Carla P. Gomes
INFO372
Machine learning successes
Source: R. Greiner
Carla P. Gomes
INFO372
Machine learning successes
Source: R. Greiner
Carla P. Gomes
INFO372
2005 Autonomous Control:
DARPA GRAND CHALLENGE
October 9, 2005
Stanley and the Stanford RacingTeam
were awarded 2 million dollars for being the
first team to complete the 132 mile
DARPA Grand Challenge course (Mojave Desert).
Stanley finished in just under 6 hours 54 minutes
and averaged over 19 miles per hours on the course.
Carla P. Gomes
INFO372
Carla P. Gomes
INFO372
A* algorithm
Carla P. Gomes
INFO372
2007 Darpa Urban Challenge
Winner: CMU Tartan Racing's Boss
http://www.tartanracing.org/blog/index.html#26
Carla P. Gomes
INFO372
The DARPA Urban Challenge is being held at the former George Air Force Base.
The old base buildings are abandoned now and the Marines use the area to train for
urban missions.
Carla P. Gomes
INFO372
Where can you learn more about AI?
Carla P. Gomes
INFO372
Main annual AI conference:
AAAI
Association for
Advancement of AI
Association for Advancement of Artificial Intelligence
(AAAI)
AI Topics
http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/HomePage
Carla P. Gomes
INFO372
Goals for this course
Carla P. Gomes
INFO372
Setting expectations for this course
Are we going to build real systems and robots?
NO!!!
Goal:
Introduce the theoretical and computational techniques
that serve as a foundation for the study of artificial
intelligence (AI).
Carla P. Gomes
INFO372
Syllabus
• Structure of intelligent agents and environments.
• Problem solving by search: principles of search, uninformed (“blind”)
search, informed (“heuristic”) search, and local search.
• Constraint satisfaction problems: definition, search and inference, and
study of structure.
• Adversarial search: games, optimal strategies, imperfect, real-time
decisions.
• Logical agents: propositional and first order logic, knowledge bases
and inference.
• Uncertainty and probabilistic reasoning: probability concepts,
Bayesian networks, probabilistic reasoning over time, and decision
making
• Learning: inductive learning, concept formation, decision tree learning,
statistical approaches, neural networks, reinforcement learning
Carla P. Gomes
INFO372
Notes
The syllabus is quite ambitious: some of the topics may only be covered
briefly, depending on time.
Detailed reading information (chapters and sections of R&N) will be
provided in the lectures notes and homework assignments.
This is not a machine learning course: we will only cover some
introductory material learning topics  if you are looking for a machine
learning course, here is a specialized machine learning course offered this
fall:
CS4782 - Probabilistic Graphical Models.
Carla P. Gomes
INFO372
Summary
Artificial Intelligence and characteristics of intelligent systems.
Brief history of AI
Examples of AI achievements
Computers are getting smarter !!!
Reading: Chapter 1 Russell & Norvig
Carla P. Gomes
INFO372
The End !
Carla P. Gomes
INFO372
Download