Course syllabus
Course-PM for the 2021 instance of the course
The 2022 instance has a separate page.
DAT326 / DIT982 Domain-Specific Languages of Mathematics, Spring 2021 (7,5hp) at the CSE Department, Chalmers & UGOT.
Course purpose
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.
Schedule
Usually lectures on Tuesdays and Thursdays at 13.15 in Zoom. See TimeEdit for the details.
Contact details
Examiner and main lecturer: Patrik Jansson, email: patrikj@chalmers.se
Teaching Assistants:
- Víctor López Juan, email: lopezv@chalmers.se
- Maximilian Algehed, email: algehed@chalmers.se
Course literature
Lecture notes (available in Canvas, sources on GitHub) + references therein cover the course but there is no printed course textbook. The main references are listed on the GitHub page.
Course design
- Lectures
- 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 Lecture notes
- Weekly exercise sessions (scheduled):
- Helping students solve problems in small self-organized groups
- Request help here: Exercise Assistance Requests
- More exercises (not scheduled)
- Make sure to work through the exercises in the lecture notes
- 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)
- 2021-03: The exam is organised in a separate Canvas room
- Digital tools
- Canvas is used for the third time for this course
- rapid feedback is appreciated to make sure we can improve the site
- GitHub is where all the lecture notes ("the book") and 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 third time for this course
Changes made since the last occasion
Based on student feedback from the 2020 instance we have made a few changes:
Fully online teaching (zoom-based).
A complete review of the lecture notes:
- General book change: larger margins to improve readability on small screens; replaced Num hierarchy with Additive, Ring, etc.
- Ch 0 = Intro chapter: cut some old text, added "Common pitfalls" from Ch.1
- Ch 1 = Types&functions: clean-up + moved ArithExpr to later chapter
- Ch 2 = Logic&proofs: serious content upgrade and clarification
- Ch 3 = Type in maths: better introduction of expressions and 1-arg. functions
- Ch 4 = Compositionality&Alegbras: 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: minor edits
- Ch 9 = Probability: new chapter (extra material)
Examination form
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: Chalmers: U, 3, 4, 5; GU: U, G, VG
- Note: a minimum of 5p on each question is required to pass.
- Date: 2021-03-16, afternoon, online
- Aids: One textbook of your choice
To pass the course you need to pass both course elements.
Weekly Exercises
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
Course plans:
Course summary:
Date | Details | Due |
---|---|---|