CENG2400 Embedded System Design - CUHK Course Review

Term Taken: 2020 Fall

Remote Teaching due to COVID19

Instructor: Prof. Xu Qiang

Grading Scheme

  • Written Homework (10%)
  • Lab (15%)
  • In-class exercises and quizzes (20%)
  • Project (25%)
  • Final exam (30%)

Topics Covered

  • GPIO.
  • ARM Processor.
  • Serial Communications: UART, SPI, I2C.
  • Analog Interfacing.
  • Concurrency: Interrupt vs. Polling, Scheduling.
  • Direct Memory Access.
  • Motor and Control Systems.


This was a required course for CE majors and an elective course for CS majors. As far as I know, very little CS students register CE courses because they dislike hardware. However, I actually enjoyed this course quite a bit and felt like it didn’t require that much hardware knowledge.

The focus of this course was gaining us extensive hands-on experience in building embedded system projects. The lectures covered the concepts and principles of some embedded system topics, but during the labs, we had to wrote actual C code to implement or utilize the materials taught in the lectures.

For all the labs, we worked on a Tiva C evaluation board and some common electronic components such as LCD display and num pad. Towards the end of the semester, a project kit was given to us and we had to use the knowledge we learned to put together an obstacle-avoiding robot car. The project was pretty simple because most of the complicated code was already completed by the technician. All we had to do was filling in the emptied-out C functions and perform some fine-tuning. In the last lab, a demo was hosted to determine the final score of the project.

There were couple written homework and quizzes which tested us on some very basic concepts. Most students got pretty similar scores.

Generally, I think this course is takable as long as you enjoy (or want to try) making a robot and learning some lower-level system knowledge.

More CUHK Course Reviews