sharp-gazelle-3714
Edited
β’ 3 Credit Hours
Key adjectives used by students β color intensity reflects sentiment
sharp-gazelle-3714
Edited
wild-viper-3283
Edited
mellow-giraffe-0179
Edited
lively-badger-3608
Edited
wise-comet-8996
Edited
true-weasel-1811
Edited
frank-parrot-3060
Edited
cool-wolf-2439
Edited
tidy-beaver-7684
Edited
fearless-otter-6120
Edited
My background: This was my fourth course in the program. I have a BS in CS from a while back.
The course: The graded components are: 39 lecture sections with an associated quiz. These quizzes can be taken an unlimited number of times. Use your resources to figure out how to get 100 on them. Your five lowest quizzes here are dropped. Do these as early as possible so you have time for other things.
Assignment quizzes - there are 7 of these. All allow 2 attempts. Aside from the 1st quiz, which is all about not cheating and such, your lowest of the 6 remaining grades is dropped. If you remember your selections from your first attempt, you should be able to ace this.
Team surveys: you get to grade yourself and your teammates on participation of your team project at the end of each half of your project. You get graded for the completeness of your comment and on how your team scored you.
Ed Discussion - participate in Ed Discussions. There is no rubric, per se. Everyone will ask how it's scored. The answer is... its scored basedon whether you've been reading your Ed Discussions all term. Maybe you ask a few questions. Maybe you answer a few. If you're participating, you'll get the points. You know if you've been doing enough.
All of the above, accounting for 40% of your grade, are relatively easy to get even if you have about no knowledge of computer science.
The remaining 60 percent is the fun.
You have two exams worth 20% of the grade. Your lower of the two exams is dropped. You'll get your exam 1 score frighteningly close to your exam 2 deadline.
For the first exam, you are given two sets of three UML class diagrams created by prior students for a prior assignment. Your goal is to rank three diagrams from each set from best to worst. You must also give a healthy explanation as to your grading. If you pick wrong, but your reasoning is sensible, you can get partial credit. If you really know your UML classes and connectors, this may be painless. You even get the assignment details ahead of time and can practice making your own diagram.
Exam 2 is all about sequence diagrams. Once again, you get the problem ahead of time, though it has slight adjustments in the exam. You have to make your sequences based on actions described in the exam. It is a mad dash to finish. Figure out which online program you can use most efficiently because you will need the time.
The rest are assignments. Assignments 1 and 3 are a team assignments. I have never had a bad time getting on a team as early as possible, so I highly recommend doing that. Assignment 1 is building a UML class and a couple sequences. This is a great time to figure out who is good at what and get everything put together. Assignment 2 is an individual assignment where you grade 3 other teams' diagrams. You will be writing a LOT. It works out to a good 5 pages worth of writing. Use Motepad to compile all your notes then drop in the simple text box. Assignment 3 updates your assignment 1 task and requires you build a full program with a front-end and multiple documents, along with a video explaining the program. This will be a lot of work, especially as you're also working on 3 quiz assignments and taking exam 2, as needed. Be prepared for a meltdown.
All grades seem to take about 4 - 5 weeks to come out. I never got my exam 2 or assignment 3 grades, judt my letter grade. It was a bit of an experience.
I think there's only one set of lectures that is useful (class diagrams). The rest is not used and I wish it was because it's important content. When I say used I mean in assignments, this is the best way to learn.
Attending/watching all office hours and staying on top of Ed is necessary for this course since instructions in the assignments are not clear enough and don't suffice which is really annoying.
The project was interesting and I had a good group. I was able to form my own group. I think this course could use a revamp since Software Architecture and Design is very crucial and the only thing this course covers is UML class diagrams and sequence diagrams which is very basic.
This could be an interesting class but it feels very low effort from the professors / TA. The videos seem like they are 20 years old. There is a high emphasis placed on UML diagrams but they are often applied inappropriately, not explained well, and feel like a waste of time in many cases. The quizzes are trivial. The exams are graded in a very arbitrary way. The bulk of the class is the group project. If you have good team members it won't be bad, but if you do not have good team members it can be a significant commitment. The project could be cool but the assignment has very unclear instructions and the feedback from the TAs is infrequent and unhelpful. The class feels like it is just going through the motions of understanding software architecture but you don't actually learn much. The class needs a reboot from a professor who cares about the course and the subject matter.
The material in this course isn't hard at all, it's frustrating nonetheless because the way this course is ran is a logistical nightmare. Nothing in this class will blindside you if you have prior experience with OOP design principles.
Lectures: The lecture content is very dry for the first half of the class, like many others have said. They get interesting in the latter half, but the course is backloaded so I found myself more concerned with getting all of the assignments and the project done rather than with the lectures. The way the lectures and lecture quizzes are handled are very careless. All of the lectures are split jarringly into 30s-1m snippets of video and the lecture quizzes feel like nonsense as well.
Reading: These aren't too bad. There's 1 assigned reading every other week, on average, and the reading quizzes are easy enough.
Exams: There are two exams with the lowest scoring one being dropped, so your best exam makes up 20% of the final grade. You're given UML diagrams for a written scenario and have to rank them based on design principles. There's a 90 minute time limit, and I found myself and many others on Ed talking about taking all of the allotted time to do it. You need to prepare for this by reading the write-up beforehand and making your own mock diagrams so you don't spend extra time on the exam trying to understand the problem. The grading can be subjective, but about 70% of the points on the exam is in the justification so be ready to defend your choices. In my opinion, exam 2 is harder than exam 1.
Project: This is the bulk of the workload and time spent in this course.
Project Group Logistics: Your group will 100% determine how smooth this project goes. There's a matchmaking thread within the first week or two, PLEASE DO NOT MISS THIS. Do not let yourself get matched randomly and please make sure that you find group members that you can work with, are communicative, and accountable. Also, try to aim for 3-4 members, the lower the better, since there are less hoops to jump through when deciding things. If you end up in random matchmaking, best of luck. The project implementation is very doable solo, but you still end up having to keep everyone involved for people that will contribute nothing.
Project Requirements: You'll be implementing a sort of Pokemon autobattler using Java with a front-end interface. This isn't too bad, but there's no reason they should be this vague with the requirements. There are things never mentioned in the write-up and the only way you can find the answer is to go to OH or ask in Ed when you get blindsided by an obscure functionality. They'll ask you to add modifications, ranging from non-functional (security, authentication, persistence) to functional (more gameplay mechanics resembling the real franchise). If you've taken SDP before, then this is very similar to that Android app. However, you're given less time, more features to implement, and on-top of that, a bunch of diagrams and a 10-minute demonstration video.
All in all, this is a poorly ran course, and it's unfortunate that the same concerns echoed 6 years ago on Reddit and this forum are still not addressed. It seems like no one cares about anything, from the staff to the students themselves. You'll pass, but know that barely anything has changed from the constant complaints that have existed since this course's inception and I'm disappointed that I didn't believe them.
Background: SDE with 4 YOE. Bachelor's in Informatics (Data Science). Expected grade: A
Overall: I believe this course should be pretty easy for people with a CS background or any experience in a software engineering job. Some of the content is good, but there was too much of it and the lecture/exams/assignments feel very disconnected. The pacing of the class is not great, there is much more work in the second half of the course.
Assignments: The main assignment is a group project. You are able to form your own group so if you want an easy time I would recommend joining people who have experience in Java/Spring Boot. I was in a very good group which made the experience a lot better. My group ended up meeting about once a week (during assignments) so be prepared for that commitment. The assignment was pretty interesting but bad pacing. You get so much time for the 1st and 2nd part (which was just class + sequence diagrams), however the 3rd part is very condensed as you need to do both implementation + more diagrams + video. Also you have to hunt for requirements and be on top of edposts and office hours (though I got away with just emailing the TA my questions instead of attending OH). For example this semester they required a specific Pokemon move to be implemented, but this was not called out ANYWHERE in the requirement PDF and you had to look at the test cases to figure it out.
Lectures/Readings: I watched a quarter of it and only did 3 of the readings. There was too much content (especially since I was taking a 2nd course) that didn't tie into any quizzes or exam. They spent too much time on UML/OCL. The 2nd half of lectures were much more interesting to me since it went over design patterns, but I had to skip most of it because the 3rd assignment took most of time.
Exams: Only 1 exam is counted so I only did the first one. This was straightforward - you have to rank class diagrams and explain your reasoning. I watched the lectures and spent 1 hour to review the requirements they released ahead of time. But basically the 2nd half of the course is not tested at all so there's no learning reinforcement here.
I took this class in 2024 spring as the first class in OMSCS. As mentioned by some other review, this class was updated dramatically since 2024 spring. It used to be a super easy class, but it's not the case anymore (from some aspect).
Pros:
- The group project is to do a full-stack website for Pokemon battle. This topic is pretty interesting. You have full flexibility to pick your own frameworks, DB. Pretty good chance to practice every aspect of the full-stack dev.
- Grading is not bad. I got an A eventually (I did spend a lot of time on this course though). Especially the final project phase. I really doubt they donβt have enough time to grade everyone and ended up curved the grade.
- Prof seems to really want students to learn something, so I guess that's part of the reason why they are trying to fully revise this class.
Cons:
- You will be really burned out by the messy and disorganized arrangement of this class. The assignment won't clearly tell you how they will test your code, which is really frustrating. TA will tell you something like 'we will test your code with our hidden Pokemon' without either sharing one of their hidden pokemon, or sharing the interface attributes how his hidden pokemon was set up⦠We will have to guess and wish we guess correctly, which is ridiculous. The released assignment PDF and starter code will be revised many times after publishing, and they will never shout out. You'll have to consistently check back to ensure you are still working on the latest version (I learned this in a hard way to debug for the entire night and eventually figured out that they revised the assignment PDF without publishing an announcement). The exams are super subjective and open ended, so it's really difficult to prepare for it and know exactly what you should write in the answer.
- Many critical info, like changes to assignment, how the exam will be tested and graded, how your code output should look like, will be splattered among tons of Ed post answers and 2-3 hrs office hours/week (and yes, weekly OH is mandatory for this class).
- Ed is really busy for this course as all students are posting actively to clarify what's required for assignment/exam, which made browsing the critical info that TA posted even harder. In our class, there was one student eventually volunteering to summarize all the critical info from Ed and OH for the entire class to track, which is supposed to be done by the TA team (and you can also imagine how messy it was).
- TA will never answer the question straight. He always answers a question with another question, or something like 'I believe/I think'. It turns to be a guess game. Since there are many info that are really not clear for everyone, people tends to ask similar questions from everywhere, and TA will just answer something like 'this was answered in the office hour' without mentioning which date, time frame you should check among 2-3 hrs OH video per week.
- As many other courses, the group project is a big part of this class, and you really want to make sure you have a good team (unfortunately this part is really out of control. My teammates didn't involve that much and I ended up having to do most of the project all by myself). What makes it even worse is, since so many students were disappointed with this course, there ended up have many people drop off the class after midterm, which made the rest of the teammates even more struggling. Prof. and TA did ask the teams to re-hire people as needed, but it's not an easy thing to have a new guy joining your team after midterm and take over the group project code from middle.
Anyways, this class might be getting better after a few semesters assuming they will listen to all the feedback from students and settle down with the assignment/exam/grading and understand what they really want.
What could have been, and should have been, one of the best and most important courses in OMSCS ended up being a huge failure.
This course has so much potential to teach students the most relevant and industry-related concepts and principles of Software Engineering. However, it feels stuck in the 2000s. There's an excessive focus on UML diagramming, with four weeks of lectures dedicated to it. Additionally, the course feels like a graduate writing course due to the overwhelming number of writing assignments. The course structure is chaotic, with too many components running simultaneously, leading to distractions. Assignment quizzes are based on books and papers outside the course lectures, requiring substantial time to properly learn the material. On top of that, there are project assignments, exams, and lecture quizzes, some of which even test your memory in trivial ways (e.g., how many windows are in a building from a lecture, not an actual question but to emphasize the point). The lectures themselves are outdated, extremely long and difficult to navigate. Furthermore, a portion of the grade depends on viewing all posts on Ed/Canvas and attending/watching mandatory weekly hour-long office hours. I genuinely want one of the course TAs to take this course and see if they can manage everything thrown at them, and have a successful learning outcome. Critical project-related clarifications are buried in minute details sprinkled around Ed comments, which is frustrating.
The most disheartening part of this class was never receiving final grades or feedback on the group project that my team and I worked on tirelessly for three weeks, sacrificing our weekends. It feels irresponsible and disrespectful of the students' time. As another review mentioned, it's hard to believe Georgia Tech is allowing such a dysfunctional course to be offered.
As someone with 8 years of experience in the software industry, I was particularly disappointed to see how disconnected this course is from the realities of modern software engineering. If the course creators genuinely care about teaching industry-relevant concepts, I would suggest the following improvements:
Condense the UML portion of the course to one or two weeks: The industry has largely moved on from the traditional use of UML, and the course is not keeping pace with current practices. Instead, the course should focus on core skills like Architecture and Design Patterns, which are essential for any software developer.
Focus on meaningful learning: What does a student gain by answering how many items are in a specific object from a lecture? Please design quiz questions with the student's learning experience in mind. We are here to learn engineering concepts, not to improve our memory.
Prioritize quality over quantity: Be realistic about what can be accomplished in 11-15 weeks. Due to the overwhelming number of tasks, my group and I could not focus on the lectures and actual learning. We were constantly distracted by all the additional tasks, which defeats the purpose of the course. Mandatory office hours and Ed discussions are not conducive to learning when we are already swamped with other course requirements.
Be timely and respectful with feedback: We spent countless days on the final project, and we deserve to know how we performed. Itβs incredibly frustrating that we received our final grades without ever getting any feedback on our group project. Despite all the hard work, we never got to know how we actually did. Additionally, we provided detailed feedback on our teammates for the first half of the project but received nothing in return, which could have helped us improve for the second half. Even more frustratingly, we were asked to provide similarly detailed feedback for the second half, but once again, we got no feedback at all. If feedback isnβt going to be provided, why ask us to invest so much time in it?
Overall, as I mentioned at the beginning, I enrolled in this course to learn industry-relevant concepts. When I first saw the course content in week one, I was excited and felt I had made the right choice. However, as the course progressed, I was devastated by how poorly it was executed. It was a complete waste of a course, money, and time. Totally unacceptable.
Background: This is my 7th course in the program. I currently work as a developer.
This is the worst run course (and least favorite) I've experienced in graduate school (this will be my 3rd graduate degree/program). I'll give an overview and try to be specific to help future students. I have also shared my thoughts directly with the instructors, so hopefully they make some changes.
First of all, I do genuinely think the professor and instructor are interested in students actually learning. I think they mean well, but when it comes time to prepare and do the work, they just don't. The big problems can really be summed up by saying that their ability to communicate expectations just doesn't exist. The assignment documents that are supposed to declare the requirements are unclear and incomplete. They think they can make up for that by making Ed Discussions and office hours required. This means they can throw out random tidbits of information on those platforms and expect those tidbits to become assignment requirements. In theory, this would be confusing and disorganized, but manageable. I found myself (and my group) reading posts over and over and going back through office hours videos over and over to make sure we didn't miss a change to the assignment requirements. The real problem is that the TA's have different opinions about the requirements. So, you have one TA answer one way on Ed Discussions, then another TA answer another way on office hours, then your grading TA never even read or listened to any of that and have a completely different opinion. For example, our very first group assignment, the first comment (and a few others) for point deductions was a direct contradiction to a written response on Ed Discussions. We pointed this out and were awarded points back - we shouldn't have to do that. Bottom line: ask very detailed questions on Ed Discussions so that it's in writing, and don't let them get away with vague answers. Instructors, if you're reading this, please please please make your assignment requirements crystal clear.
They also changed the overall big project assignment from previous semesters, and they were too lazy to fully update the document, so there was a lot of residual, irrelevant, and confusing information.
The "exams" are quite odd and highly subjective. "Which of these things is the best and worst and why?" Your score is very dependent on who grades it and what mood they are in. Some items it seemed like they didn't even read it and just gave a good grade, while other items you'd think "how on earth is that wrong and why THAT?"
The course lectures are super old and boring. And there are a million of them. And you have to watch them and take regurgitation quizzes. No one involved in the course today had anything to do with those videos at any point in their lifetime.
Finally, grading. It's slow. And as previously mentioned, it's inconsistent and seemingly random. We never did get a grade or any feedback from the big final project (ya know, the one we spent over 100 man hours on). That's a let down and completely unacceptable in my opinion. It feels like they just never even graded it and gave out final grades. We never got our "participation" grades or feedback from our group members. I ended up with an A, but I feel gross about it. Of course I worked hard, but I feel like they just handed out grades randomly.
I'm glad it's over. I'm upset I wasted my time. As someone who has been an educator my entire adult life (I'm almost 40), I'm disappointed in Georgia Tech for letting this happen.
Background: B.S. in CS, 3.5 YOE as an SWE, Java 8 OCA Certified and coding in Java for 12 years.
I think this course covers really useful material and has a lot of potential. It just needs more focus. It spends too much time on diagrams and on a large group project and not enough time on the course material of software architecture and design. There are massive readings covered by simple quizzes that you have to text search to answer even if you read them. The schedule is flexible and this is a great course to pair with another during a semester. This course will not be very demanding if you have a Java background, however, about 80% of the work for this course takes place in a multi-phase group project so your group will affect your required level of effort significantly. I suggest trying to form a group your self and making sure everyone meets the pre-reqs of the course of having a background in Java - otherwise, you'll end up doing significantly more work and this course can become demanding.
Pre-reqs: Java, some full stack development experience, version control such as Github, knowledge of object-oriented design, knowledge of recursion, and be ready to learn Java Spring Boot in about a week (or better yet learn it ahead of time!).
Tip: Read / Watch the material on Design Patterns ahead of time (during the first few weeks). That material will be relevant to your exams and projects before it's actually covered.
Exams: Know how to make your class and sequence diagrams. Know some design patterns and software principles you can reference when defending your decisions and you'll do fine.
Projects: There is safety in the herd. Read Ed Discussions religiously. With hundreds of students, good clarifying questions will be asked there that you'll need for the projects. Also, watch all the office hours. They often contain clarifications or even novel information necessary for the project assignments. Part of the main criticism for the course from students was ambiguity in the project assignments. I think an important point is that what they're trying to assess is not your Java project implementation ability - the projects themselves are not that hard if you knew everything you had to do. What they're assessing is your design ability. The main challenge in some of the phases is reverse-engineering and figuring out how you would design your software to complete the project requirements. That's kind of tricky to find the right balance of how much information to give students because the projects themselves are not difficult. Read the entire assignment description carefully, monitor Ed Discussions, go to office hours, and ask clarifying questions. Think about design principles and try to have your software assume as little as possible, be flexible, and keep in mind you will be modifying the same software over the entire course of the semester.
Final Project: You will not have a lot of time and it will be during finals week. Plan out the minimum deliverables you can do that your grader will approve. You are graded on meeting the expectations you propose so set them low and you may always exceed them if you have time. There will be plenty of work to do in those last weeks anyway.
Course Staff: Very responsive and transparent about the course. Some mistakes were made during the semester with project grading or project requirements not being stated clearly, but I thought they handled the situations well. It was very clear to me that their priority was our learning in all the decisions made - and that made for a refreshing and pleasant course experience.
Recommendations for the course: Reduce the material of the course but make it more rigorous and individualized. Have two phases for the major project and reduce diagramming requirements. Get rid of the first minor assignment. Get rid of the reading quizzes - instead do applied learning assignments. Have students produce relevant diagrams, implement different architectures to compare, and do mini assignments around implementing design patterns in Java. Add in individualized mini-assignments having students implementing design patterns from the Gang of Four from the beginning of the course until the end - my biggest regret is not spending more time just implementing design patterns and I feel like the course took time away from me to do that which would have been a more worthwhile use of my time than the group project. Have students do individual Java programming assignments using Github right at the start of the course to enforce course pre-reqs for the benefit of groups later on. It would be good to have some light Spring Boot and full stack mini individual assignments leading up to the final phase to make sure all the group members can contribute to that phase as well.
Overall: I enjoyed the course. I ended with a high 'A'. I put a lot of effort into this course and think I could have certainly put in less time given a different group composition - so I would expect less time for the course but keep in mind you could be putting in 20 hours / week depending on the group you get. Design Patterns by the Gang of Four is the most useful material in this course and I wish we spent more time on that. I'll probably do my own personal project of going through each of those to learn them.
I took this course in Spring 2024. This course is pretty fun to learn if you have good knowledge in Java and good team mates. Its very important to have at least 3 competent team members else the team projects can get overwhelming and exhaustive. Besides, the course was little less organized and sometimes the responses from from TAs could be vague causing more frustration. We had two Exams for design. Exams were good but as we did not have any practice exam we were not sure what to write. Overall, the course is good and has lots to learn. Having a good team will make it more fun and interesting.