Return to Aaron Baranoff’s Home Page

University of California Courses

Device Software Engineering and Embedded Systems Engineering

In addition to my regular job responsibilities, I also have been teaching a University of California Irvine as an extension instructor in their Embedded Systems Engineer Certification and Device Software Engineering Certificate programs. I developed and am teaching four regular courses “C for Embedded Systems”, “Writing Portable Device Drivers”, “Embedded Linux Driver Primer”, “Integrated Embedded Software Successfully” and “FPGA Design with Hardware Description Languages”. I have taught most my classes on campus, and all of them on online as well as on site at several area companies through UCI. I taught and developed all of my classes have been well received by the students and the university and I look forward to the continuing challenge. I am working with the university to develop more classes.

My students in their own words.

“I have learned a lot in your class. You really put your heart in soul in creating great instructional material."

            -- Marc Block (after C for Embedded Systems online)

“This has been the best learning experience I have ever had, bar none! I could pause the lecture at any time, look over the example and revisit hazy areas in the code so I was prepared for the explanation!”

“I have done Embedded System programming for years and currently have several medical products on the market, but I have not done many in C because of many of the pitfalls that Aaron has identified. I feel I can confidently commit to using C in my new designs because I had the opportunity to thoroughly understand the constructs that were not clear before.”

“The manner in which the material was presented was the most efficient approach to understanding I have ever had and I have taken a multitude of courses in order to get to my Masters degree and beyond. I am genuinely pleased!“

-- Donald Kannenberg  (after C for Embedded Systems online)

“Sometimes I refer back to the class materials and discussions because "real world" tasks help me understand the concepts differently.  So thanks again for everything.”

"I researched several continuing education programs at state universities for an EECS certificate program.  I chose UC Irvine Extension because of its robust curriculum, course depth and real-world applicability, and affordability.  The instructors are well-versed in their field, the student website is very usable, and the staff is committed to ensuring a positive experience. I found prospective employers looked favorably on my enrollment at an accredited university.  And I'm certain my coursework was a factor in bringing me a great new job as an embedded software engineer."

-- Lisa C

“Aaron has come on-site at our company to teach several Embedded Systems Programming classes. I have been a student in most of them. Aaron has a very practical get the job done approach. It's obvious that he not only teaches the material but he uses it in his every day work life. His advice and methods are easily applied immediately in my own work environment. If you want hands on advice and training that works then I would recommend that you choose Aaron.” 

-- Michael Klett (Western Digital - took 4 classes with me and is now is teaching at UCI)

“I want to express my appreciation for the very informative and well thought out class that you presented to us this past quarter. I now look forward towards your next class, whenever it will be. I have also decided to join the certificate program at UCI and go for 15 units. Even though I have been an embedded firmware engineer for 30 years, it is always in everyone’s best interest for me to continue to learn the latest techniques in an embedded environment.”

-- Allen Maynard (Western Digital)

“Thank you again for a wonderful class with great challenges for those full time working people like me!”

                        -- William Le

“I wanted to tell you that I really did enjoy this class.  This class was more interactive than the others I had taken in the past and I appreciated the extra insight into many of the topics you presented.”

-- David Chang (after taking Writing Portable Device Drivers for Embedded Systems online)

“Yes, I really liked the hands on component of the class.  Your teaching style is great, and I really like how you bring in your industry experience to the class.  Thanks for another great class!”

                        -- PL (took 4 classes with me)

"An excellent introduction to Embedded Systems Programming that cuts right to the heart of the matter!" 

-- David Olsen (Altera)

"Many thanks for the wonderful courses. Both courses were big help to me. The "C for embedded devices" course complimented my programming knowledge with a practical approach to low-level software design. "Portable Device Driver" course provided lots of useful insights on embedded software architectures and design tradeoffs. Also I was able to solidify the class material with excellent hands-on examples and projects."

-- Cem Tozeren

“A great class to quickly get up to speed on the basics of embedded systems development.”

-- Chris Muller

“I've attended Aaron's embedded courses at UCI Extension certificate program for Embedded Systems Engineering. Aaron is a dedicated instructor who commits himself to share his vast experience and personally commits himself in teaching you what it takes to be a professional embedded systems engineer. Even with his 110% professional workload, he still makes time to respond to questions, long after the course finished.”

-- Jef Mangelschots

“Aaron provided invaluable knowledge coming from work experience hard to learn in school. Even after finishing all the courses he is willing to keep in touch and help students out.”

-- Jun Park

 "I learned a lot from your lectures, specially the minor details that can so easily be overlooked. Thanks for offering such a valuable course."

                        -- Abhishek Dhanda

“Aaron is a great instructor. I just wrapped up my first UCI extension course for embedded systems development. The course itself has tremendous value but at the core of that value is Aaron Baranoff he provides an insight that mixes the academic lessons with real life examples. The result is a more complete picture and a better understanding of the concepts. Aaron's attention to detail and his thorough explanations of the concepts are invaluable. Next to that his commitment to his students and the help he provides is a credit to his professionalism as an instructor.”

-- Ryan Hobbs (after C for Embedded Systems)

 “I truly have enjoyed taking these past few courses.”

"This has been a great course and I have learned quite a bit regarding the details of kernel driver programming.  I really enjoyed the course and I am planning on attending the Portable Device Driver class in Fall"

"I have a new found respect for embedded systems engineers it is by far is much more complicated and yet 1000 times more fun environment.  I am looking forward to continuing to learn and develop these skills."

“I really enjoyed the course and I am planning on attending the Portable Device Driver” (referring to Writing Portable Device Drivers for Embedded Systems)

-- Ryan Hobbs (after Embedded Linux Drivers)

"Thanks for teaching a wonderful class, I hope we will be able to take more courses with you in the coming months."

                        -- Salma Begum

"You have given me a lot to chew on and your class has been a real blessing.  I've been sharing what I've learned with our other developers and it is has been very eye opening. Thanks for everything!"

            -- Michael Byrd

“As always, I enjoyed this class and feel like I learnt a lot.”

            -- Ajay Nair

“Atheros Communications has offered me a position of Embedded Software Engineer in their Mobile Business Unit. I am really excited at the prospect of writing device drivers for their 802.11n chip. Your "Writing Portable Device Drivers" course (Fall 2009) helped me immensely during the interviews. I wanted to thank you sharing your knowledge on embedded systems.”

-- Chakrapani

"Aaron, I want to take this opportunity to thank you for an excellent class. I learned a lot and had fun once I got rolling. I liked the looser structure of this class, giving us the help we need but ultimately letting us find our own way. I hope there will be an opportunity to take another class with you in the future."


-- William Aperance  (after FPGA Design with Hardware Description Languages online)


“It was a great experience. Alarm clock project was just a beginning. I will keep working on this FPGA board and keep you posted as I make progress. Thanks for all the help and guidance.”


-- Adil (after FPGA Design with Hardware Description Languages online)


“Thanks again for a great class!”


-- Van  (after FPGA Design with Hardware Description Languages online)


“I really enjoyed this class. I believe we covered a lot of useful topics, and I am especially grateful Aaron got us up and running with the SOPC stuff. Giving us exposure to much of the tool chain makes me more confident I could get some useful work done in this area. Thanks a lot Aaron.”


-- Ryan Macias (after FPGA Design with Hardware Description Languages online)


“Thanks for the great instruction.  The freedom that you gave us with the project allowed me to dive head first into SOPC, and learn how powerful it can be.”


-- Chet (after FPGA Design with Hardware Description Languages online)


“I enjoyed attending this class. I really appreciate the practical approach given to FPGAs.”


-- Sudha Chellappan (after FPGA Design with Hardware Description Languages online)


“This project overall was fun and I learned a lot doing it.”


-- Dennis Chang  (after FPGA Design with Hardware Description Languages online)


“Thanks for providing this project as a learning tool. As you mentioned at some point it was certainly an evolutionary learning experience.”


--  Paul Kolonay  (after Writing Portable Device Drivers for Embedded Systems online)