SLP assignment: your assignment is about classes & methods, inheritance,input/output, linked lists, and improve the program questor.


  1. Read chapter 17 and 18 from “Think Python: How to Think Like a Computer Scientist (Version 1.3.3)”, a reference in the background materials. Code all the examples and exercises except 17.12 & 18.11 in Python and successfully run them.
  2. Read chapter 12 from A Byte of Python, a reference in the background materials. Code all the examples and exercises in Python IDE and successfully run them.
  3. Read chapter 17 from “How to Think Like a Computer Scientist Learning with Python (1st Edition)”, a reference in the background materials. Code all the examples in Python and successfully run them.
  4. Find a way to improve the program below to save the input data and load it back in so that the program doesn’t get amnesia every time you quit. Run and debug your improved program.

This is a Python program which has a class and other features. In this script, you think of an item, and the computer tries to guess it. When it is wrong, you teach it about your new item. After a few dozen games, it starts to get pretty smart!


# define some constants for future use

kQuestion = ‘question’
kGuess = ‘guess’

# define a function for asking yes/no questions
def yesno(prompt):
ans = raw_input(prompt)
return (ans[0]==’y’ or ans[0]==’Y’)

# define a node in the question tree (either question or guess)
class Qnode:

# initialization method
def __init__(self,guess):
self.nodetype = kGuess
self.desc = guess

# get the question to ask
def query(self):
if (self.nodetype == kQuestion):
return self.desc + ” “
elif (self.nodetype == kGuess):
return “Is it a ” + self.desc + “? “
return “Error: invalid node type!”

# return new node, given a boolean response
def nextnode(self,answer):
return self.nodes[answer]

# turn a guess node into a question node and add new item
# give a question, the new item, and the answer for that item
def makeQuest( self, question, newitem, newanswer ):

# create new nodes for the new answer and old answer
newAnsNode = Qnode(newitem)
oldAnsNode = Qnode(self.desc)

# turn this node into a question node
self.nodetype = kQuestion
self.desc = question

# assign the yes and no nodes appropriately
self.nodes = {newanswer:newAnsNode, not newanswer:oldAnsNode}

def traverse(fromNode):
# ask the question
yes = yesno( fromNode.query() )

# if this is a guess node, then did we get it right?
if (fromNode.nodetype == kGuess):
if (yes):
print “I’m a genius!!!”
# if we didn’t get it right, return the node
return fromNode

# if it’s a question node, then ask another question
return traverse( fromNode.nextnode(yes) )

def run():
# start with a single guess node
topNode = Qnode(‘python’)

done = 0
while not done:
# ask questions till we get to the end
result = traverse( topNode )

# if result is a node, we need to add a question
if (result):
item = raw_input(“OK, what were you thinking of? “)
print “Enter a question that distinguishes a”,
print item, “from a”, result.desc + “:”
q = raw_input()
ans = yesno(“What is the answer for ” + item + “? “)
result.makeQuest( q, item, ans )
print “Got it.”

# repeat until done
done = not yesno(“Do another? “)

# immediate-mode commands, for drag-and-drop or execfile() execution
if __name__ == ‘__main__’:
raw_input(“press Return>”)
print “Module questor imported.”
print “To run, type:”
print “To reload after changes to the source, type: reload(questor)”

# end of

Add the Python files from all 3 requirements above to one zip file. Add a one page write-up of your results and experiences to the zip file.


SLP assignment expectations:


  • Implement the code required for all the above 3 requirements.
  • Write a one page description of your results and experiences.


Upload the zip file to coursenet.




Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
The price is based on these factors:
Academic level
Number of pages
Basic features
  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support
On-demand options
  • Writer’s samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading
Paper format
  • 275 words per page
  • 12 pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our guarantees

Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.

Money-back guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read more

Zero-plagiarism guarantee

Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

Read more

Free-revision policy

Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.

Read more

Privacy policy

Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.

Read more

Fair-cooperation guarantee

By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.

Read more
error: Content is protected !!