Undergraduate theory of computation: an approach using simulation tools

  • Authors:
  • Y. S. Chua;C. N. Winton

  • Affiliations:
  • Univ. of North Florida, Jacksonville;Univ. of North Florida, Jacksonville

  • Venue:
  • SIGCSE '88 Proceedings of the nineteenth SIGCSE technical symposium on Computer science education
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

Theory of computation courses have traditionally been taught at the advanced-undergraduate/graduate level, primarily due to the level of mathematical rigor associated with the topics involved. The topics covered include automata theory, formal languages, computability, uncomputability, and computational complexity. If the essentials of these topics are introduced earlier in the undergraduate computer science curriculum, students gain deeper insights and better comprehend the underlying computational issues associated with the material covered in subsequent computer science courses. Such a course is required of all computer science majors at the University of North Florida. Experience has demonstrated that a minimum background for the course includes Freshman-Sophomore mathematics (presently calculus) and a typical introduction to computer science. Thus the course is best positioned within the curriculum at the Junior level. Recognizing that Junior level students are rarely mathematically sophisticated, the treatment is not as rigorous as that of a more advanced course on the theory of computation. To reinforce the “theory” covered in class, an integral portion of the course is devoted to “hands-on” exercises using simulation tools designed for construction of a variety of automata. The exercises generally require the construction of automata of various forms, with observation of their step by step operation. Further exercises illustrate the connections between various automata and areas such as hardware design and compiler construction. The paper describes the course and the nature of the simulation tools used in the “hands-on” component of the course.