Programming in Mathematica
What you'll learn
- Visualize Mathematical Functions and Data
- Solve Problems using Functional Programming and Procedural Programming Techniques
Requirements
- Buy Mathematica from Wolfram or your school's software portal
Description
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:
- Programming and visualizing the oscillations of a simple pendulum
- The evolution of cellular automata
- Sierpinski’s carpet
- Simple simulation of an evolution model
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!
Who this course is for:
- College level students in engineering
Featured review
Instructors
Hello there! My name is Shad. I've been a Software Engineer for over 10 years. I studied Computer Engineering at the University of Toronto where I got my bachelors and masters in Computer Engineering. I really love to teach logic and programming. I've taught Lego Robotics to 5th graders and Swift and iOS programming to the Girls Who Code – a group of high school girls interested in promoting STEM to girls in high school.
I believe that logic and reasoning are not sufficiently well developed in schools. We teach math starting from kindergarten, but we don't talking about logic and reasoning until high school. This is a problem because programming is an application of logic and reasoning. While math is certainly a related field, it's somewhat tangential.
My goal is to bring logic to everyone. We live in a world where everyone walks around with a computer in their pockets. I'm not advocating that we all learn to program – I'm advocating that everyone be exposed to the basics at an early age and encouraged to understand what it is that they are carrying around in their pockets. Those that are interested can then take it further.
I'm an expert in Java, Python and the Wolfram Language. My first job was at a company in Toronto – it was a Python shop. My second job was at Wolfram Research which worked primarily with the Wolfram Language. My third job was at Yahoo where we worked with a lot of Hadoop and Java. My fourth job was at Amazon where I worked on Alexa. I now work at Google. I also have a myriad of experience in other languages and my knowledge of how computing works is diverse.
I've seen how kids think about logic and computing at various ages. Teaching programming is a challenge especially given how broad existing knowledge can be – completely illiterate of logic and computing to very familiar – however, I believe that given the right examples and the appropriate motivation, anyone can learn to do it, and I will do my best to make sure that my students succeed.
I am a PhD student in Mechanical Engineering at the University of Illinois in Urbana-Champaign. I have been working on modeling and simulation of complex systems making use of various computational methods and programming languages. Aside from my research program, I have taught many courses such as Calculus, Mechanical Vibrations, Heat and Mass Transfer, and Dynamical systems. I enjoy teaching, and I like including various computational and visualization methods in my teaching.
Before my PhD program, I was a research programmer at WolframAlpha LLC. I worked there for 2.5 years and developed a wide variety of content for the website.
Udemy caught my attention in 2015. Since then I have taken many courses on Udemy myself. I consider it the perfect platform for sharing knowledge, and so I have decided to try my hand at online teaching.