Undergraduate level background in digital systems; Understanding of the C programming language