Jan 06, 2020
I have done a few computer science courses already and some of them were related to embedded systems. This is one of the best so far.\n\nHigher level than a introductory course.\n\nHighly advisable.
Oct 10, 2019
The course was excellent for me, as a beginner. Of course, the learning curve was steep and the assignments challenging, but I learnt a lot. Thanks you Coursera and University of Colorado, Boulder.
By Umar K•
Jul 09, 2019
Covers the fundamentals well. At times a bit fast but one can always go back a few step and rewatch the lessons till thd concept is clear. The assignments are challenging enough.
By Sivasundar K•
Nov 29, 2018
Good Course, I would recommend for anyone who wants to know the basic of Embedded System Software Development (Introductory) obviously in Embedded C. Though most of the concepts are Language-Agnostic but assignments would require you to have some prior knowledge in C and GNU make (or you need to build on the basics you acquired here).
Professionals can go through this course to polish their skills and/or to understand 'how' and 'why' it is done, to add to their knowing of 'what is it'?
I love the away Alex has presented these hand picked material. Visuals are real treat and reinforces the concepts. Thanks to you Alex!
By Karim B•
Jul 08, 2018
Solid introduction to embedded systems, helps you build good C practices and gets you in depth about how compilation happens and memory is managed. The assignments are kinda complex but are still a good way of practicing C especially for beginners. Hopefully there will be a second course that will be dedicated on practicing on real target architectures with KEIL.
Jul 15, 2019
the course is very structured and rich of valuable information regarding software embedded development, as a embedded software engineer I recommend this course to anyone wants to start a career in this field. as said in the lectures these notions could be translated to a major scale for complex projects.
By Bill W•
Feb 25, 2018
I was a little disappointed in this class. It teaches some important concepts, but at a relatively shallow level. I feel like it would have been very difficult for a student to have completed all the assignments without having prior experience (beyond the stated prerequisites) with the subject matter. The class was also very short; only three weeks of lectures, and and extra week "final assignment." This is the first MOOC I've actually pad for, and I feel sort-of gypped. (I guess I'll admit that it was still cheaper and better than the talks you'd get at a technical conference.) (I also guess that this is Coursera's new "style" - multiple 3-4 week mini-classes rather than a full quarter/semester-length class. I don't know if I like the idea. Especially since follow-on classes seem to be getting delayed.)
There was zero to very-little interaction on the discussion forums from instructors, "TAs", or even other students; I normally find the discussions to be particularly valuable with MOOCs. (The most successful have chosen to use Forum Software OTHER than (or in addition to) Coursera's. It look vaguely like the Coursera forums have improved, but it was still weak. Discussions from previous iterations of the class were still present in the forum; consider the lack of "current" discussion, I guess that was good, but I don't think it's desirable in general.
The use of a linux Virtual Machine is an interesting idea, and it worked OK for me (I have previous experience with both linux and VMs), but I felt like it was a stumbling block for a lot of people (of the few forum comments that appeared, "how do I do this without the VM" was number 2 right after "please peer-review my assignment.") I somewhat feel like the VM was pretty "heavy" for the average personal PC. The download was big, and slow.
The quizzes were pretty good (in particular, I like having "many" questions), except for the one I complained about in the forum. (multiple checkboxes per question leading to 2 of 36 mistakes failing with less than 80%) (
The programming assignments worked pretty well, for me. They do cry out for some sort of test framework to test results before the peer review (possibly submit results for grades, possibly just for personal testing.) The best of the MOOCs I've take have had both some form of automated testing AND a peer-review to cover harder-to-automate metrics. With the VM environment, it seems like this should be ALMOST there?
Teaching some use of git was valuable, but it was unclear how this was supposed to be carried forward in subsequent assignments, especially WRT whether there should have been one git repository per assignment, or one for the whole class.
By Marisa E•
Oct 19, 2017
Professor Fosdick is spot on when it comes to taking a highly technical topic such as embedded system software development and making it directly applicable to industry expectations. Embedded system engineers are in HIGH demand across the engineering and aerospace industry and taking this course has given me a competitive edge against my peers graduating from the same Electrical and Computer Engineering program.
I am a graduating senior in Electrical and Computer Engineering and used this course to prepare for interviews with Lockheed Martin's Space Systems as well as NASA's Jet Propulsion Laboratory. Thanks to this course, I was able to answer embedded system targeted questions in the technical interviews and received either immediate offers or was selected for the next round of interviews. The material taught in this course was applicable not only to positions explicitly titled "Embedded Systems Engineer" but also placed me above other candidates pursuing the role of Software Developer and Software Engineer.
I would highly recommend both undergraduates and graduate students take this course before diving into industry as the knowledge gained will give you a remarkably better chance at showing recruiters your intellectual and technical capacity related both to hardware and software.
By Chandra K S•
Jul 02, 2018
Great coursework. It makes you explore C , GNU's tool chain and Memory segments which are all essential for Embedded Systems. I'm very much excited and thrilled to share my experience to others.
By deepankar m•
Dec 27, 2017
This is a great course that covers the basics but the irony is that it is not suited for beginners considering the pace at which the author is delivering the lecture. I think it is best suited for some one who have fair amount of experience dealing with micro-controllers and linux . This course particularly suited me as i had good experience with micro controllers and linux but needed to brush up understanding of compiling linking and dealing with memory. There are some great insights that i have got so far that helped me cover the missing links in my understanding of this subject. but beginners can also try just drop the speed of video and google for all that is described in ultra brief manner. Some prior knowledge of number system is also needed.
By Ayman M A•
Sep 22, 2017
The instructor is good, explains clearly and simply and looks friendly.
The subtitles in Lecture 4 from lesson 1 is not correct at all.
So far so good.
Thanks Coursera !
By Stephen L•
Mar 08, 2018
This is a really unusual course. It has "Embedded Systems" in the title but the closest you will get to an embedded system here is cross-compiling a program to run on the ARM architecture. There is no coverage at all of the peripherals (A/D, timers, counters, etc.) that one would find on a microcontroller.
It is a frustrating class too. The lectures do not go into enough depth for you to be able to complete the assignments without doing external research on your own. I found this to be particularly true on the gnu make section. I knew very little about make and without frequent visits to Google I could not have completed that portion of the class. The quiz for the third week was also very difficult. There were only nine problems but even though each problem had four sections there was no partial credit. Miss any one of those sections and you miss the entire problem. It doesn't tell you which of the sections you missed so I had to retake that test several times before I was able to pass it.
The forum for the course is frustrating too. The instructor responds to so few posts that at first I thought that he never visited the forum at all. One has to dig back in the archives to find any real level of engagement from the instructor. Most posts go unanswered although I did get occasional help from one student and I was able to offer some help to one other person myself. The forum only appears active because old content is not removed.
This course is intended to be part of series and supposedly the next class will actually live up to the "embedded systems" name. You have to purchase a microcontroller development board for that course and according to the description given you actually get to run your code on the microcontroller. I haven't yet decided if I will take that course or not. The decision may be made for me. In the forums it says that the next course was originally supposed to be up on Coursera almost six months ago but it never materialized and I wonder if it ever will.
I wanted to only give a single star in this review but I decided to with two because despite the frustrations I did learn some things about gnu make and get a chance to brush up on my pointers. If you are wanting some embedded software experience I would recommend looking elsewhere or at least waiting for the next course(s) in the series to come out.
By Oscar S T•
Apr 22, 2019
The activities are not sufficiently linked to what was explained in the videos and do not allow the reinforcement or comprehension of what has been exposed.
By Scott B•
Sep 23, 2017
Completely ruined by the final assignment.
This could have been a good course. While the lectures are presented at a whirlwind pace of cramming at least a full semester's worth of material into 4 weeks, and not at all for the feint of heart or those without a good solid background already in C and systems -- they are still really strong lectures. Fosdick's rapid-fire rat-a-tat lecturing style is mind bending to be sure, but the material is presented intelligently and articulately. The lectures slides are well-done and are provided for download (unfortunately in mixed formats: sometimes PowerPoint, sometimes pdf). And while the pace would be completely off-putting in a one-shot classroom environment, it is perhaps fitting for a video format where one can pause and rewind. Captions are a must, but unfortunately not all the videos have the right captions associated with them.
While the lectures are generally solid, and the material presented is practical and challenging, the course suffers from a problem that seems to plague the discipline of electrical engineering almost universally. This problem is the fundamental lack in the instructor's ability to bridge the gap between theory based lectures and pragmatic application of this information.
To be clear, there is a LOT of practical information supplied in the lectures. One only needs to be diligent and to view, review, and review again given the lecture style. However, there are numerous gaps between the information presented and the knowledge required to complete the assignments.
This, as I've stated, is a general plague on the house of EE. I have seen this problem in nearly every EE course I have ever taken. By comparison, the same problem is largely conspicuously absent from the teaching culture of the field of CS (I have done a considerable amount of work in both fields). Even in areas where the two disciplines overlap, the pedagogical culture of computer science almost always trumps that of electrical engineering in the singular aim to TEACH.
That all said, one who has a decent background in C programming and a decent systems-level understanding could quite successfully stumble through this material (with the caveat of planning to spend many more hours than the estimated commitment -- I spend 10+ hours per week on this course and have a considerable background in both systems and software). That is ... until the final assignment where it all falls apart. This assignment is, quite simply put, just plain lazy teaching. The assignment itself is a gross regurgitation of requirements that do little to support the ostensibly stated goals of the assignment itself. It is full of holes and ambiguities and contradictions. It would appear to be the case that the true intent of this assignment must be to weed out those who don't have the willingness to make a gargantuan commitment toward sorting out all the guesswork of what the professor REALLY wants. More likely, it's just a lazy effort, and reflects poorly on CU Boulder, Coursera, and the entirety of engineering education.
Could have easily been a 5-star course with a decent focus on clarity and quality and emphasis on teaching rather than lazily falling into the mode of letting the students with the most dedication just figure it out for themselves. Just such a waste of what appears to be solid potential on Fosdick's part
By William R•
Jul 04, 2017
Do you know what a C pointer is? Great, then you can spend 15 minutes on youtube and skip this course. It will teach you nothing more than basic C syntax, and some tangential embedded software trivia.
Besides the high price tag and woefully small scope, this course is extremely buggy. First, the provided VM does not seem to work; it comes with a virtual drive that the recommended VirtualBox software warns is incomplete, and on launch it is indeed seen as a read-only filesystem full of warnings and errors. Second, the assignments are very vague and often outright incorrect. Once I set up my own environment, I had to correct code that we were specifically instructed not to change on multiple occasions just to get the assignments to build. Further inquiries on the forums confirmed that these corrections were required. And of course, the assignments are provided with incomplete instructions which tend to omit lots of critical information.
I feel like I wasted my time and money with this course, and I would recommend that you not waste yours.
By PRANAV S D•
May 11, 2018
This course is not meeting coursera standards. I would say this is not worth to the price what they are charging. Content-wise too much poor. If they are charging 5000 Rs just for teaching gcc and related stuff then its wrong. These thing are easily available on YouTube. Also the elaboration is not much good, they should see how Prof. Andrew and Prof. xavier Serra are teaching and presenting ML and Audio processing courses.
I had thought of undergoing FPGA course by same university, but now I won't go for it. If possible I would like to have refund of my payment.
By Ashraf K•
Nov 24, 2019
the course needs to be more informative and the explanation for some subjects is very poor
and the peers grading is the worst idea ever
why i should wait 2 weeks to find out my grade reviewed wrongly by another student
or even to know that my submission was faulty
why not an automated grader as any "usual" course would do
it is insane really
so if you would take that course you would need to take another courses and youtube tutorials to gain a deep understanding and be able to solve the assignments easily
By Mohamed H A A•
Oct 15, 2019
This is the worst course i have ever seen in my whole life !
Do not pay before you watch at least first week videos, you will know then what i am talking about !
By Marcos F Z•
Jan 08, 2018
Payment is mandatory to view the tas
By david w•
Jul 08, 2017
As a newly offered course, and first in the series, this course was incredibly well produced, and FORCED me to learn the subjects. The quizzes and homework were difficult, and resistant to gaming, which meant that I took most quizzes more than 3 times. Time commitment was much more than expected, but it left me with skills that I am now proud to have. I feel like a have a great working knowledge of memory, a concept that previously eluded me. Also, extensive use of the gcc tool chain throughout the course will pay off in the future. Kudos to Alex and the team that put this course together. I am very happy with this course!
By Deleted A•
Nov 01, 2017
Very good introduction course to embedded programming. It reviews essential concepts about memory managment and unix c/c++ language programming including development tools. My only complaint is instructor talks very fast and as non-native in English I managed to understand thanks to interactive transcripts. I still rate this course 5 stars because of the excellent content. I learned a lot of useful information and I recommend this course for not only as intro embedded software programming but also as good C/C++ refresher.
By Walid O•
Sep 25, 2017
this course did a great job to make me use GNU tool chain for making programs for microcontrollers , i used make tool which was very useful to know about , this helped me of better understanding of steps any project passes through to produce executable .
and it made me use git and github which was also good to use and learn ,and it has really important and basic information any embedded systems related job will require you know about .
By Edilberto C N•
Jul 06, 2017
Good classes and very good professor (Congratulations Alex!). This course teaches the basis of the embedded systems such as types of memory, build systems, review of basics fundamentals (C programming, git, caracteristics of microcontrollers) and, at the end, a final project which put all this concepts together.
I'm looking forward to the next course.
By Robert M•
Sep 13, 2018
Proud to be a student here!!
I now understand embedded systems software and the relevant environments!!
Thanks to the support and above all to my instructor who has just made me graduate!!
thanks Alex and thankyou Coursera for Giving me confidence in Embedded Systems Software
By Hassam K•
Jul 27, 2019
For a beginner. this course provides extensive knowledge for embedded systems software design. The base concepts are being taught very well in this course. It is just perfect for getting in-depth knowledge of embedded systems software development.
By A. F Ü•
Jan 31, 2019
This course is really perfect!
The theory of embedded systems was handled properly and the assignments are really informative to learn well. GitHub requirement is a plus for developer, you can learn using GitHub besides the embedded systems :)
By Ashraf A•
Nov 21, 2018
Well organized course with advance knowledge for embedded systems programming. Not for beginners or who wants to learn programming. With this course you will learn how to design high quality programming.