professor
Swapneel Sheth

Jul 2013

I loved this class and I thought it was perfect for the level I was at. I originally was worried that it would be too advanced for me since I didn't take w1004 and I felt inexperienced with programming especially after half a year of not touching java, but when I told Adam Cannon (the 1004 prof) that I'd already gotten a 4 on the AP CS exam, he told me to take w1007 instead which led me here. Swap is a pretty good teacher, and a really great person. The classes were fun and there was just a chill atmosphere there. He programmed things like cheezburger cats and harry potter creatures. I think it was structured pretty well, and it really helped me better understand OOP, especially since my teacher from my AP class in high school was pretty bad at explaining the concepts of inheritance, and words like static/final/public/private. At the same time though, I will also say that sometimes the class went off track or just really slowly (some of the stuff covered in the AP apparently wasn't taught to the 1004 class), so I spent a lot of classes coding for the hw assignments. I didn't have to take many notes... I feel like the textbook is pretty easy to read so it's easy to just look up what you need to know if you forget something. Homework took a lot of time to complete, but I thought all the assignments were pretty fun and the grading is straightforward. I think the best advice I have is to not wait until the last moment for starting your assignments. Instead, start them as early as possible. That way, when you run into problems, you have time to go to TA office hours. My TAs were amazing and super helpful, and I really don't know what I would have done without them. I feel like with all the help offered, there really is no reason to not do well in this class, unless you procrastinate and just don't do the work or hand it in late. I'm not even that great at time management, but I still got an A in this class. There's a lot of opportunities for extra credit and the midterm & final aren't hard as long as you look over the code from class and know your vocab. Basically this class gave the confidence to keep pursuing CS as my major. Yes, there were a lot of all nighters, but I enjoy coding all night (it kind of gives me a coding high? haha) so it was partially by choice. Do the work, and you'll be fine!

May 2013

This review is kind of hard to write because Swap is such a nice guy in person. He is totally willing to chat with students during office hours or whenever you need him, and the class environment is super relaxed. However, I was really disappointed in this class. Here's why. As a disclaimer, I will mention that I took 1004 last semester and did quite well. Consequently, much of the material we covered in 1007 was pointless review for me (inheritance, interfaces, etc.). Worse, Swap is not a good lecturer–his classes wander aimlessly, guided by broad topics and students' questions. It was much more efficient for me to read the textbook (readily available in PDF form) rather than listen to his lectures, and then use Big Java to review older material. His homeworks were a mixed bag. Some were quite helpful: the GUI project was especially instructive. Others were incredibly stupid. One assignment involved crawling the HTML of various Wikipedia pages about the Academy Awards and retrieving data (e.g., who won the 1993 Best Actress award, stuff like that). Is HTML parsing useful? Yes, but this assignment literally took 20+ hours of tedious drudgery, because all of the Academy Awards pages are formatted completely differently from each other. Moreover, it didn't really seem relevant to what we learned in the class; the networking involved is extremely simplistic, no graphics, no interfaces, etc. Another assignment involved making a command-line (textual) version of Othello. Again, extremely tedious. Why not just wait to do the Othello assignment until after we had learned graphics programming? The good news is that the topics are useful and important: graphical user interfaces, networking, interfaces, inheritance, file input/output, etc. The exams were really easy. The average was ~80 for the midterm and final. As a result though, there was presumably almost no curve. I got a B+, which felt a little harsh considering how well I did in the class (81 midterm, 90 final, 92 homework average). I was honestly expecting an A. This course is no longer required for the CS major if you've already taken 1004, and I don't recommend taking both. If you have to take it, go ahead–it's not hard, and some of the things you learn are really helpful, but it's often frustrating.

Jan 2013

Figuring out exactly what was expected from each assignment and project milestone was the main problem. It seemed like the emphasis wasn't on the software engineering process, but on satisfying very vague and irrelevant conditions as well as pleasing your TA overlords (many of which were visibly on a power trip). Having requirements and even definitions change on you after the fact is incredibly frustrating (euphemism: "clarified"). Lectures usually covered painfully obvious ideas. Also... if you're going to illustrate a nifty connection between refactoring source code and factoring a polynomial, at least factor a middle school problem correctly? Swap wrote x^2 - 2x + 1 on the board and factored it as (x-2)*(x+1). Then he looked at it again and changed it to (x+2)*(x+1) ........................ Yep, this guy occupied a chunk of my semester. -_- Consider the following: http://www.youtube.com/watch?v=oKdYRjwc8T0 skip to 1:10 for the good stuff.

Jan 2013

The below reviews would have given a very clear idea about the course and how it was taught ...what is baffling is the fact that the course is a core requirement for MS students when anyone who has worked in the software industry or done an undergraduate in CS would already have done everything that is a part of the course ..The assignments defy all sense of logic ranging from "reading articles " and writing summaries to what seemed to be an experiment on the social behavior of individuals when they are made to test each other's projects..what followed was pretty disappointing and sickening to an extent when teams tried to raise defects in order to gain points...the grading rubric at any point was not concise ..the teaching assistants did try to keep up pace with all the chaos that was going through ...I would not comment if this was still better than what was being taught by the previous but this has to be the most stupid course I have ever had to take as a student

Jan 2013

Disclaimer: I got one of the highest grades in the class. Don't think about that, however. It doesn't matter. I can promise you I objectively didn't do any better or worse than most of the people in the class. However, it stands to be asserted what a horrific failure Swapneel and his TA's were in teaching this class and how much it needs to ring out, loud and true, across every desktop of every student who is even thinking about registering for ASE under him. Be objective for a minute. Look at the other reviews for this class. All of them are negative. Only two people disagreed (perhaps the teacher himself and a TA?). What does that tell you? Ignore your feelings for a minute and let's focus on the facts. Looking at the other reviews and the overwhelming agreement that "Swapneel" and "ASE" should NEVER mix.................what does that tell you? It tells you to fucking drop this class before you make the same mistake I did, you stupid fuck. Why? Read on.... Yes, it's a core class. You've got to take four. However, at least take a class where you will actually learn something. ASE is not that class. You will learn no new tools or technologies to aid you as a programmer. Software engineering as shown in this class is perhaps the most worthless and the lowest common denominator of computer science; if you can even call software engineering a science. I have no respect for anybody who seriously considers themselves computer scientists and decides to study software engineering as a specialization. I can sum up the entire class in two sentences. Ready? "Before you program a piece of software, take the time to plan it out and get an idea of what is needed and wanted. Then, after design and implementation take place, write lots of test cases to make sure everything works smoothly and correctly." That's it. I'm fucking serious. That's fucking Advanced Software Engineering. It makes me shudder to think of what regular "software engineering" is. EVERYTHING - and I mean EVERYTHING - you learn in this class can easily be picked up by landing a job and staying there for a little while. You are ABSOLUTELY wasting your tuition taking this class because - mark my words - you will eventually learn all of this material for free. There is no justification possible to convince me that the several grand I wasted on this class was worth it; there is no fitting label for this class other than "complete and utter rip off". Even if you take this review and the others with a grain of salt, I can promise you the class is still a waste of time because it's a fucking tautology you'll be learning this stuff anyway. Which leads me to Swapneel and his merry men whom are the real reasons why you should avoid taking this class. Yes, even REALER than what I've mentioned above. Swapneel is approachable in class and outside of class. He responds to emails semi-frequently and the TA's were very available as per their office hours. This is all nice and fine but just because you do the bare minimum of what you are supposed to do doesn't and will NEVER make you a good TA and especially not a good teacher. I'll start with Swapneel's waiver policy. Once people effectively saw through him, many people tried to waive this class and nearly all of them were met with rejection. Don't ask me why. I can understand a few people here and there leaving due to the material not interesting them; rejecting a flood of people from waiving the class just to cover your own ass and to heavy-handedly "legitimize" your material is not only suspicious but a move worthy of only the most supreme of dicks. For this alone you have my eternal contempt. Next, the grading. Every assignment and lecture for that matter was excessively vague which is a stunning accomplishment for Swapneel given that just about everything in this class is complete fucking common sense. It was evident from the beginning of the semester that Swapneel had absolutely no idea what he was doing and, for many topics, no idea what the fuck he was talking about. The TA's were even worse with the material with the exception of Jon Bell. Jon Bell knew his stuff, but he is the special breed of asshole TA who likes to answer your questions with condescending questions of his own in order to, if I had to guess, feed his pretentious ego and perhaps make him feel better about excelling in perhaps the most worthless field of computer science. There was nothing about his actions that anybody could have mistaken for productive in a million years. I would pay Jon a visit from time to time asking for clarifications on grading or assignments in general and would be subjected to a barrage of condescension, pretentious remarks, and general smuggery. I eventually quit going to his office hours because I found his behavior so thoroughly revolting, disgusting, and perhaps most importantly, counterproductive. The other reviewers have touched on the other important aspects of the grading; generally the loss of points for unmentioned phenomena in the rubrics and the subjective, smug nature of the points. I won't bother to repeat what has already been said aside from the following: even if you think you've covered every possible angle of your assignment, you haven't. You have to look for the one stupid unmentioned detail that they're going to fuck you on and hammer that shit out otherwise you stand to lose points big time. If they ask for a test case, create multiple test cases. If they want a thorough explanation, give them an assload of words. If they want an example of something, include the example and a counter example. That's the mindset I had to take in order to get the grade I did in this class and I will re-emphasize it: look for the unmentioned details that COULD help you and fucking INCLUDE THEM because otherwise they will screw you out of a shitload of points. I'm getting the word out on this shit. Swapneel, Jon, Kunal M, Kunal G, and Priyank, I want you to read the above thoughts again very carefully. If you don't take these words to heart, you are going to destroy your chances of ever being worth a shit in the CS department again in regards to teaching. Not that the damage hasn't been done already; Swapneel and his TAs should NEVER, EVER be allowed to have the job running this class again. I'm fucking serious. You five are the worst I've ever fucking seen. I had a class at my old school with three teachers; a new teacher would come in after a test was given and none of the teachers communicated with one another in regards to what we had already learned. It was completely disorganized and the averages were abysmal since we were repeatedly tested on things the teacher thought we knew but we hadn't actually covered. All three of them were unapologetic in their grading policies and, when they didn't finish covering the units they were supposed to, told us to figure out the material ourselves and one of them even told the class to accept an solution of his "based on good faith" when he couldn't solve an example problem after two classes. You five were fucking worse than that class. The absence of this class is better than it's presence with you five at the helm, and just about anybody would be better at running this class than any of you ever would. You five are a disgrace to the department and I hope these words come back time and time again to forcibly separate you all from ever having the chance to teach again. Harsh? Swap, you once mentioned your grading policies mirrored the real world. Well, mine don't get any realer than this.

Jan 2013

All other reviews for the course Advanced Software Engineering by Swapneel Sheth have already pointed out how abysmal this course is, which I completely agree with. In one word I would describe this course as 'vague'. Instructing staff was lazy and did not put any effort in making assignments or deciding the grading criteria, which can help students learn something. At times I wondered if I was undertaking a core courses at one of the best computer science departments of the country or participating in a competition called SCORE. I think Swapneel made it mandatory for students to participate in SCORE so that he can improve his own resume and show how many teams instructed by him participated in the competition. This is what happens when you have a PHD students instruct a core course. I don't know how can the SEAS select such an under qualified person to take this course (he is not even a PHD yet!). Most TAs lacked sufficient subject knowledge. Although, Jon has knowledge about subject but he is more occupied with finding ways to screw students grades and feeding his big ego than imparting education. So, think twice before taking a course where Jon is a TA. My advice: Change your track, change your university, drop out of college, do anything but don't take this course. All views in this review are my personal opinion.

Jan 2013

THIS.PROFESSOR.SUCKS. Also proves that all phd's cant teach especially the smart ass ones. I would also like to remind him that just choosing people from his university as TA's wont improve your course especially when that TA is an irritating and stupid person who just grades his friends well. Stop doing favors and improve your grading system. The worst part is that everyone knows this professor and his TA's are shit and yet no one can waive it off because the sadistic professor wants to teach a bucket full of class which clearly are not interested in wasting their money for a course like ASE but for it being a core course.Please change your stream if you have to to avoid this course or else regret for an entire semester. I dont know how this professor is not in here. --> http://vandybubble.com/2011/10-professors-to-avoid-ratemyprofessor/

Jan 2013

This is hands down the most worthless course I have ever taken. After the entire course I didn't feel like I learnt a thing. I have two major complains: 1. The class was ruthlessly boring and pointless. I had worked in the industry for five years earlier and I knew what this class was basically supposed to teach me, but it didn't. You are better off using Wikipedia or Google to learn this shit. And Swapneel was so pigheaded that he devised his own stupid waiver mechanism that almost everyone applied to because they didn't want to take this class and almost everyone was rejected because this smart-ass didn't want to bore just a handful of people and waste their tuition. 2. The TAs were grossly incompetent. One of them was a guy fresh out of undergrad college who didn't know shit about what he was doing but just ended up getting the TA position because he was from the same undergrad university as Swapneel and was helping him with his research. I know through common friends that he cut a lot of slack for his friends that took the same course and this was just unfair but couldn't be pointed out in public since it couldn't be proven.

Jan 2013

Worst person to take a course under. He wont teach you anything meaningful just like his boss Gail Kaiser. He tried to show off people how cool he is and come up with really stupid schemes for grading. Even assignments were as shitty as possible. Assignments were so many. He will just show off his shit masters project that only 3 persons like "He himself", "Gail Kaiser" and "Jonathan Bell". He will speak things in generic terms in class and that was just common sense, no need to waste tuition for that. We tried to get this course waived, but he is an asshole and so is Columbia SEAS core course deciding committee. Every year people complain but nothing happens. Grades were also bad and I guess that's Gail Kaiser and her department descendents policy, never give anyone better grades. Swapneel fits into that category. Even if you are in top 15 students in class, you might not get an A. Stupid policies for grading and stupid grading rubrics that have no sense in them. He will try to justify that this is how it happens in real world, but it doesnt happen that way my friend. you are just an asshole and equally dumb. You could have come up with better grading rubrics, made grading more quantifiable and given better grades after doing all this shit whole semester. Just to add, Jonathan Bell will come as free TA for all his/Gail Kaiser's courses and he is another dumb fuck wrangler. If your style of writing displeases him, he will make sure you get B-, C or B max.

Dec 2012

Feels like learning nothing but how to argue with TAs. Definitely not worth the tuition, and don't waste your money and time on it. The grading is the most ridiculous part - no guildelines on how the answers are graded, and for some assignments even asking questions regarding the assignment description is forbidden. If you argue with TA, you'll probably be rewarded a lower score. Someone accidentally witnessed how the TA graded the assignments - it was in a pretty irresponsible manner. No surprise if you find the TA didn't actually read your assignment, and gave you a random number instead. Swapneel is a good guy and might be a good researcher to work with, but so sad that he just didn't take the teaching job seriously.

Dec 2012

Oh dear. I don't even know where to begin. Consider this review as a warning to all of you misguided souls who are thinking of taking this class under Swapneel. Consider this review a strong and heavy deterrent such that you may maintain and keep your sanity and save yourself the struggle of taking a class with arguably the worst teacher I've ever encountered in my entire life. Sure, Swapneel is a nice guy and he's approachable. I'm sure he's great in the other classes he teaches; I don't doubt the accuracy of his other reviews for a second. However, ABSOLUTELY NONE OF THAT APPLIES TO ASE. Swapneel's ideas for this class go from mind-fuck stupid to borderline insane. Ahem. There are five distinct reasons you don't want to take this class, four of which are a direct result of Swapneel's horrible decisions: 1. This is a class about software engineering, and you will be doing a lot of busy work. You'll be doing a lot of reading. Now you MIGHT think that would make for an easy A but you would be grossly mistaken for reasons I'll get into in just a second. The material in the class is EXTREMELY boring unless you're actually into this shit. You could seriously learn everything in the class by either reading Wikipedia or holding down a programming job for a little while. The material is definitely not something to spend your tuition on because you are almost certainly going to learn it elsewhere. 2. The Midterm. The midterm wasn't exactly difficult (even though the average was in the 60's) but there was a certain stipulation to the grading that didn't make any sense. Each multiple choice question was worth 3 points; missing a question not only cost you the chance at getting those 3 points but you would lose an additional point as well. What's the point? I don't know why Swapneel thought this would be a good idea; it's nonsense like this and the teacher's inability to know unequivocal rock-fuck stupid when the rest of the class sees it that will prove to be his defining hallmark in ASE. 3. The "Implementation" assignment. You spend a good chunk of the class developing a piece of software using the class concepts to guide you along. There is a proprietary repository set up for the class where you can use Git to handle your code and there is also a website called Jira which allows teams to create and document project tasks. The skillful use of both of these tools as well as planning and executing software engineering strategies is crucial to your success and one would think that mastery of these tools and concepts would be critical in the grading of your project. WRONG. The majority of your project grade comes from a subjective analysis by the TAs. In order words, you could program a solid piece of software and demonstrate exemplary skill of all class concepts in getting your work done; however, if the TA's for whatever reason don't like your project, don't think it's cool enough, or you are a bad speaker and don't demonstrate it in a way that would blow their mind then it's going to hurt you. I can understand subjective analysis being a bit player when it comes to grading, but why the fuck do you make it more important than the objective analysis which is far more relevant to the intentions of the class? 4. The third assignment. The assignment was out of 40 points with additional 20 points of extra credit. The average on the assignment itself was a 17; the average on the extra credit was a 4. Yes, that's a four. Given the horrible midterm average and the average of this assignment, I don't think it's a stretch to say that the class is at fault; that's the mark of a shitty teacher. Furthermore, the TA's took points off for things that weren't even mentioned in the assignment document. For example, part of the assignment required White Box testing on a hypothetical feature of a certain project. The assignment stated that all we had to include was our "general procedure" for doing white box testing. The TA who graded me took off points for only writing a "general procedure". What gives? 5. The testing assignment. This one BY FAR is the worst offender and permanently turned me against Swapneel. This is by far the stupidest assignment I've ever done in my life, particularly because of one caveat of the grading. You see, the assignment itself was 200 points with 50 extra credit; 70 points of the 200 dealt with testing other teams' applications. Each team tested two other teams; you could get a maximum of 35 points per team. Before actually performing the testing, each team had to document as many bugs as they could in the aforementioned Jira website used in the class. Documenting a bug meant that it could not be used against you when other teams tested you; however, if a team found a bug that WASN'T documented it not only cost the tested team 2 points but the testing team would gain 2 points. In order to get the full 35 points for the assignment your team had to find 15 undocumented bugs and 10 documented bugs; 1 point per documented and 2 for each undocumented. Your team could not get more than 15 points for documented bugs and 20 for undocumented; even if your team found 40 documented bugs you could only get a maximum of 15 points by virtue of all bugs being documented. Furthermore, each team was only given 30 minutes to test each application. TO RECAP: In order to get a full score on testing a particular team, you had 30 minutes to find at least 25 bugs. Of those 25 bugs, EXACTLY 15 had to be undocumented and 10 had to be undocumented. Is it is easy to see how this is borderline impossible? Congratulations, you have more foresight than Swapneel Sheth. Furthermore, a team could get stuck with an application that had relatively little bugs thus harming their grade due to factors that are impossible to control; when the class was berating him for this possible outcome his only reply was a sheepish "Yes, it could be unfair, but that's why you get two teams to test.". The teacher deliberately knew the assignment could be unfair but went ahead with it anyway: if that isn't a mark of poor judgement then I don't know what is. OH....and if you happened to program a perfect application with ZERO bugs then the two teams testing you would get full credit (as long as the TAs couldn't find any either). The team creating the perfect application would get jack shit for having made such a fine specimen of software. I'm not even mentioning the infighting that occurred during the testing phase; the stipulations of the assignment encouraged teams to screw each other over by "finding" undocumented bugs and I saw several arguments in the testing room between whether or not so-and-so was a bug. Why the fuck would the teacher think this was a good idea? Does this sound like something you want to be spending your time and tuition on? Think about it. Save yourself. Go to SSOL and click that "unregister" button. You'll be glad you did.

May 2012

I was initially terrified to take 1007 because I thought I was going to get Professor Kender, but it turned out Swap was teaching it. He guest lectured for Professor Cannon's 1004 class and I thought he was a cool guy so I signed up for this class. At first it was a bit rough because I hadn't programmed over winter break, but the assignments are completely doable, and he helps us with them by giving us Halo quests which provide a checklist of things one should be doing (they're themed, so the last one was Doctor Who themed!). The TAs are awesome (shoutout to Don!), and Swap is very helpful during his office hours and through email. His lectures are sometimes disorganized, but as the other reviewer said, it's all in the book. And he also has us read cool things like the Law of Leaky Abstractions and things on Lisp. This class solidified my decision to major in Computer Science.

Apr 2012

I'm basically in love with him. I was so happy to find out that I had Swap instead of Kender. Swap is very entertaining to listen to, and a cool dude. Although his lectures were disorganized at time, you can always read the textbook to rehash the lectures and get a firmer understanding. He also gives extensions on most of the homework, which makes him super awesome. The grading for the homework is also super easy. So far I've gotten 100% on all of the homework assignments. Overall, take a class with him. He's awesome.