The course is comprised of the following:
- 8 Assignments
- 2 - 7 focus and build iteratively on the lawn mower simulation, culminating in the group project to implement a GUI
- 1 and 8 are CATME surveys
- 6 Quizzes
- Participation
Assignments
1: Catme Survey
2: Initial mower design - UML diagrams and Q/A
3: Initial mower implementation - Coding
4: Mower modifications - UML diagrams and Q/A
5: Peer reviews of Assignment 4
6: Software architecture paper
7: Group mower implementation - Coding
8: Catme Survey
As seen above, there is a stark lack of programming in this course. It largely consists of reading dated literature and writing-based assignments. The first coding assignment wasn't until 6 weeks into the course, and the final was due nine weeks later -- that's all the code you'll write in this class.
Quizzes
There are 6 quizzes in the course, and they almost exclusively focus on Larman's Applying UML and Patterns book. This book was originally published in 1997, and it has not aged well. How someone managed to write 600 pages on UML practices and specification without losing their mind is astonishing.
I was able to take each multiple-choice quiz without any preparation or studying, by simply ctrl+f'ing through the PDF while I took the quiz. You have 4 tries for each quiz, but you get no intermediate score or indication if you missed anything or got anything right. Ultimately, I retook each quiz and just switched answers for questions I wasn't able to find verbatim in the PDF.
I would avoid using O'Reilly all together as their search function does not work well. You're better off finding the PDFs. Again, you'll occasionally need to read another paper, but I think each quiz had some non-trivial amount of questions from the Larman book.
Final Project
The group project is just another iteration of the mower simulation with some changed requirements. We all took the Catme survey at the start of the course, but group creation is a complete free-for-all. Either you have some buddies to group with, or you're choosing/joining groups at complete random. This led to a group with disparagingly wide range of skills and motivations. Unless you get really lucky, you'll likely end up doing the final in Java and some sort of GUI on top of that (Swing). You're limited by needing to package the final on a Linux VM, and the common denominator language of having done a lot of pre-work in Java in Assignment 3.
You're technically allowed to do anything within the VM (web-based, etc.), but, again, this depends on your group competencies and motivation.
This was ultimately a really poor experience in sloppily copying and pasting code from individual's assignments.
Udacity
The videos associated with this course are honestly embarrassing. They're extremely outdated, the quizzes are broken and non-engaging, and the production quality is really poor compared to some other courses.
Overall
This course was a huge disappointment. I got an A in the class, and I never did more work than a couple hours the day before an assignment was due. The final project took some coordination, but you're working with other remote students -- your luck will be hit or miss here. In retrospect, I'm truly shocked that this is a Master's-level course. I was expecting a deep-dive into hands-on design patterns and larger architectural implementations in various languages, cloud-based workflows and distributed design. Instead, you'll simply read dated books on UML specifications and horribly dated opinions on what it means to be a Software Architect.
Honestly, skim through one of the required readings and Google each "expert's" name. Most of the people featured in this book can't even submit a proper, clear headshot of themselves, much less provide any meaningful opinion on software architecture -- this is just full of self-stroking egos.
I suggest taking this course as an easy A and double it with something else to get ahead in the program.