In this project, you’ll implement an agent that can answer simple questions about simple sentences
made from the 500 most common words in the English language, as well as a set of 20 possible names
and properly-formatted times. Your agent will be given a sentence and a question, and required to return
an answer to the question; the answer will always be a word from the sentence. You will submit the code
for answering these questions to the Mini-Project 3 assignment in Gradescope. You will also submit a
report describing your agent to Canvas. Your grade will be based on a combination of your report (50%)
and your agent’s performance (50%).
About the Project
In this project, you’ll be given pairs of sentences and questions. Your agent should read the sentence,
read the question, and return an answer to the question based on the knowledge contained in the
sentences. Importantly, while this is a natural language processing-themed project, you won’t be using
any existing libraries; our goal here is for you to understand the low-level reasoning of NLP, not merely
put existing libraries to work.
To keep things relatively reasonable, your agent will only be required to answer questions about the 500
most common words in the English language, as well as a list of 20 possible names. Your agent should
also be able to interpret clock times: you may assume these will always be HH:MM(AM/PM) or simply
HH:MM. For example, 9:00AM, 11:00, or 12:34PM.
Because there are disagreements (https://en.wikipedia.org/wiki/Most_common_words_in_English) on
what the most common words are, we’ve given you our own list of the 500 most common words for our
purposes, along with the 20 names your agent should recognize: these are contained in the
file mostcommon.txt (https://gatech.instructure.com/courses/453236/files/62351087/download) .
Your Agent
To write your agent, download the starter code below. Complete the solve() method, then upload it to
Gradescope to test it against the autograder. Before the deadline, make sure to select your best
performance in Gradescope as your submission to be graded.
Starter Code
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 1/7
Here is your starter code (and the mostcommon.txt file): SentenceReadingAgent.zip
(https://gatech.instructure.com/courses/453236/files/62351087/download) .
The starter code contains two files: SentenceReadingAgent.py and main.py. You will write your agent in
SentenceReadingAgent.py. You may test your agent by running main.py. You will only submit
SentenceReadingAgent.py; you may modify main.py to test your agent with different inputs.
You can use a library like spacy (https://spacy.io/usage/linguistic-features) to preprocess the
mostcommon.txt file. There are others that could be used but you must use them in preprocessing only.
You cannot import the library into Gradescope. You must include whatever preprocessing you’ve done
into your SentenceReadingAgent.py. Do not use another file (.txt or .csv).
The mostcommon.txt contains all the words you will need, but depending on the preprocessing step not
all libraries will lex the file the same and you are encouraged to expand these in your agents knowledge
representation.
Your solve() method will have two parameters: a string representing a sentence to read, and a string
representing a question to answer. Both will contain only the 500 most common words, the names listed
in that file, and/or clock times. The only punctuation will be the apostrophe (e.g. dog’s) or the last
character in the string (either a period for the sentence or a question mark for the question).
For example, an input sentence could be:
“Ada brought a short note to Irene.”
Questions about that sentence might include:
“Who brought the note?” (“Ada”)
“What did Ada bring?” (“note” or “a note”)
“Who did Ada bring the note to?” (“Irene”)
“How long was the note?” (“short”)
Another input sentence could be:
“David and Lucy walk one mile to go to school every day at 8:00AM when there is no snow.”
Questions about that sentence might include:
“Who does Lucy go to school with?” (“David”)
“Where do David and Lucy go?” (“school”)
“How far do David and Lucy walk?” (“mile” or “one mile”)
“How do David and Lucy get to school?” (“walk”)
“At what time do David and Lucy walk to school?” (“8:00AM”)
You may assume that this second example will be the upper limit of complexity you may see in our
sentences.
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 2/7
Returning Your Solution
Your solve() method should return an answer to the question as a string. You may assume every
question will be answerable by a single word from the original sentence, although we may accept multiword answers as well (such as accepting “mile” and “one mile” above).
Submitting Your Solution
To submit your agent, go to the course in Canvas and click Gradescope on the left side. Then, select
CS7637 if need be.
You will see an assignment named Mini-Project 3. Select this project, then drag your
SentenceReadingAgent.py file into the autograder. If you have multiple files, add them to a zip file and
drag that zip file into the autograder.
When your submission is done running, you’ll see your results.
How You Will Be Graded
Your agent will be run against 20 question-answer pairs. The first nine will always be the same; these
are the nine contained within the main.py file provided above. The remaining 11 will be randomly
selected from a large library of sentence-question pairs.
You can earn up to 40 points. You will earn 2 points for each of the 20 questions you answer correctly.
You may submit up to 40 times prior to the deadline. The large majority of students do not need nearly
that many submissions, so do not feel like you should use all 40; this cap is in place primarily to prevent
brute force methods for farming information about patterns in hidden test cases or submitting highly
random agents hoping for a lucky submission. Note that Gradescope has no way for us to increase your
individual number of submissions, so we cannot return submissions to you in the case of errors or other
issues, but you should have more than enough submissions to handle errors if they arise.
You must select which of your submissions you want to count for a grade prior to the deadline. Note that
by default, Gradescope marks your last submission as your submission to be graded. We cannot
automatically select your best submission. Your agent score is worth 50% of your overall mini-project
grade.
Your Report
In addition to submitting your agent to Gradescope, you should also write up a short report describing
your agent’s design and performance. Your report may be up to 4 pages, and should answer the
following questions:
How does your agent work? Does it use some concepts covered in our course? Or some other
approach?
How well does your agent perform? Does it struggle on any particular cases?
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 3/7
How efficient is your agent? How does its performance change as the sentence complexity grows?
Does your agent do anything particularly clever to try to arrive at an answer more efficiently?
How does your agent compare to a human? Do you feel people interpret the questions similarly?
You are encouraged but not required to include visuals and diagrams in your four page report. The
primary goal of the report is to share with your classmates your approach, and to let you see your
classmates’ approaches. You may include code snippets if you think they are particularly novel, but
please do not include the entirety of your code.
Tip: Remember, we want to see how you put the content of this class into action when designing your
agent. You don’t need to use the principles and methods from the lectures precisely, but we want to
see your knowledge of the content reflected in your terminology and your reflection.
Submission Instructions
Complete your assignment using JDF format
(https://gatech.instructure.com/courses/453236/files/folder/Journal%20Templates#) , then save your
submission as a PDF. Assignments should be submitted via this Canvas page. You should submit a
single PDF for this assignment. This PDF will be ported over to Peer Feedback for peer review by your
classmates. If your assignment involves things (like videos, working prototypes, etc.) that cannot be
provided in PDF, you should provide them separately (through OneDrive, Google Drive, Dropbox, etc.)
and submit a PDF that links to or otherwise describes how to access that material.
After submitting, download your submission from Canvas to verify that you’ve uploaded the
correct file. Review that any included figures are legible at standard magnification, with text or symbols
inside figures at equal or greater size than figure captions.
This is an individual assignment. All work you submit should be your own. Make sure to cite any
sources you reference, and use quotes and in-line citations to mark any direct quotes.
Late work is not accepted without advance agreement except in cases of medical or family emergencies.
In the case of such an emergency, please contact the Dean of Students
(https://studentlife.gatech.edu/request-assistance) .
Grading Information
Your report is worth 50% of your mini-project grade. As such, your report will be graded on a 40-point
scale coinciding with a rubric designed to mirror the questions above. Make sure to answer those
questions; if any of the questions are irrelevant to the design of your agent, explain why.
Peer Review
After submission, your assignment will be ported to Peer Feedback (http://peerfeedback.gatech.edu/)
for review by your classmates. Grading is not the primary function of this peer review process; the
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 4/7
Mini-Project 3 Journal Rubric
primary function is simply to give you the opportunity to read and comment on your classmates’ ideas,
and receive additional feedback on your own. All grades will come from the graders alone. See the
course participation policy (https://gatech.instructure.com/courses/453236/assignments/2084928) for full
details about how points are awarded for completing peer reviews.
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 5/7
Criteria Ratings Pts
JDF Format
Does your submission
conform to the
important parts of JDF
formatting—that is,
margin size, line
spacing, font, and font
size? (Deduction only)
0 pts
Agent Description
15 points: How does
your agent work? Does
it use some concepts
covered in our course?
Or some other
approach?
15 pts
Agent Performance
10 points: How well
does your agent
perform? Does it
struggle on any
particular cases?
10 pts
0 pts
Correctly Formatted
Your essay conforms to the
important portions of JDF formatting.
0 pts
JDF Error [Deduction]
Your submission violates JDF format
in one or more substantive ways:
font size, typeface, margins, or line
spacing. See the comment for more
details. As a result, you have been
assigned a negative score on this
rubric item to deduct from your
assignment score.
15 pts
Full Credit
You have
adequately and
thoroughly
described your
agent’s
operations.
10 pts
2/3rds Credit
You have made
an attempt to
describe your
agent’s
operations, but
your description
is lacking a
couple critical
details, such as
adequate detail
on how it
implements the
method it uses.
See the
comment for
more details.
5 pts
1/3rd Credit
You have made
an attempt to
describe your
agent’s
operations, but
your description
is lacking
several
significant
details, such as
what strategy it
implements and
the details of
that strategy’s
implementation.
See the
comment for
more details.
0 pts
No Credit
Your journal
makes little to
no effort to
describe how
your agent
operates.
10 pts
Full Credit
You have adequately
described your agent’s
performance, including
how many problems it
gets right and what
kinds of problems (if
any) it struggles on.
5 pts
1/2 Credit
You have made an
attempt to describe
your agent’s
performance, but you
have left out significant
details, such as how
many test cases it gets
right or what it
struggles on and why.
0 pts
No Credit
Your journal makes
little to no attempt to
describe the
performance of your
agent in terms of the
number of problems it
solves and where it
struggles.
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 6/7
Criteria Ratings Pts
Agent Efficiency
5 points: How efficient
is your agent? How
does its performance
change as the
sentence complexity
grows? (Note: Using
Big O notation is
recommended, but not
required; it is just
easier to know you’ve
adequately answered
the prompt if you
include a Big O
analysis.)
5 pts
Human Comparison
10 points: How does
your agent compare to
a human? Does your
agent solve the
problem the same way
you would?
10 pts
Total Points: 40
See the comment for
more details.
5 pts
Full Credit
You have described
your agent’s efficiency,
in terms of both how
much time it takes at
present and in terms of
how the runtime
changes as the
sentence complexity
grows.
2.5 pts
1/2 Credit
You have made some
attempt to describe the
efficiency of your
agent, but you have
left out one or more
important details, such
as how the runtime
changes as the
sentence complexity
grows. See the
comment for more
details.
0 pts
No Credit
Your journal makes
little to no attempt to
describe the
performance of your
agent in terms of its
runtime efficiency.
10 pts
Full Credit
You have discussed in
adequate detail how
your agent compares
to a human, including
the similarities and
differences between
both its reasoning
strategy and its likely
performance.
5 pts
1/2 Credit
You have made some
attempt to compare
your agent to humans,
but your analysis is
lacking in one or more
significant areas. It
may be lacking
adequate depth, a
sufficient comparison
in terms of both
similarities and
differences, or a
sufficient comparison
of both performance
and strategy.
0 pts
No Credit
Your journal makes
little to no attempt to
describe how your
agent’s strategy and
performance compares
to that of a human.
5/25/25, 5:31 PM Mini-Project 3
https://gatech.instructure.com/courses/453236/assignments/2084958 7/7