Domain Specific Languages of Mathematics
DSLsofMath wiki page at Chalmers
A quality project funded by Chalmers with 260kkr/y for 2014 and 2015 resulting in a new BSc level course from 2016.
2016 edition of the course. See also the Year 2016 release.
- Mo 10-12: lecture in EB
- Mo 15-17: lecture in EF
- We 13-15: exercise class in ES53
- Fr 13-15: exercise class in ED-3582
Source: TimeEdit for the 2017 instance: html, ics
A paper has been accepted for the proceedings of TFPIE.
The project was also presented at DSLDI 2015 and at the IFIP WG 2.1 meeting #73.
See QualityProject/ for more details.
- Chalmers student portal
- D = Datateknik (CSE = Computer Science and Engineering):
- D2: "half compulsory" in year 2, study period 3 (the DSLsofMath course is one of the two elective courses offered to the second year of the BSc)
- elective in year 3, SP 3
- IT = Informationsteknik (SE = Software Engineering):
- TM = Teknisk matematik (Engineering Mathematics)
- D = Datateknik (CSE = Computer Science and Engineering):
- University of Gothenburg
- The course is part of the Computer Science Bachelor's Programme
- and is also given as a single subject course at the University of Gothenburg.
- Course plan link: http://kursplaner.gu.se/english/DIT982.pdf
Software engineering involves modelling very different domains (e.g., business processes, typesetting, natural language, etc.) as software systems. The main idea of this course is that this kind of modelling is also important when tackling classical mathematics. In particular, it is useful to introduce abstract datatypes to represent mathematical objects, to specify the mathematical operations performed on these objects, to pay attention to the ambiguities of mathematical notation and understand when they express overloading, overriding, or other forms of generic programming. We shall emphasise the dividing line between syntax (what mathematical expressions look like) and semantics (what they mean). This emphasis leads us to naturally organise the software abstractions we develop in the form of domain-specific languages, and we will see how each mathematical theory gives rise to one or more such languages, and appreciate that many important theorems establish "translations" between them.
Mathematical objects are immutable, and, as such, functional programming languages are a very good fit for describing them. We shall use Haskell as our main vehicle, but only at a basic level, and we shall introduce the elements of the language as they are needed. The mathematical topic treated have been chosen either because we expect all students to be familiar with them (for example, limits of sequences, continuous functions, derivatives) or because they can be useful in many applications (e.g., analytic functions, Laplace transforms).
The student should have successfully completed
- a course in discrete mathematics as for example Introductory Discrete Mathematics.
- 15 hec in mathematics, for example Linear Algebra and Calculus
- 15 hec in computer science, for example (Introduction to Programming or Programming with Matlab) and Object-oriented Software Development
- an additional 22.5 hec of any mathematics or computer science courses.
One full time year (60 hec) of university level study consisting of a mix of mathematics and computer science.