Description
Computer scientists use hardware and software components to solve problems; this course encompasses the theoretical basics that underlie them. Automata, languages and grammar, language processing, computability and complexity theory will be examined in detail. Important topics will be explored using a combination of conceptual work and coding exercises.