Course syllabus
Course-PM of the 2019 instance of the course
The 2022 instance has a separate page.
DAT326 / DIT982 Domain Specific Languages of Mathematics, Spring 2019 (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
See TimeEdit.
Contact details
Examiner and main lecturer: Patrik Jansson, email: patrikj@chalmers.se
Teaching Assistants:
- Maximilian Algehed, email: algehed@chalmers.se
- Abhiroop Sarkar, email: sarkara@chalmers.se
Guest Lecturer: Nicola Botta (Potsdam Institute of Climate Impact Research).
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)
- Half time helping students solve problems in small groups
- Half time joint problem solving at the whiteboard
- 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)
- Digital tools
- Canvas is used for the first time by this teaching team
- rapid feedback is appreciated to make sure we can improve the site
- GitHub is where all the lecture notes 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 first time by this teaching team
Changes made since the last occasion
Based on student feedback from the 2018 instance we have made a few changes:
- Exercise session format:
- first half: individual or group problem solving (with supervision),
- second half: full group problem solving on the board or demo
- Stronger focus on (non-scheduled) solving of exercises: bonus points
- More introductory material in the lecture notes
- Added information about how the student results in later courses correlate with the DSLsofMath course (in the introduction and as a research paper)
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
- Date: 2019-03-19, 14.00-18.00 (exam registration closes 2019-02-28)
- 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 |
---|---|---|