Learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and
fundamental software construction concepts (reusability, abstr ...
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language into machine code using a popular backend called LLVM (htt ...
Understanding of the principles and applications of functional programming, the fundamental models of program
execution, application of fundamental methods of program composition, meta-programming through the construction of
interpreters and advanced progr ...
The course will cover programming, numerical simulation, and visualization methods using Mathematica software. Students will be able to apply these skills to their currrent coursework, and prepared for the companion course (MSE 443(b)) which covers advanc ...
To learn the basics of symbolic programming using Mathematica / To understand Mathematica expressions and their use / To be able to solve linear and non-linear differentials systems / To present graphically experimental or simulated results ...