CS 145/145L - Embedded Software & Associated Lab

Prof. Tony Givargis

Embedded systems include almost any computing system other than traditional computers. Examples include cell phones, set-top boxes, medical devices, alarm systems, automotive systems, portable music players, etc. Embedded systems is one of the fastest growing areas in computing, having high impact on people's lives, and with tremendous potential for innovative new products. If you think about it, many of the most exciting computing systems today are embedded systems -- iPods and iPhones, Mars rovers, Wii video game consoles, GPS-based people trackers, and more. The embedded systems landscape is one of tremendous innovation and impact -- new inventions, many from students like yourselves, come about every day.


Lecture: TT 8:00a-9:20a (RH 104)
Labs: WebSoc (ICS2 162)
Office Hours: TT 9:30a-10:30a (DBH 3076)
TA: Hamid Mirzaei Buini (mirzaeib@uci.edu)
Reader: Michael Demirev (mdemirev@uci.edu)
Reader: Yihan Xu (yihanx2@uci.edu)
Grade: 50% Projects, 25% Homework, 25% Final
Final Exam: Mar 20 @ 8:00a-10:00a (RH 104)


  • Must be enrolled in CS 145 & CS 145L
  • Turn cell phones off during lecture
  • Zero tolerance for cheating, please see campus policies
  • For add/drop deadlines, please see campus policies
  • No late project submissions accepted
  • Submit projects and homework via EEE
  • Information on this site will be updated frequently, check often


Programming Embedded Systems by Frank Vahid and Tony Givargis

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBooks code: UCICS145Winter2018
  3. Click 'Subscribe'

Tools & Parts

You'll need some stuff to build the projects for this course. These tools & parts will need to be purchased. The instructor will go over the possibility of working in teams of two. If you decide to work in teams of two, you can share one set of these tools & parts. Please complete and sign this contract if you decide to work as a team.


  • Introduction
  • Embedded Programming
  • State Machines
  • Synchronous SMs
  • Concurrent synchSMs
  • I/O
  • Peripherals
  • Task Scheduler
  • Programming Issues
  • Control Systems
  • Digital Signal Processing



  1. Read and Perform Activities of zyBook Chapters 1-2 (5%, 11:45p, 1/12/2018)
  2. Read and Perform Activities of zyBook Chapters 3-5 (5%, 11:45p, 1/26/2018)
  3. Read and Perform Activities of zyBook Chapters 6-7 (5%, 11:45p, 2/9/2018)
  4. Read and Perform Activities of zyBook Chapters 8-9 (5%, 11:45p, 2/23/2018)
  5. Read and Perform Activities of zyBook Chapters 11-12 (5%, 11:45p, 3/9/2018)


Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs. Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implementationed in a timely fashion.