« Return to course catalog

Mathematica: Programming in Mathematica

Focuses on the programming capabilities of Mathematica, including functional, procedural, and rule-based programming. It includes practical, hands-on exercises and shows how to choose the appropriate programming paradigm for solving problems. Course topics are presented in alternating sessions of lectures and exercises, with small class size and ample opportunity for Q&A.

Level: Intermediate

The course is for those who have a basic familiarity with Mathematica. Introductory-level skills in any computer programming language is recommended.

Live
English
Oct 24
9 am - 12 pm
Champaign, Illinois $150.00 (USD) Class full
Nov 07
1 pm - 4:30 pm EST
Online $225.00 (USD)
Dec 12
9:30 am - 3 pm
Oxfordshire, UK £95.00 (GBP)

Outline

  • Introduction
    An introduction to programming in Mathematica, discussion of various programming styles, differences between Mathematica and traditional programming languages, structure and syntax of expressions, and analyzing expressions
  • Rules and Patterns
    Creating and working with definitions, patterns and pattern matching, conditional patterns, predicates, transfomation and replacement rules, and the Mathematica evaluator
  • Functional Programming
    Functional constructs Map, Apply, and Thread; working with levels in expressions; pure functions; operations on lists; and iteration
  • Mathematica for Procedural Programmers
    A presentation of the more traditional programming features such as loops, iterators, scoping and localization, arrays vs. lists, and conditionals
  • Writing Programs
    Discussion of writing larger programs, including default and optional arguments, argument checking, error messages, and usage messages
  • Optimizing Programs
    Example-driven discussion of how to make your Mathematica programs as efficient and fast as possible, looping vs. functional approaches, listability, list component assignment, using pure functions vs. traditional definitions, dynamic programming, compiling your programs, and efficiency principles