Note: I've deliberately made this week's required assignment pretty easy, and the extra credit quite high, to provide a strong incentive for you to do more than the minimum and get hands-on with one of the extra credit suggestions.
Required:
Notice that since D(p||q) must be greater than or equal to 0, this establishes that cross entropy is an upper bound on entropy.
Using a a unigram model is fine, and last week's homework should already give you most of what you need. If you're interested in being more realistic, a bigram or trigram model would be more interesting and plausible, although of course these data sets are unrealistically small. If you're feeling like this assignment is too easy and you want to do something more challenging and real, you could try using the SRI language modeling toolkit (srilm), KenLM, or another of the language modeling toolkits widely used in NLP (or I imagine NLTK probably has decent LM support in python), and/or using different corpora that might give you interesting results.
As one possible source of data to work with, see the NLTK corpora. The Brown corpus would be a smallish but decent source for English (just remove POS tags and lowercase everything; it's already tokenized). If you're feeling more ambitious, you could try the Europarl corpora for English and/or other languages (tens of millions of words per language for a lot of languages).
Note that we have not tried this ourselves, so, again, remember that the goal is not to "get it right", but to show you understand the ideas and that you're taking a thoughtful approach. The writeup matters.