Elementary graph theory and combinatorics. Counting problems, generating functions, recurrence relations, analysis of sorting algorithms. Structure of graphs and (algorithmic) graph problems. Euler tours, Hamilton circuits, coloring problems, graph traversal, shortest path and spanning tree, matching. Graph representation and analysis of graph algorithms.