Math Workshop on Data Analysis
This is the homepage for the workshop. My name is Ryan Mickler (), and i'll be your principal instructor for this course, I'll be assisted by Nate Bade.
Resources
We will be developing in c++, which is one of the most popular programming languages used today. The best online source for learning this language in my opinion is LearnCPP. If you work through the exercises in section 1, you should be in good shape to start this workshop. If you use a windows machine, then you will need to have a copy of the integrated development environment (IDE) called Visual Studio Community (2015) installed: Download Link. You might need to sign up for a licence, but I believe the Community version is completely free.
If you use macOS, we will be developing in Apple's Xcode, which is also free. You can install this through the App Store. If the app store wont allow you to install a version of Xcode that works with your version of MacOS X, then come and see me. I have some older install files available.
Example solution for Visual Studio 2013/2015 download
UPDATE: new TestProject File download (Will fix MSVCP120D.dll error, make sure you build in release!
Example solution for Visual Studio 2010 download
We will be using the free Open source image processing and computer vision library called OpenCV.
Download OpenCV3 For Windows (For VS2013/15)
Download OpenCV 2.4.1 For Winodws (For VS2010)
Download OpenCV3 For MacOS
Me and Nate will be around to help get all of this software working on your laptops, and we'll also have machines in the Lab with it all pre-installed. Here is a useful guide to get OpenCV3 working with XCode. And here is a guide to installing OpenCV. On MacOS, you will need also to install CMake.
Major Projects
Preliminary Project ListActivities
Week 1 (9/7): Introduction to Programming in C++
- Preliminary Lab Session 1: Introduction to the IDE's
Here we'll be learning how to navigate around XCode and Visual Studio 2015 and how to debug our programs at runtime.
Week 2 (9/14): Programming Practice
- Preliminary study: Familiarize yourselves with C++
Week 3 (9/21): Basics of Image Analysis
Lab Session 1: Introduction to OpenCV: Images, Matrices and Filters
Worksheets:
- program.h,program.cpp set up files
- Worksheet 1 Opening and viewing images.
- Worksheet 2 Manipulating pixel data and saving.
- Worksheet 3 Convolution Filters
- Worksheet 4 Sobel/Canny Edge Detector
Gallery:
- Preliminary Lab Session 1: Introduction to the IDE's Here we'll be learning how to navigate around XCode and Visual Studio 2015 and how to debug our programs at runtime.
Week 2 (9/14): Programming Practice
- Preliminary study: Familiarize yourselves with C++
Week 3 (9/21): Basics of Image Analysis
Lab Session 1: Introduction to OpenCV: Images, Matrices and Filters
Worksheets:
- program.h,program.cpp set up files
- Worksheet 1 Opening and viewing images.
- Worksheet 2 Manipulating pixel data and saving.
- Worksheet 3 Convolution Filters
- Worksheet 4 Sobel/Canny Edge Detector
Gallery:
- Preliminary study: Familiarize yourselves with C++
Week 3 (9/21): Basics of Image Analysis
Lab Session 1: Introduction to OpenCV: Images, Matrices and Filters
Worksheets:
- program.h,program.cpp set up files
- Worksheet 1 Opening and viewing images.
- Worksheet 2 Manipulating pixel data and saving.
- Worksheet 3 Convolution Filters
- Worksheet 4 Sobel/Canny Edge Detector
Gallery:
Lab Session 1: Introduction to OpenCV: Images, Matrices and Filters
Worksheets:- program.h,program.cpp set up files
- Worksheet 1 Opening and viewing images.
- Worksheet 2 Manipulating pixel data and saving.
- Worksheet 3 Convolution Filters
- Worksheet 4 Sobel/Canny Edge Detector
Week 4 (9/28): Minor Projects
- Minor-Project: More sophisticated Sobel/Canny edge detector Project File
Week 5 (10/5): Fourier Analysis
- Minor-Project: More sophisticated Sobel/Canny edge detector Project File
Week 5 (10/5): Fourier Analysis
Lab Session 2: Basics of the Fourier Transform (FT), 2D Discrete FT (DFT), DFT's for image analysis
Worksheets:- Worksheet 5 IDFT: Visualizing Waves.
- Worksheet 6 DFT and IDFT
- Worksheet 7 High/Low pass filters
- Worksheet 8 Dominant Phase Information
Week 6 : Beginning of Major Projects
- Group Selection and Project Assignments. Background Reading
Week 7 (10/23): Simulation
- Group Selection and Project Assignments. Background Reading
Week 7 (10/23): Simulation
Lab Session 3: Numerical Simulations of common Partial Differential Equations and Visualization
Worksheets:- program.h,program.cpp set up files
- Worksheet 9 Simple animations
- Worksheet 10 1d/2d Heat equation
- Worksheet 11 2d Wave equation
- Worksheet 12 Waves with smooth laplacian kernel
- Worksheet 13 Waves with Fourier space derivatives
- Worksheet 14 Solving KdV