Course syllabus
Course-PM for the 2020 instance of the course
The 2022 instance has a separate page.
DAT326 / DIT982 Domain-Specific Languages of Mathematics, Spring 2020 (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 EB. See TimeEdit for the details.
Contact details
Examiner and main lecturer: Patrik Jansson, email: patrikj@chalmers.se
Teaching Assistants:
- Sólrún Einarsdóttir, email: slrn@chalmers.se
- Víctor López Juan, email: lopezv@chalmers.se
Guest Lecturers: (prel.) Cezar Ionescu (Deggendorf Institute of Technology).
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 second time for this course
- 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 second time for this course
Changes made since the last occasion
Based on student feedback from the 2019 instance we have made a few changes:
- Include a more clear explanation of the concept "DSL = Domain-Specific Language" near the beginning of the course
- Connect back to the DSL definition each time a new DSL is introduced (almost every chapter)
- Clarify the grading requirements in the course memo
- Include more solved exercises in the repository to make it easier for students to self-assess their progress.
- Stress the optional bonus-exercises more, especially at the start of the course, to make sure students start early with hands-on learning
- (If there is time the book/leture notes will be clarified (definitions, index, fact boxes, cross references, syntax highlighting)
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: Tuesday 2019-03-17, afternoon, HA, HB, HC
- 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 |
---|---|---|