I entered this course with no background in CV domain and no experience with NumPy or OpenCV. I do have quite a lot of professional programming experience, but generally not in Python which I mostly studied during OMSCS. I've learned a lot of new concepts in image processing and related algorithms and I'm happy I took this course. This was my 4th class in OMSCS.
I liked the assignments and projects and generally enjoyed working on those. They exercised some of the material or extended on top of it, like the midterm project, were interesting to accomplish (the final project had some reservations, which I will cover). I've improved my NumPy experience substantially (well, it was almost zero beforehand). The course also carried some artistic properties related to photography and result manipulations, which I liked, including working on our own images or videos.
Judging the course difficulty by how hard it was to get an A - for me it was very intensive in terms of both time and mental effort commitment and also hard in math background level. The math is mostly skimmed during the course material presentation (as it is for many others in OMSCS), and for some papers to reproduce it was just there to be understood (or skimmed), as it was mentioned previously, but for proper understanding I did feel I had a shallow background on more than one occasion (including intuition behind some more advanced linear algebra and calculus concepts including Poisson and Laplace equations).
If someone wants numbers, my A was not a comfortable one - I had 89.99 average, due to low hits in the second quiz and the final exam, before getting the full credit on the final project and portfolio, which pulled it up to 91+ (I later learned that 89.5 was curved up as an A - that's not guaranteed for future, I believe). My poor performance on the exam (apart from obviously being my own fault), which basically matched the class average (around 76), was partly due to being exhausted following the the final project completion, and also not being able to fully dedicate myself to get to the bottom of some theoretical aspects during the course, due to the ongoing conveyor belt of assignments, which consumed all of the available time. I had to invest a lot of time in studying numpy during the assignments, to do things well, which was a great outcome for me, but overall it also took its time toll. At the end, I think the grade I got, numerically, was not less than what I deserved.
I wouldn't like to repeat a lot of what has already been said for our term - I may not agree with everything in the scathing assessments in some of the reviews, but as a reference I would side with the review which was posted two reviews back (the one that starts with "This was my 4th class in the program"). I'll give some personal observations.
Teaching - indeed zero prof. involvement, apart from an elaborate set of recorded videos, which, as mentioned, did not go into any depth of theoretical details, but did cover a lot of material with sometimes useful visualizations. A lot of effort was invested by prof. Essa into those lectures, but apart from that - no inspiration, no office hours, not a single email on the course progress. Everything was run by the TA-s. I found the TA staff as solid (I'll touch on some grading thoughts further below). Some of the TA-s posted useful CV and numpy related extras, some were also very much involved on the Piazza and slack. It felt that some TA-s were interested in students' success. Bob Kerner and some others deserve the praise for that. The Head TA? She was ok, with occasional helpful answers and support (all polite), and likely also overloaded, but it didn't feel like we had an active head instructor in the course.
The TA-s (those few who were highly visible, but most likely others as well) invested a lot of their time into the course. My feeling was that they were overworked purely by the magnitude of the material to grade, which contributed to more limited and less efficient instructional support than what could have been achieved with more balanced assignment load. Such overload could be the reason for occasional avoidable slip-ups, like throwing "okey-dokey, I'll make sure not to answer your questions" to someone who struggled with Fourier Transforms and politely asked if some other TA with less related background could help in approaching the knowledge gap (maybe it was sarcasm as the question was posted anonymously - still out of place), or, suggesting those who expect "super individual" treatment to seek "more expensive" options than OMSCS (that was in one of the discussion threads where students expressed opinions about the midterm grading philosophy missing some marks). There was an occasional feeling that because the TA-s were overworked (although there were 11 of them), they were sometimes annoyed. They also mentioned more than once the point (most likely valid) about this course term having a lot of program newcomers who were accepted based on reduced acceptance quality criteria (which by itself is obviously unhealthy), which might have contributed to the noise they were getting - don't know. But again, while probably not hitting the high bar of all-round instructional professionalism set by, say, HPCA staff (Nolan et al.), all in all the TA-s were solid and generally helpful.
The midterm project grading indeed turned out to be a hot point to some - I personally think the grading missed some marks in how it was articulated on picky details. For instance,
losing 4 out of 10 points on a full-page algorithm section in the report because of something was mentioned not significantly "enough" ("only" in the pseudo-code and then in the ambiguities section which was graded separately and by a different person, apparently), or exact expectation on how one would describe visually identical results with imprecise references to compare with. All that replaced some of high-level evaluation on how the student got to the bottom of the aspects in relation to the work to be reproduced, which was the stated main objective. Some people hit the expectations apparently differently than others, especially, as it was noted, the report had a strict page number limit. We can only hope some points in related follow-up discussions would lead to some thoughts from the instruction staff.
Discussion wise, for the midterm, I found that a lot was tolerated on Piazza and Slack (so much noise that I barely looked there while working on the project), couldn't be further from "radio silence" as was suggested at the beginning, so technically I don't think it was a substantially difficult task for someone with programming experience, in case they were lost in some details of the reference papers.
The final project had issues, I would say, in educational outcome. In many cases, people struggled with the math theory in the papers they had to reproduce, and there was zero instructional input, by definition of the assignment. Some corners I cut were due to not getting fully up to speed with the math, which I would consider as not the best educational result. I knew I had to write an extensive report (this time with no description stones left unturned), and I knew (following the midterm) that the sections would be graded individually, thus, I had "as described in section X" being present frequently. Also, the grading was less picky on small details. So, full credit it was. Could I learn more in CP concepts with more proactive instruction for that research reproduction work?
Surely. Did I feel I'd done a much more comprehensively understood work on the midterm project (where I lost almost a full letter grade of points) than on the final? Yes again. Was it related to the fact that the final project was required to be graded faster by the TA-s as it was at the very end? Most likely yes again.
BTW, for the final project I worked on drag-and-drop which I found a very friendly paper to work on, learned quite a bit even with cutting some corners, got nice results, and even enjoyed it (still, was exhausted at the end as it was all constant load for me). It was also one of the "module 8" required papers, as part of the exam material as well.
All in all, to reiterate, I liked the course. With all the reports grind, I do think I benefited from experience of working on them. Still, the course could definitely benefit from some better balance of the load
to improve the educational experience. The atmosphere was generally nice during the course, not much of patronizing showing-off or telling this was a master degree etc., mostly professional feeling among
the TA-s and students. Good Luck!