This course introduces students to theoretical foundations and principles of computer science,
including an overview of computational complexity. This course covers definitions of sets, operations on sets,
formal logic, functions and relations, graphs and trees, graph algorithms, analysis of algorithms, finite
automata, regular languages and regular gram mars, property of regular language, context-free languages, and
Turing machines. The students will complete programming assignments connected with theory.
CS 290: Theoretical Foundations and Principles of Computer Science
Class Program