Context: I took this class in the summer of 2023, which is the second semester that this class is offered. This class still has some kinks to iron out, such as issues with Gradescope, issues with varied Python code indentations, version compatibility issues in some homeworks. It is very likely that later semesters will not encounter such issues as the instructors will have already fixed these.
I had minor NLP knowledge before taking this class. This is my last class in the program so I am already very comfortable with coding, various machine learning techniques, working with arrays (linear algebra) using numpy and pytorch and troubleshooting any potential issues with developing environments.
In terms of difficulty and amount of time invested into the homeworks, it was easy for me. Each of the 4 homeworks took less than 4 days total for completion. That time includes some hours spent training models on my laptop CPU and cancelling/restarting the job to walk away due to irl interruptions (since I was stubborn and did not want to use Google's Colab).
The homework difficulty progression is like this: 1 -> 2 -> 4 -> 3. Minimum time to completion: 4 hrs. Maximum time to completion: 4 days.
The lectures in this class are very terse however they do provide the necessary citations/resources for students to dig deeper if they are so inclined. No doubt some reviews will say that this class is thin on materials but I would disagree, since there are excess time left from completing the homeworks, I was able to spend them exploring further into the subject topics based on the provided resources.
The reviews for this class will likely be polar, on the one hand there will be lots of reviews on how thin the materials are or how easy it is, on the other hand there will likely be lots of reviews on the difficulty with Gradescope, version incompatibility issues, pytorch, lack of troubleshooting support etc...
Do keep in mind that this is a graduate level course and there is a base level expectation of being able to troubleshoot and solve problems on your own with minimal hand-holding. Additionally, how much one gets out of the class depends on the level of comfort with the aforementioned subjects. If all the time is spent troubleshooting the shape and rotation of a matrix multiplication problem or on basic python stuffs such as list of lists or list of dicts then there will be less time and brain resources devoted into exploring the actual NLP topics.
Therefore it is my opinion that to get the most out of this class, you have to already be comfortable with basic linear algebra, basic ML techniques, numpy (and therefore its big brother pytorch), scikit-learn, and know-how to set up and troubleshoot your python development environments.