Both the professor and the class materials are awesome. This is one of the best courses I have taken in Columbia.
Professor McKeown’s class provides a very comprehensive overview of NLP. Topics include language models, neural networks, word embeddings, sentimental analysis, POS tagging, parsing, semantics, machine translation, summarization.
The class materials and the homework assignments are a very good combination of theory and coding. For theory, we learn parsing algorithms, read word embedding papers, study the math formula behind those frequently used neural networks. For practice, we implement our own model to do stance prediction, sentimental analysis and machine translation. Assignments often go beyond simple code implementation. Instead, most of the assignment focuses on analysis of the models that we built – analysis of model performance, error analysis on frequent mistakes made by the model, comparison of different methods and models. These analysis techniques turn out to be very useful in real-word applications, and really distinguish those who know NLP from those who only know how to use packages.
Professor McKeown is a very nice person who actually cares about every student that she teaches. She is the first professor that I’ve met with in Columbia who does her best to really remember almost everyone’s name in the classroom (it’s a class of approximately 100 students!) She enjoys meeting with students during office hours, providing not only help for class materials/assignments but also invaluable discussions about students’ future career development and general academic interest.
Professor McKeown also knows well about how to teach. She does her best to make the class to interesting to everyone. She is a professor who really does her best to make sure everyone is following and understanding her lectures. She highly values class participation and interaction between professor and students, but speaking up in class is not mandatory for students to get participation points. Fully recognizing that some students may be shy about asking questions or speaking up publicly in class, she uses poll everywhere instead in class to collect students’ feedback and questions to see if anything is unclear to the students.
The course materials are very interesting in itself, and I’m especially amazed by the guest lectures of the course. Professor McKeown invited some of her former students who are now working in the industry to give guest lectures. One lecture that is especially inspiring is on dialog systems, where we get to know how dialog systems such as Siri and Alexa are built. Guest lectures from distinguished industry pioneers give the students another perspective on NLP from the industry.
The professor also makes sure that the class materials are up-to-date. NLP is a fast-changing field with lots of new concepts and techniques invented each year. Besides the basic materials and concepts of NLP, she also provides a brief walkthrough of a few recent breakthroughs in the academia. For example, we read together in class papers on BERT (a really cool and useful tool that’s very famous) and papers on biases (a really cool and influential topic that appeared in recent years). Students interested in going to the academia or industry get to know these state-of-the-art results and techniques, which bridge the gap between school and future career.
Overall, I highly recommend Professor Kathy McKeown’s class to anyone interested in NLP or anyone interested in knowing more about computer science. The class materials are awesome. The professor is extremely amazing. You will learn a huge amount out of this class.