Chevron Left
Back to Introduction to Embedded Systems Software and Development Environments

Learner Reviews & Feedback for Introduction to Embedded Systems Software and Development Environments by University of Colorado Boulder

4.6
245 ratings
75 reviews

About the Course

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine. The course concludes with a project where you will create your own build system and firmware that can manipulate memory. The second course in this 2 course series , Embedded Software and Hardware Architecture, will use hardware tools to program and debug microcontrollers with bare-metal firmware. Using a Texas Instruments MSP432 Development Kit, you will configure a variety of peripherals, write numerous programs, and see your work execute on your own embedded platform!...

Top reviews

SC

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.

RV

May 31, 2019

Excellent course. Refreshed all my concepts of Embedded System programming after a long time. Very good introductory course for Campus freshmen who needs to start working on System SW Development.

Filter by:

1 - 25 of 74 Reviews for Introduction to Embedded Systems Software and Development Environments

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.

By xanafahd

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%) (

https://www.coursera.org/learn/introduction-embedded-systems/discussions/all/threads/KVdKlQb5Eeih6goM-HnObA )

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 pratyusha

May 01, 2019

Thank you Alex and Coursera.It is very useful

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 Tamas C

May 30, 2019

Listening to the lectures and reading the material is not enough to get more than 20-40% of the max score in some of the tests. The reviewers can give lower scores even if the assignment has been done correctly, just because why not, Coursera couldn't care less. References/paths are often out-of-date. Neither the Android app, nor the web interface displays the correct answers.

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 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 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 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 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 Marcos F Z

Jan 08, 2018

Payment is mandatory to view the tas

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 Mubbasher M

Feb 09, 2019

A great course and you will learn a lot. A great fair amount of time and effort by the instructor and team in putting up these lectures.

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 David G

Apr 08, 2019

Excellent teacher and and excellent material

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 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.

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.

Cheers!

By Soham J

Jul 06, 2017

Good course ! Lot of information shared. It has the quality like a good university course has.

By Charles D C

Mar 19, 2018

Good course with useful materials. Would really like to see the rest of the specialization materialize.

By Ikechukwu A

Dec 12, 2017

An excellent introduction to embedded systems with a lot of rigor. I will recommend it to anyone who is serious about learning about embedded systems