Mathematical foundations provide the basis for computer science, yet many undergraduates obtain a superficial understanding of these concepts due to the pencil and paper environment in which these concepts are currently taught. The main objective of this proposal is to provide an environment for presenting and communicating abstract computer science concepts in a more efficient, visual and interactive manner. It is crucial that students understand this material early on, at the sophomore or junior level, as they will continue to build on this material in courses on programming languages, algorithms, and compilers. For the past five years, the PI has been designing and developing interactive and visual software tools (FLAP. LLparse, LRparse) that allow students to experiment with concepts in formal languages and automata, receiving immediate feedback. The PI is currently using these tools in the classroom in an interactive lecture format with a projector displaying the computer screen. In this lecture style we solve problems during class on the computer with input from students, and answer questions by showing the answer. The PI plans to continue to shift the format of this class away from lectures to an all lab (no lecture) format to provide the maximum interaction. Each lab period will introduce a concept and give students time to think and experiment with this concept. The material to be developed includes manuscripts for the lecture and lab presentation formats, problem sets, and software tools. This material will be disseminated through computer science education conferences and journals, and news groups and web pages on the Internet.