DAT326 / DIT983 Domain-Specific Languages of Mathematics, Spring 2023 (7,5hp) at the CSE Department, Chalmers & UGOT.
The course will present classical mathematical topics from a computing science perspective: giving specifications of the concepts introduced, paying attention to syntax and types, and ultimately constructing DSLs of some mathematical areas mentioned below.
Learning outcomes: see below.
Usually lectures on Tuesdays (in EC) and Thursdays (in ED) at 13.15. See TimeEdit for the details.
Exercise sessions usually on Tuesdays (15.15) and Fridays (13.15) in ES52 + ES53.
Examiner and main lecturer: Patrik Jansson, email: email@example.com
- David Wärn
- Felix Cherubini
- Sikai Lu
Chapters 1-8 of the book "Domain-Specific Languages of Mathematics" (also available in Canvas, sources on GitHub) + references therein cover the course. The main references are listed on the GitHub page.
- Introduction: Haskell, complex numbers, syntax, semantics, evaluation, approximation
- Basic concepts of analysis: sequences, limits, convergence, ...
- Types and mathematics: logic, quantifiers, proofs and programs, Curry-Howard, ...
- Type classes, derivatives, differentiation, calculational proofs
- Domain-Specific Languages and algebraic structures, algebras, homomorphisms
- Polynomials, series, power series
- Power series and differential equations, exp, sin, log, Taylor series, ...
- Linear algebra: vectors, matrices, functions, bases, dynamical systems as matrices and graphs
- Laplace transform: exp, powers series cont., solving PDEs with Laplace
- Course material
- Please read and make sure you understand the course book.
- All (currently 16) old exams + solutions are available in the github repository
- Weekly exercise sessions (scheduled):
- Helping students solve problems in small self-organized groups
- Usually in ES52 + ES53 (see the TimeEdit schedule)
- More exercises (not scheduled)
- Make sure to work through the exercises in the book
- This is important to prepare for both the labs and the written exam
- ... and you can get bonus points.
- Assignments (labs)
- Two assignments done in groups of three
- Hand-in as text + code ...
- ... and a short oral Q&A session to make sure you have all contributed.
- Feedback will be given both during the Q&A-session and in writing
- Written exam (at the end of the course)
- 2023-03: Physical written exam
- Digital tools
- Canvas is used for the course homepage
- rapid feedback is appreciated to make sure we can improve the site
- GitHub is where all the sources of the textbook and its associated code is hosted.
- please post issues if you find problems
- and use pull-requests if you have suggestions for fixes / additions
- Canvas is used for the course homepage
Changes made since the last occasion
Based on student feedback from the 2020-2022 instances we have made a few changes:
A complete review of the lecture notes - now a published book:
- General book change:
- larger margins to improve readability on small screens;
- replaced Num hierarchy with Additive, Ring, etc.
- added index to make it easier to find important concepts throughout the book
- Ch 0 = Intro chapter: cut old text, more focus on DSLs
- Ch 1 = Types&functions: clean-up + better introduction of expressions and 1-arg. functions (from Ch.3)
- Ch 2 = Logic&proofs: serious content upgrade and clarification
- Ch 3 = Type in maths: more focused, more explanations
- Ch 4 = Compositionality&Algebras: added initial and free structures; reordering and clarification
- Ch 5 = Polynomials&Power Series: general clean-up
- Ch 6 = Higher-order derivatives: added comparison of Maclaurin and Stream
- Ch 7 = Linear Algebra: algebraic clean-up; added Fourier and Quantum connections
- Ch 8 = Laplace: more examples of Laplace transforms
- Ch 9 = Probability: new chapter (extra material - not part of the course)
There are two compulsory course elements:
- A = Assignments (written + oral examination in groups of three students)
- two compulsory hand-in assignments
- Grading: Pass or Fail
- The assignments are to be handed in via Canvas
- E = Exam (individual written exam at the end of the course)
- Grading: U (fail), 3, 4, 5 (top grade)
- Note: a minimum of 5p on each question is required to pass.
- Date: 2023-03-17, morning
- Aids: One textbook of your choice (usually the DSLsofMath book)
To pass the course you need to pass both course elements.
Learning objectives and syllabus
Knowledge and understanding
- design and implement a DSL (Domain-Specific Language) for a new domain
- organize areas of mathematics in DSL terms
- explain main concepts of elementary real and complex analysis, algebra, and linear algebra
Skills and abilities
- develop adequate notation for mathematical concepts
- perform calculational proofs
- use power series for solving differential equations
- use Laplace transforms for solving differential equations
Judgement and approach
- discuss and compare different software implementations of mathematical concepts
The syllabus page shows a table-oriented view of course schedule and basics of course grading. You can add any other comments, notes or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the 'Edit' link at the top.