NLP programming Assignment 1: Hidden Markov Models