
Hello and welcome. In this lesson, we are going to learn about the basics of Mathematica, including some general ideas about what it is and how it works. Before you start, you will need a copy of Mathematica. If you already have a copy of Mathematica, super, if not, we'll tell you how to go about getting a copy. The current version available is Mathematica 11. This is the version we will be using for the lessons. If you have an older version of Mathematica, don't fret; you should still be able to follow along with the lessons.
If you are a student, or an educator, first thing you should do is to check with your educational institution to see if they provide site licenses for your use. Most universities will have Mathematica available for students for free or at a discounted rate. If not, you will have to buy a license at www.wolfram.com/mathematica.
Another option is to create a wolfram account at www.wolframcloud.com and use the Wolfram Development Platform. Once you have created the account:
You will be presented with the Notebook front end in browser.
If you have Mathematica installed, launch it and create a new Notebook.
You are now ready to follow along with our first evaluation presented in this video!
Mathematica is a computing environment that consists of:
In this lecture, we will introduce you to these three pieces of Mathematica.
In this lecture, we look at the self-help tools available in Mathematica, including the Definition function (?) and the Documentation Center.
In this lecture we will learn how to plot functions that are defined in Mathematica. We will also explore ways to modify the visual representation of the plots.
Functions Covered:
One of the most powerful features of Mathematica is its facilities for visualizing data. In this lecture we will see how to plot data obtained form an experiments or other sources.
Functions Covered:
In this lecture we look at parametric plots.
Functions Covered:
In this lecture, we'll learn the graphics commands necessary to draw figures. In particular, we'll look at how to draw a 2D model of a pendulum.
Functions Covered:
In this lecture, we introduce the Manipulate function which enables us to animate functions over ranges of values.
Functions Covered:
In this lecture, we use Manipulate in conjunction with other functions to build a cool little app that shows how Sine and Cosine are used to build a circle.
Functions Covered:
In this project, you will use some functions that we give you to animate the model of the pendulum that we drew in our Creating Figures lecture.
This lecture is the solution to the Pendulum Project. Please do the project before watching the solution!
In this lesson, we'll take account of what we've learned so far, and give you an overview of the core language ideas, which we'll expand upon in subsequent lessons.
In our Core Language Overview, we said that everything in Mathematica is an Expression. The goal of this lesson is to understand what this means and why it's important.
Functions Covered:
Lists are Mathematica's workhorse data-structure. And you've probably noticed that they are used almost everywhere for almost everything. In this first part on Lists, we'll look at list generation, element access, property inspection.
Functions Covered:
In this lecture, we'll look at functions that modify and transform lists.
Functions Covered:
In this lecture we'll look at how you can find elements in a list, sort lists, how to treat lists as sets and some basic list combinatorics.
Functions Covered:
In this lecture, we introduce Rules and Patterns. A Rule is an ordered pair that creates a mapping from one Mathematica expression, to another. Patterns enable Mathematica to represent classes of expressions.
Functions Covered:
In this lecture, we dive deeper into Rules and Patterns. We look at Patterns that can perform arbitrarily complex tests on an expression. We also look at some of the various functions where Patterns can be used.
Functions Covered:
In this project, you will render a deck of cards using the tools that we've learned so far. The starter notebook is attached. Good luck!
This lecture is the solution to the Deck of Cards Project. Please do the project before watching the solution!
In this lecture we look at Delayed Evaluation. Delayed Evaluation enables Mathematica to postpone the evaluation of an expression until the result is actually accessed.
Functions Covered:
In this lecture we will learn how to define functions.
In this lecture we'll take a quick look at how to add usage documentation to our functions.
Functions Covered:
In this lecture, we introduce the Map function and use it to vectorize our Fibonacci function from the previous lecture.
Functions Covered:
In this lecture, we introduce Pure Functions, also known as Anonymous Functions.
Functions Covered:
In this lecture, we introduce the tools you will need for functional programming.
Functions Covered:
In this lecture, we cover more tools used in functional programming.
Functions Covered:
In this lecture, we will build a Manipulate that shows the evolution of a cellular automaton system. The starter notebook is attached. Good luck!
This lecture is the solution to the Cellular Automata Project. Please do the project before watching the solution!
In this lecture, we introduce the tools you will need to do procedural programming in Mathematica.
Functions Covered:
In this lecture, we describe how to use loops in Mathematica.
Functions Covered:
In simple terms, the scope of a variable is the portion of code where a variable is defined. In this lecture, we'll learn about the tools Mathematica provides that enable us to effectively scope variables.
Functions Covered:
In this project, you will apply what you've learned to use Mathematica's drawing system to generate Sierpinski's Carpet. Good luck!
In this lecture we present our solution to the Sierpinski's Carpet project. Please do the project before watching the solution!
Strings are fundamental objects in just about every programming language, so it will be useful for us to go over how to create and manipulate strings in Mathematica.
Functions Covered:
A super important feature of strings is the ability to match on patterns. In this lecture, we'll give a brief overview of string expressions and regular expressions.
Functions Covered:
In this lecture, we'll learn about Associations. Associations are a special type of data structure that represent a mapping between a unique key and a value. Due to their underlying implementation, pulling out a value from an Association by it's key can be done very quickly, independent of how large the Association is.
Functions Covered:
In this lecture, we explore Mathematica's functions for reading and writing data from external sources, like files and URLs.
Functions Covered:
The other day, my brother told me that the longest word that you could type with your left hand is "stewardesses". I thought that was interesting, and I decided that it would be even more interesting to prove it. In this lecture, you will write a Mathematica program to determine if "stewardesses" is indeed the longest word that you can type with your left hand!
In this lecture, we present our solution to the Longest Left Hand Word project. As always, please attempt the project before watching the solution!
In this lecture, we describe how to create your very own packages!
Functions Covered:
In this lecture, we present the inspiration for the final project. The next lecture will describe precisely what we want you to do.
We used the following resources when making this video:
In this lecture we will describe what we want you to accomplish in the final project.
Functions Covered:
This lecture is the solution to the Blending Model. As always, please try to solve the project yourself before watching this video.
This lecture is the solution to the Mendelian Model. As always, please try to solve the project yourself before watching this video.
In this course, we're going to teach you how to use the powerful graphics and animation tools available in Mathematica for prototyping ideas and visualizing data.
While Mathematica has many built in functions for doing really amazing things, we feel that a good understanding of how to code frees you to be able to make just about anything. And so our focus in this course is programming using the Wolfram Language. To get you started off quickly, we will jump right in with plotting and animating, data and mathematical functions. After that, we will get into the nitty gritty details of programming with the Wolfram Language.
In each lecture, we will introduce new concepts, and demonstrate use cases with interesting examples. You can download the lecture notebook and follow along with us, as the best way to learn to program is to get as much practice as possible. Each lecture is also accompanied by an exercise notebook. These notebooks provide a bunch of problems for you to work on and will really help to internalize the new material. You will get the most out of this course if you do all of the exercises.
Periodically, we’ll have projects for you to work on. These project are often challenging and will test your ingenuity, but will also teach you how to program and solve real problems with Mathematica. Our projects include:
We feel that this course will best serve college level students, graduate students, and maybe even professors, since Mathematica is great for producing publication quality graphics. However, even if you are not an academic, you will benefit from taking this course.
We look forward to teaching this course and we hope you enjoy it. See you at the next lecture!