Software/Hardware development for embedded systems, including memory, I/O and interrupts; an overview of C and C++, class structures in object oriented programming; software development with UML and testing and debugging strategies.