This is the second part of the foundation course for the Information and Communication Technologies degree program. Successful students will have a thorough knowledge of the computer language Java, the systematic development of programs, problem-solving and a knowledge of some of the fundamental algorithms of computer science. Essential concepts include inheritance, polymorphism, and error-handling, using exceptions.