Teaching theory of computation at the junior level
APL '87 Proceedings of the international conference on APL: APL in transition
Theory of Computation: A Primer
Theory of Computation: A Primer
Elements of the Theory of Computation
Elements of the Theory of Computation
Machines, Languages and Computation
Machines, Languages and Computation
Formal languages and their relation to automata
Formal languages and their relation to automata
A core course in computer theory: design and implementation issues
SIGCSE '89 Proceedings of the twentieth SIGCSE technical symposium on Computer science education
A simulation tool for teaching CPU design and microprogramming concepts
APL '89 Conference proceedings on APL as a tool of thought
Hi-index | 0.00 |
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.