A Self-Learning, Modern Computer Science Curriculum