Our Philosophy

No, we haven't developed a computer language for philosophers. Yet. But we do have a philosophy that guides our work.

Research in the field of programming languages has led to the idea of a domain-specific language - a programming language that has been adapted to a specific purpose and can be used by people without formal training in programming. Using tools that have been developed for DSLs, we can create languages that are targeted at core areas of the high-school curriculum. Our intent is not to teach programming but rather to use principles of programming languages to create tools that are general - appropriate for broad areas of subject material - and simple - usable by all students, not just gifted or computer-literate ones. Our languages should re-enforce existing curriculum rather than add new material that is irrelevant to the subject area.

The essential idea behind our research is that by using a formal, well-defined language to express objects in a learning domain we can then use computers to provide new ways to explore and experience these objects. This also introduces an element of creativity into the learning experience. We allow students to construct and experiment within a learning domain where they can build and share artifacts. We believe that this sort of creative exploration compliments the more traditional problem-based approach taken in many subjects. It also forms a link between science and the arts, allowing learning experiences that involve aesthetics and design in addition to the more rigorous language underneath.

Although we do not expressly want to teach computer programming, our languages teach basic computational principles: naming and functional abstraction. Naming allows students to give identities to the objects they create and then reuse these names to create more complex objects. Functional abstraction is used to capture patterns: general principles that organize the underlying domain. These ideas are not really about programming itself but rather basic principles of mathematics that all students should be able to master.

 

Computer Languages for Secondary Education