coursera hardware software interface