Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 86 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a git course? Or looking for more detail on Alex Fosdick's Introduction to Embedded Systems Software and Development Environments? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

Course Description

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!

Instructor Details

Alex Fosdick

Alex Fosdick is a well-loved and favorite instructor of many students in the University of Colorado Boulder's Electrical, Computing, and Energy Engineering Program. CU Boulder's ECEE department is nationally recognized for both teaching and research, and has educated thousands of successful engineers now working around the world. Alex brings to this course nearly a decade of experience working in the industry, writing software for Embedded Systems, Systems-on-a-Chip and Flash Storage technology. When he's not working late into the night planning exciting new embedded systems courses, Alex likes to spend time with his Corgi, D'artagnan and tinker on his own electronics projects.



146 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Umar K on 9-Jul-19

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 on 29-Nov-18

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 on 8-Jul-18

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 on 15-Jul-19

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 pratyusha on 1-May-19

Thank you Alex and Coursera.It is very useful

By Chandra K S on 2-Jul-18

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 on 30-May-19

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 Bill W on 25-Feb-18

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 Vtor R on 16-Feb-19

Not for the uninitiated!Introductory but very hard to follow if you're not familiar with some concepts.

By Mubbasher M on 9-Feb-19

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 on 31-Jan-19

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 on 8-Apr-19

Excellent teacher and and excellent material