The course is a continuation of Discrete Structures I. It provides the background in combinatorics and probability theory required in design and analysis of algorithms, in system analysis, and in other areas of computer science.