Computer Science · Columbia University
I'd consider this a pretty heavy workload but not unmanageable at all. There were 5 HW projects total. Each one is part theory and part coding (the coding takes longer). A midterm and a final (Part 1: multiple choice, Part 2: vocab, Part 3: Find errors in code, Part 4: open ended).
Workload was average for a core class, but a lot of that effort and time went into seeking out the gotchas that would screw us over in the grading process.
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 hav…
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.
PSet roughly every 2 weeks (theory and programming parts), but Swap gives extensions on literally all of them (40%). Easy midterm (30%) and final (30%).
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 inter…
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
A lot of vocabulary and writing about common sense concepts. Fun! You also have a semester-long programming project that is graded primarily on l33tness as opposed to actual software engineering concepts.
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 anybod…