Knowledge of the foundational problems of unsupervised learning, as well as of classical and state of the art methods. Familiarity with some typical applications. Capability of selecting and using unsupervised learning algorithms to solve simple real-world problems, and of properly interpreting their results. Practical experience in solving basic tasks and implementing basic algorithms.