Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Communications of the ACM - Special issue: Soviet computing
A robot laboratory for teaching artificial intelligence
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
The use of robots in the undergraduate curriculum: experience reports
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Making compiler design relevant for students who will (most likely) never design a compiler
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Measuring the effectiveness of robots in teaching computer science
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Python robotics: an environment for exploring robotics beyond LEGOs
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Quantitative analysis of the effects of robots on introductory Computer Science education
Journal on Educational Resources in Computing (JERIC)
Enhancing lisp instruction with RCXLisp and robotics
Proceedings of the 35th SIGCSE technical symposium on Computer science education
MetaCricket: a designer's kit for making computational devices
IBM Systems Journal
Teaching compiler construction using a domain specific language
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Pyro: A python-based versatile programming environment for teaching robotics
Journal on Educational Resources in Computing (JERIC)
Using RoboCup in university-level computer science education
Journal on Educational Resources in Computing (JERIC) - Special issue on robotics in undergraduate education. Part 1
Three years of using robots in an artificial intelligence course: lessons learned
Journal on Educational Resources in Computing (JERIC) - Special issue on robotics in undergraduate education. Part 2
Chirp on crickets: teaching compilers using an embedded robot controller
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Robots make computer science personal
Communications of the ACM - Software product line
Mindstorms without robotics: an alternative to simulations in systems courses
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Computer Systems: A Programmer's Perspective
Computer Systems: A Programmer's Perspective
Hi-index | 0.00 |
Language engineering --- the theory and practice of compiler and language processor design, has long been recognized as a core subject in Computer Science curricula. However, due to the scope and depth of the included topics, the limited time constraint, and the lack of suitable target system, educators often find it difficult to engage students and teach language engineering courses effectively. This paper presents a new modular approach to language engineering using XML and inexpensive robots. We teach language engineering in the context of the popular, inexpensive Scribbler robot, and use XML to externalize the compiler intermediate representation. The inexpensive robot device provides an affordable, yet realistic system platform to explore a broad set of compiler topics; the XML-based intermediate representation divides the compiler components into self-contained, independent modules; combined together, these two techniques give instructors a highly flexible and powerful framework to design course materials and teach language engineering subjects. We have designed the Chirp-Scribbler language to program the Scribbler robots. The Chirp-Scribbler compiler consists of lexer, parser, semantic verifier, code generator, and uses XML as shared intermediate representation. Each of the components can be built as a separate module and integrated to create the complete compiler. We describe the design of Chirp-Scribbler language, the XML-based module structure of Chirp-Scribbler compiler, integration with robots and supporting tools, and our teaching practice of using them to teach language translation basics in an undergraduate programming course.