Pattern Matching addresses the problem of finding all occurrences of a pattern string in a text string. Pattern matching algorithms have many practical applications. Computer Security, computational
molecular biology and the world wide web provide settings in which efficient pattern matching algorithms are essential. New problems are constantly being defined. In this lecture, we review pattern matching algorithms in one and two dimensions for the first 40 minutes and then we pratice some challanges for the rest of the time.