Reviews for CMSC435

Information Review
James Purtilo
CMSC435

Expecting an A
Anonymous
12/18/2023
I think a lot of the negative reviews for this class/prof are people who miss the purpose of this class. This is not a traditional course and the prof. makes sure that you are aware of this. This is a course where you learn by doing, you're not going to be quizzed on concepts or theory that you learn in class that you may or may not ever actually care about or use in the real world. Most of what you learn through this class is useful, and almost all of it you learn by actually doing it, and not by reading a powerpoint. With that being said this is a hard course, and you shouldn't take it if you're not motivated to learn about software engineering. You'll spend much of the course working on a semester long group project. You'll get real experience working with actual stakeholders who have an actual need for the project you're working on. You'll learn to (and actually get to) look at a project holistically, from proposing a solution, to building and testing that solution, to actually delivering that solution to the stakeholder. You'll deal with real challenges, setbacks, and learning opportunities just as you would in a real engineering position, except you're doing it in a classroom environment where you can receive mentoring and real time feedback. The amount you get out of this course (and your grade at the end) is directly proportional to the amount of effort you put into the class. The professor takes care to carefully pair people together who have similar work ethics and habits. This generally does mean that the people who take the most leadership, initiative, and care most about the quality of their work are placed into the same group, and those who show less diligence are placed into other groups. You'll go through a series of exercises at the start of the semester to gauge work ethic. Your group does determine a lot about how successful you are in this class, but everything is deliberate. If you come in the first day ready to learn, put full effort into everything and care about the quality of the work you're doing, you'll be put in a group with likeminded individuals and you'll have no issue meeting course expectations. If you don't show as much initiative or struggle to meet expectations, you'll be put into a group with similar people and will likely not have as great a time. Purtilo is also a great resource. He's very honest with your work and is willing to give you feedback. He's super responsive on email and is always willing to help. He is a genuinely good mentor and cares a lot about the success of his students. I think for people interested in software engineering and pursuing a career in it (90% of you reading this probably are) this course is incredibly valuable - only if you're motivated to take it and are willing to put in the hours every week to be successful. If you're not willing to for whatever reason (and that's totally fine), take something else. The one recommendation I would have is to take this course during a light semester, I wouldn't recommend pairing this class with something like 451 or 412.
James Purtilo
CMSC435

Expecting a C+
Anonymous
05/17/2023
at the course summary he complained about students nowdays being too docile; so here's me being very docile and leaving you a 1 star review gg lmao
James Purtilo
CMSC435

Anonymous
05/14/2023
Dr. Purtilo gives fair warning as soon as you sign up for the class- this is not like the other courses you’ve taken. This is a project-based course, and oh boy, you will do a lot of learning by doing, and you will be a better engineer for it. After all, what better way is there to learn software engineering than engineering software? If you are open to this kind of course experience, and you’re engaged and you take the project seriously, I promise you will get the intended value (of which there is a lot to gain) from this course, and you will do well. 

This class is about more than just writing software. Some people do not like or appreciate this aspect of the course. Each project is real, so you’ll be solving an actual problem for some stakeholder. You’ll have to learn how to wade through some ambiguous demands and ask important questions so you can sharpen your project description, and you’ll have to learn how to effectively work with your team.

 You should not expect Dr. Purtilo to stand in front of the class and lecture you about software engineering workflows or whatever, and then give you an exam on them later. That is not what this class is about. Because each project has different technical specs, he does not teach any specific techniques. This might sound scary, but he spends a lot of time assessing resumes and whatnot to make sure he’s not assigning people to projects they know nothing about. Purtilo’s self-proclaimed role in the class is your “spirit guide”. And he is a damn good “spirit guide.” Dr. Purtilo is incredibly kind, and I can tell that he is here teaching this course because he genuinely takes great pride in seeing students come away from his class with real lessons that they can apply in their futures. More than any professor I’ve ever met, he cares about his students and truly wants to set up each and every one of them for success. He is incredibly generous with his time, and never took more than an hour or so to respond to any emails. 

Also, there was only 1 “pop quiz”. It was a syllabus quiz. Anyway, I think it’s classes and mentorship like the 435 experience that earn the UMD CS department such high esteem. Take this class if that is the value you would like from your degree.
James Purtilo
CMSC435

Expecting an A-
Anonymous
12/27/2022
This is not web development with Nelson. This is an upper level class and expected to take a majority of your time throughout the semester. Most lessons are not taught directly, but learned through trial and error. Purtilo teaches through tough love. There is not enough time to teach all of software engineering so the “do the right thing” and “deal with it” mindset are used throughout the course. 
While this is not an easy course, the lessons are valuable and the class has insight into business, technology and life as a whole. Purtilo cares more about your success than you do. It was an uncommon occurrence he’d take more than a few hours to respond to an email at any-point throughout the semester day or night. Assignment requirements are intentionally vague to make you decide the right path to take. This is frustrating as a student being not exactly sure what to do, but helps practice skills in deciding the right path to take. Grades will come naturally if you put in the work, but there is not way to bs this course. This is the only course I’ve had to spend multiple nights working late into the evening to get the project done on time. It seems a lot of reviews on this page are from people not ready for the course. Purtilo does his best on his website and the first week to weed out any students who don’t intend to work hard in the course. If you want to learn software engineering and are ready to put in some effort this class is for you. If not then stay away.
James Purtilo
CMSC435

Expecting an A
Anonymous
12/10/2022
Prof. Purtilo can be an a-hole. He is extremely strict about deadlines, and ruthless in grading students who don't contribute actual effort to the course. To reiterate that - your class performance depends more on effort than any other single factor. However, it's become clear that behind his cold facade he legitimately cares about how well his students learn. He's more immediately and consistently responsive than any other professor I've had in my 5 years at this university. He expects significant effort from you, but will reciprocate with equal effort towards enabling your success. Anyone who puts their 100% into this class will learn immensely (and get a good grade), no matter what level of professional experience they have coming in. He makes sure of that. The class projects are intense, but offer experiential learning that's almost unparalleled at this university. While many hate this class with a burning passion, those I know almost universally agree that they're better engineers for having gone through it. If you want to graduate from this university without working too hard, this most definitely isn't the class for you. That said, I got a CS education at UMD to become a Software Engineer after graduating. Towards that end, no other class has been so applicable. If you want to become a Software Engineer, and want a significant boost to your career, put yourself through the gauntlet. Maybe it's the Stockholm syndrome talking, but I have no regrets about taking this class.
James Purtilo
CMSC435

Anonymous
10/04/2022
Please don't take his class at any cost. First of, for those of you who doesn't know, this class is a capstone class(I didn't know ). This means he doesn't teach you anything. He even tell you that at the beginning of the class. All his task is vague. You don't know what the heck is going on in class. And the project description is as vague as it can get. If the instruction doesn't confuses you, he will find another one that does (I am serious).
James Purtilo
CMSC435

Expecting a W
Anonymous
09/09/2022
if you were doubting any of the other reviews of this class, i highly suggest you to take this class and see for yourself. thankfully i was able to pick up on all the red flags of this professor that others -- especially the one that wrote the essay -- wrote about myself in class BEFORE the drop period. - having class favorites - says the same common sense stuff every lecture - unorganized lecture
Garrett Vanhoy
CMSC435

Expecting an A
Anonymous
08/23/2022
TAKE THIS CLASS WITH VANHOY. This guy is the GOAT. Even though he records his lectures, I actually went to class. The is one of the most useful classes you'll ever take. You learn how to use git, which honestly should be enough to get you to take this class. You also work in teams over a few projects (teams of 2 and then teams of 4). You work in scrums and agile framework. You learn how to write clean code. When people said that there were too many projects, he gave us a week off and allowed us to redo the previous assignment for full credit. The projects themselves are really easy - the main thing is to learn how to write the clean code and use proper software engineering principles. It made my internship so much easier!
Garrett Vanhoy
CMSC435

Anonymous
05/15/2022
The one and only. This was hands down the most useful class that I've taken in this university. I am set to be a software engineer, so if you are in the same boat, this class is *invaluable*. You use Scrum during the group project, which is done in most companies. You also learn about design patterns, refactoring, integrations, Git, and more Agile features. Also, readability counts! I highly recommend that aspiring software engineers take this class. Take it not necessarily for the grade (although you will easily be able to get an A if you do the work), but rather as preparation for the job itself. You will thank yourself later.
Garrett Vanhoy
CMSC435

Expecting an A+
Anonymous
05/13/2022
Vanhoy is just fantastic in every way. One of the best professors in the CS department, no doubt about it. I found his teaching style to be very effective. I think this class probably taught me more than any other class I took at UMD. If you intend to go into software engineering, taking CMSC435 with Vanhoy is a must. The class is a lot of work, but it's graded very fairly. For the main project, your group meets with the professor so the exact expectations are set, and as long as you meet those expectations, you can easily get 100 on all parts of the project. And since you get extra credit for turning things in early, it's actually pretty easy to get over 100. My final grade in this class is around 102. Granted, I had to put in a lot of effort and learn a ton of new stuff to get that grade, but it was all definitely worth it. I really can't recommend this class with this professor enough.
James Purtilo
CMSC435

Expecting a C-
Anonymous
04/25/2022
I went into the class very optimistic. Purtilo seemed like a nice guy. Little did I know the absolute piece of human debris this so-called man actually embodied. I took this class in my final semester. On the first quiz, the SYLLABUS quiz, he falsely accused me of cheating. Rather than talking to me about it, he went straight to the University. This could have completely derailed my reputation and ability to graduate on time. I was found innocent because thankfully the other accused party admitted to cheating off of ME on the quiz. From that point on, it seemed this "teacher" had it out for me. His teaching style is horrific. He is, as the kids say, a donkey-hole. He did not teach a single substantive thing the entire year besides common sense work habits and practices. No technical skills taught whatsoever. He makes everyone keep GRADED journal entries of their class-related activities, but only accepts the journal entries to be given on his own personal webpage (which half the class did not know existed) (he refused to accept my handwritten journal entries). His grading system for quizzes and projects is completely abstract and holds zero standards. For the final project, which is worth about half your grade, he divided us up into teams, gave each team a different project description, and continued to change the project requirements and give unclear answers of his expectations. He would then blame us (my teammates and I) for the confusion that he orchestrated. I pulled two all-nighters in all of college, both for this final project. My teammates and I worked our donkeys off, and we stayed up until the last waking minute to get everything done correctly. At 11pm the night it is due, he set out an email with a new requirement to all of our surprise: a five page report..... added on to the final project. We submitted the project well into the night, and by 9am, after literlly spending all semester and multiple crazy late nights on this, he had it graded. By 9am. Literally hours after submitted. A large scale coding project, a 20 page paper, and a 5 page report. And he gave us all the same grade (even though he said he would grade on team participation as well). He gave us all an F. BY THE WAY, each team final project was just a personal pet project that he wanted to personally use, and each team's project was entirely different from every other team, which is completely unfair in terms of expectation and grade. He clearly has class favorites (if you are a kiss-donkey and teacher's pet, you get an A, otherwise, you get a C). He pretends to care about your issues in class then in private he scolds you for being "stupid" and "dishonest". He said in the beginning of the final project that JIRA is encouraged to be used, only to completely disregard all out JIRA entries once submitted and treated it as if we did zero task tracking because "its on JIRA, that's not the right format". His class is endless and thankless work, zero gain, useless busy work, and a compete mess. He is hypocritical, confusing, condescending, abusive, degrading, and BY FAR the worst "teacher" I have EVER had. Stay the frank away!
James Purtilo
CMSC435

Anonymous
12/28/2021
doesn’t teach, and gives no directions for all his work then proceeds to be very unfair with grading ethics
James Purtilo
CMSC435

Expecting a B-
Anonymous
12/19/2020
DON'T TAKE HIS CLASS. I didn't write comments at all here. But I am writing this 3800 words final and I got to alert you guys. His lecture is unorganized, he tests you things on his slides but he never uploaded his slides and recordings. What you did is a big group project which is lack instruction, all you do is to figure out how to start from zero to 100 by yourself. I paid way more time than in this project than in other classes. After demo, presentation, documentation writing. You also need to write a final (which is like a 4000 words reports to him) reflect your effort on this project.
James Purtilo
CMSC435

Anonymous
11/10/2020
The most unorganized and effortless professor I have ever met. Pop quizzes in the first 5 minute of the class, if you are a bit late then f u. Every project is group project. Does not teach coding/programming/any comp sci technical knowledge AT ALL. The course is him saying "hey I want this cool software and you guys have 8 weeks to make it".
Garrett Vanhoy
CMSC435

Expecting an A+
Anonymous
07/22/2020
Great professor and very reasonable. He even gives extra points for completing projects early. Highly recommend taking his courses.
Atif Memon
CMSC435

Expecting an A
collegeguy752
04/28/2011
A very chill, relaxed professor, Memon has a laisez faire approach to teaching. The project is on you and in order to do well you have to stay motivated, attend class, and work effectively in your team. The exams are really easy and the quizzes are fairly simple if you study. I greatly enjoyed this class, but at times I felt that Memon could be more straightforward and helpful by providing more information about certain topics. He would usually answer any student questions by addressing the entire class and relying on other members of the class, but this may be because he is promoting a do-it-yourself attitude for software engineering. I learned a lot about subversioning systems, teamwork, and the software engineering process that has been very useful in my career. Great professor, I would definitely recommend him.
James Purtilo
CMSC435

random
12/20/2010
One of the most useless classes I ever took at Maryland, and Purtilo was mostly responsible for that. I learned almost nothing from this class, because, duh, he doesn't teach at all. Most of the class time is spent either meeting with your teams for the class project (will get to it in a sec). And even when he lectures, the topics are lamest and most useless. "Change is inevitable," he will say multiple times during the lectures. And that's about all you will get from this class (but didn't you already know that). Now about the class project. One of the most horribly designed software I have ever seen in my life -- Terpnav. The thing (hard to call it a software) has 10 different languages supporting it, is spread over multiple machines with source code that has no documentation, and even Purtilo doesn't know how to install and run the thing. But he persists with it every semester, makes students add features to it, which is not hard in itself, but dealing with this beast of a software is the most annoying part, and yet not worth it at all. And the final is a take-home, which is entirely based on the TerpNav project. So, almost all your grade comes from the class project. He will say in the beginning there will be smaller projects too (we had just one), but essentially what you do with TerpNav is all that accounts for your grade. Take this class with anyone but Purtilo. I have heard some other professors do much better job.