Neil Spring

This professor has taught: CMSC216, CMSC216H, CMSC389A, CMSC389L, CMSC389Q, CMSC396H, CMSC412, CMSC417, CMSC798
Information Review
Neil Spring
CMSC216H

Expecting an A
Anonymous
06/03/2019
Positive: He knows his stuff, and if you pay attention you’ll learn a lot. The TAs were really good at responding to students and clearing things up. He doesn’t take himself too seriously, and he’s a generally nice guy. There was a pretty good curve at the end of the semester. Negative: He isn’t very prepared and he’s bad at responding to student questions. A lot of material on the exams is stuff he barely mentions in class, if at all. He is terrible with communication, and he had the wrong due date listed for almost every project. Project specifications are unclear. Overall: Class: 5/10 Teaching: 4/10 Communication: 3/10 Exams: 3/10 TAs: 8/10 Learning: 8/10 Curve: Almost a full letter grade Average response time on Piazza: 10 minutes Neil’s motto: If it’s stupid and it works it’s not stupid.
Neil Spring
CMSC216H

Expecting an A-
Anonymous
05/12/2019
He is a nice guy, and when I was confused over something dumb he took some time to help me get things right. Class seemed to be distracting. We were in the new building (IRB) in the room with several projectors on each side and it was easy to get distracted or tune out. Some of the code examples were a little bit wonky. I tried to run some in the earlier weeks and it was clear that they were made on his downright strange mac setup (who aliases "vi" to emacs??) If you are good at programming then you will probably find this class easier than I did. I suffered through the assembly project, the shell project, and the optimization project. Advice for future students: Make sure to check the submit server (mainly snow.cs.umd.edu) and gitlab test result output to make sure you are passing the tests. I lost 2.5 percent of my grade (the TOTAL grade) because the gitlab test aborted despite displaying a checkmark.
Neil Spring
CMSC216H

Anonymous
05/17/2018
Really nice person, but fails to have an organized teaching strategy. I was often lost in his class, and many of my peers felt the same but he is really great if you have a ton of questions. He knows so much about C and has so many ideas about how to approach a problem it is really cool.
Neil Spring
CMSC216

Expecting a C
Anonymous
11/21/2013
I don't know about others. But I would definitely not recommend him to my friends. He teaches really fast and he just seems to be too smart to explain much things. May 216 is a very hard class but honestly I don't think Neil Spring did a good job lecturing. I got both A's in CMSC131 and CMSC132; but I found following Neil Spring in lecture very hard. I might do better in other professor's class. Reading books at home or going to TA's are a lot more helpful than sitting in his lecture and feeling awful for not following. The worst part is, I don't even know what is it that I don't understand. Challenge yourself if you think you are a pretty smart guy and have experience with C and linux before. Good luck!
Neil Spring
CMSC412

Expecting an A+
Anonymous
05/12/2013
Neil Spring is a pretty legit instructor. He clearly knows the material and the labs are actually quite helpful. The reason I'm giving him a 4/5 is because I strongly believe that the content of the class can really improve. We spent too much time learning synchronization primitives, and not a lot of time learning cool things like log-structured filesystems/networked filesystems, or the inner details of how a context switch actually takes place (something that I believe to be extremely important, yet this detail never really gets covered).
Neil Spring
CMSC216

Expecting an A+
Anonymous
01/01/2013
Neil is the best teacher I've had at UMD. I'll preface the rest of this by saying that I'm a pretty competent programmer, and pick up CS-related information quite quickly. For students like myself, Neil is the ideal professor. He really knows his stuff, and likes to do a lot of his teaching by working through code examples (he doesn't like the slideshows). For those that aren't as familiar with the course content, I can see Neil getting a bit confusing. His way of jumping around on the terminal and in vi might be a bit to take in at first, but I think it gets easier as the semester goes on.
Neil Spring
CMSC216

Expecting an A-
zaqu413
12/22/2012
Lecture: I honestly don't know how we are supposed to learn from a compsci lecture. Instead of paying attention during class I would just go through Dr. Spring's lecture file and if I was going at the same pace as him I could ask questions. Otherwise I would just figure things out by myself. It was nice that he allowed laptops during lecture. If you want to keep up with Spring during lecture you either have to be a genius, already know C really well, or study the lecture slides the night before (Note: Spring doesn't use lecture slides, but we had access to Nelson's lecture slides.) Discussion: Was somewhat useful I guess. We had about five quizzes and two unannounced graded lab projects. The quizzes and lab projects were fairly easy. If we didn't have a project or quiz the TA would go over something useful for the current project. Projects: Range of difficulty on the projects. We had six projects and the most difficult one was probably the Shell project (#5 for my class). I was lazy about testing and would fail a couple of secret tests on the projects. The secret tests are much more in depth than they were in CMSC132. Assembly: This class is on C and Assembly. I thought Assembly was fun and not that hard. If you are one of those people that rely on compilation and debugging to see if your code works you are going to have a hard time with assembly. My advice is just to go slow and keep very careful track of the registers. Debugging in Assembly is very hard, so your goal is to not have to debug. For our assembly project I wrote 2/3 files perfectly on the first try because I was VERY careful and coded very slowly. Tests: The first exam and the final were very hard multiple-multiple choice questions (like circle all correct answers, not just circle one letter). I think they made the 2nd and 3rd exam a little easier to account for the fact that the average on the first exam was like a 60%. They liked to make you code parts of the project on the exams to make sure you knew what you were doing on the project and that you weren't just guessing on the project. Last Remarks: I didn't treat this class with enough respect, which is why I got an A-. I didn't really study for the first exam and got a 63%. Studying before lecture (even just for 20 minutes) would have been very helpful.
Neil Spring

Expecting an A+
oldmanjess
04/20/2011
This was a new course, Ruby on Rails. He does a good job, but class moves quickly. It seemed like most students got lost. I ended up doing most of my learning by working on the project, then asking Dr Spring how to do something. The tests and homeworks can be confusing, and he doesn't post the correct answers for tests, so you may never know what you got wrong. Overall, it's a good course that will give you a huge advantage if you have to do web development in another class.
Neil Spring
CMSC412

Expecting a BC
Anonymous
11/09/2008
Now, Neil is a great guy and a somewhat competent teacher. His teaching style takes getting used to; he basically walks into class everyday, opens up VI and just types notes, which you are expected to copy down and know. If you take notes on paper, learn to do it by computer, or you will get crazy pissed when he hops all over the place modifying what he wrote. My personal suggestion is Microsoft OneNote. Of course, he posts the notes file online, so you don't really need to take notes, but I would advise you do so, particularly if you're not that familiar with the subject. He involves the class by basically asking us questions and writing the answers in his VI file. He writes it very colloquially which is nice, but sometimes he uses really obnoxiously large, outmoded words (draconian, pathological etc.). The way the lectures go will be entirely up to you and your classmates. In my case, my classmates were total geniuses. We have 1 guy who got a diploma from MIT, half the robotics team, and a bunch of other people who basically know everything there is to know about linux. These people will be the bane of your existence if you are not one of them. They will side track the class, ask really convoluted and (in my opinion) irrelevant questions, and basically confuse the HELL out of you. It is basically your job to slow these people down and make sure they don't get too many opportunities to derail the class. Neil also gives quizzes if someone's cell phone goes off in the class. So, study your notes every night basically. He also has a huge vocab sheet he posts at the beginning of the semester, with words that will be covered on his multiple choice exams. Now some of you may have seen me say multiple choice, and grinned happily; set aside that notion, Neil's exams are pretty damn bad. His questions are more tricks than tests of knowledge, there are several that can be interpreted to mean different things, and it's really anyone's guess as to what they truly ask. Other questions can sometimes reword the answers in such a way that even if you know what the answer is, finding them among the choices is tricky. The projects in this course are pure hell for the most part with 1 or 2 exceptions. This isn't really Neil's fault, he delegated it all to his TA, who mismanaged time a fair amount (routinely showed lecture slides for projects 3 weeks before they were ASSIGNED). Overall, it's not easy to review this course, as I don't know if it's me, the TA, the professor, or the course itself that's the problem, but I do put in 40 ish hours a week for out of class work, and I have a C-. Neil is a fair guy though, so I am not too worried about failing/passing. If you want an A in this class, and haven't been weaned on linux, then you will need to start reading the book weeks before the semester begins. Make sure you have flashcards ready from a previous semester on DAY ONE of the class. Look over previous semester's projects. This class is more demanding than any other I have ever taken, and it's in no small part because of the disparity in intelligence of the individuals who take it. It's going to be a tough, long, hard semester, but keep your head up, and prepare well, and you will get the grade you earn. If your time management sucks, however, prepare for a real shock to the system; this is one of the hardest courses offered at UMD, and you will find out why.