[Tutor] Design Question

dsh0105 at comcast.net dsh0105 at comcast.net
Fri Jun 1 16:46:18 CEST 2007


I think I may have sent an incomplete version of this question a moment ago (sorry). Here is the complete question:

I'm designing something along the lines of a flash card program. It's mostly just an exercise in learning Python, but I'd like it to be at least marginally usable when I'm done. So I'm looking for comments/suggestions on the key pieces of the 
design: the questions and the flash card deck:
Psudo-code of current design:

class Deck():
	"""Provides managment and informational functions about a set of questions to be asked
		methods incldue:
		__init__(questions) -- takes a list of question and creates a new deck with these questions.
		add_question(self,question) -- Adds a question to the current deck
		remove_question(self,question) -- returns True if the question was removed, False otherwise
		get_question() -- Returns the next unanswered question in the deck
		get_stats() -- returns a tuple containing: number_asked, number_correct, number_remaining
                shuffle_deck() -- shuffles the order of the remaining questions.
		Deck Overrived the __len__ function so that the len returned is the number of questions in the deck."
		

class Question():
	"""Provides questions to be asked
	methods:
	__init__(self,question,answer) -- question string representing the question. 
								    answer can be a text string, a tupple (for multiple correct answers)
									or an object implementing an is_correct() method that returns a boolean
									
	check_answer(self,answer) -- tests to see if the answer is correct and returns a boolean 
	"""
									
									
Mostly I'm wondering, is this over-kill? The idea is to allow for the deck to be used for as wide a variety of purposes as possible. Also, I want to make it easy to write code that generates decks.  Is this design over-kill?

Any comments/suggestions welcome.

Thanks,

David


More information about the Tutor mailing list