Your feedback has been sent to our team.
1 Rating
Hours/Week
No grades found
— Students
Sections 1
In a word, this class was disappointing. Coming from the CSO sequence (both 1 and 2) and having taken regular Embedded, I expected this course to be a blend of what I liked most about those previous courses. This was half true, but there is more to this course that should be considered before taking it.
To start, I didn't enjoy lectures, for which attendance is basically required since there are class activities based on the lecture for each day. Prof. Alemzadeh is nice and has very well-structured slides (which are super helpful to go to when working on homeworks/mini projects), but the lecturing style didn't work for me. Lectures mainly consisted of ~60-65 minutes of drinking from a firehose due to the pace at which Prof. Alemzadeh lectured, then an abrupt and jarring transition to a class activity for the last 10-15 minutes. The amount of time actually afforded to completing class activities was almost never enough. The activities are graded on completion, but were not enjoyable.
Mini projects were hit-or-miss. The writeups could be vague and not well-coordinated. For example, the briefs typically described the deliverables in depth, and then recapped them in a summary rubric at the end. However, the rubrics missed a deliverable in at least one instance; since my partner and I went off of the deliverable rubric to keep track, we lost points. Furthermore, the weight given to deliverables meant that dataflow diagrams, which were tedious to make and only tangentially related to the actual project functionality, could count for more than the code. Perhaps I misunderstood the point of the class (the class is essentially a grad-level elective that happens to also be listed for undergraduates), but it felt a bit silly to be able to lose more points on a diagram than on the code which implemented what was in said diagram. They were overall a frustrating affair, and the documentation burden often was conspicuously greater than the actual burden of writing code. Solutions for previous mini projects were released after the late deadline so that you could coordinate working code with the next mini project; in practice, however, the interplay between the late deadline for the mini projects (an extra week) and the timeline for new mini projects meant that solutions were released relatively late in the game for the new mini project, so this was a wash. The final project is a bit better and relatively more open ended at least.
Homeworks were also a bit frustrating, though the answers were easy to find from lecture slides (problems often explicitly pointed you to specific lectures for reference) and they were typically generously graded. Sometimes, though, ambiguity in homework problems was addressed with the directive to write your assumptions along with your answer. Again, perhaps I missed the point of the class (OS as a discipline doesn't have strictly "right" or "wrong" answers), but what amounted to gambling my homework grades on my ability to blindly hit invisible targets wasn't fun. The midterm had similar dynamics, though the midterm was easy to prepare for by studying previous released exams.
The graduate students in the class were required to find, analyze, and present a paper in the real-time operating systems field to demonstrate the state of the art. Maybe this is more a gripe with the layout of a grad-level class than a gripe with this specific course, but these presentations turned the last 3-4 weeks of class into an unending slog of slideshows. Like with standard lectures, the presentations had their own class activities. To save space, I won't recap my issues with the class activity format here, which I stated above.
One of the biggest issues with the course is that the course does not strictly enforce prerequisites for a computer architecture class, an operating systems class, or even a prior embedded systems class (though opening lectures do say you should have taken these classes). You technically can take this class without having taken 3430 or any CSO class, but you definitely should not if you can help it. Not enforcing these prerequisites downright does students a disservice since students unfamiliar with the prior material will have a lot of ground to cover in the first few weeks simply to keep up.
As someone who took CSO2 and 3430 and literally TA'd CSO2 the same semester I took this class, I thought I was in a solid position. I certainly learned a good deal, but I didn't enjoy it. Rather than a fun sequence of activities where we got to tinker with an OS, the class was an unfulfilling grind. You may want to consider taking another elective instead.
Get us started by writing a question!
It looks like you've already submitted a answer for this question! If you'd like, you may edit your original response.
No course sections viewed yet.