Much of my research in the past few years has been involved with getting technology into the classroom and having students use that technology. The Internet has been an integral part of this effort. Some of the problems addressed include automatically creating suitable infrastructures for content management and classroom administration that scale up to large problem sizes (e.g., supporting hundreds of students, supporting web systems that contain thousands of files, etc.), user interfaces that facilitate dynamic classroom presentations/interactions/feedback in real time (e.g., student picture acquisition and processing, screen grabber utilities, image organizer utilities, classroom attendance utilities, automatic generation of classroom slides for the teacher, classroom notes for the student, and classroom chapters, all from the same document file, etc.), and automated systems that maintain data invariants (e.g., web page link consistency, web page file consistency, etc.).
Other research that applies theory to practice includes extending Datalog (and/or Prolog) at the compiled code level to solve useful problems in higher level problem solving domains (e.g., solving logic puzzles, specifying student advising rules for graduation, etc.).
Another area of research is using extended Backus-Naur form (EBNF) grammars to fully specify context-free language syntax and to partially specify data structures and semantics of textual specification (i.e., programming) systems which are then automatically converted to Backus-Naur form (BNF) grammars and then to LALR parsing tables via an LALR(1) parser generator. Scanner-generation support includes (a subset of) regular language textual specification that is converted to deterministic finite automata (DFA) tables. Other features of the language, such as comment style, string style, etc., are embedded in the regular language support. The EBNF grammars can be converted automatically to syntax charts for user convenience.
The resulting tables and code are linked with the underlying functionality (i.e., difficult to specify semantics) and various run-time systems (e.g., DOS, Windows, etc.) to create user-friendly textual specification (i.e., programming) systems whose output is interfaced to applications programs (e.g., word processors, spreadsheets, database systems, etc.) via add-in program modules, currently being automated via COM Automation, HTML/CGI/ActiveX and SQL/ODBC links.
The following systems, supporting teaching, research, and/or classroom administration, have been created with this approach:
The current system also includes support for compiler definitions, compiler options, and macro inclusion/exclusion of text. Future research will involve integrating character level macro formatter support with dynamic semantic actions into the current system and providing support for external data access (e.g., database access via SQL/ODBC, etc.).