This course includes one project, which will be due on December 3 at 18:00. You will create your project in the style of an article as a Prismia assignment, and we will publish everyone’s articles on a public “DATA 1010 projects” page. Update: this gallery is now available, at https://prismia.chat/data1010-projects.
Your article will be an explainer for one topic which is adjacent to DATA 1010 topic sequence. Here are some ideas:
- Applications of SVD
- Image processing
- Genomic data
- An application of a matrix decomposition in numerical linear algebra (see this book, for example).
- Constrained optimization and the KKT conditions
- Gradient Descent Algorithms
- The Mersenne Twister PRNG
- Random matrices and Wigner’s semicircle law
- Common distributions and their applications (other than the ones we did in class)
- Hypergeometric distribution
- Cauchy distribution
- Applications of bootstrapping
- Maximum likelihood estimation and Fisher information
- No-free-lunch theorem: is it valuable?
These topics are just ideas; you’re welcome (and encouraged) to choose your own topic. You can look at the free book Mathematics for Machine Learning for lots more ideas. Feel free to ask on the message board to get feedback about any particular ideas you might be considering. We will also add to the list above as the term progresses.
It’s very likely that you’ll want to include some code to help the reader understand the details of your topic. You are not required to use Julia. However, you should use Julia or Python or R unless you have a really compelling reason to use something else. Note that you could also use multiple languages if you had occasion to do so, since you can start any Prismia cell with
#lang python or
#lang julia to specify the language for a particular cell.
To keep everything as simple and familiar as possible, we’re going to manage the submissions as Prismia assignments. Go to your assignments page and find the Project assignment. Craft your blog post as a sequence of Prismia messages. Once the assignments are submitted, we will automatically create Prismia shared lessons from your submissions and also create a publicly viewable page listing all of the projects.
Note: We will add functionality to the Assignments page will allow you to preview your article exactly as it will appear once it’s published.
The main objectives to keep in mind as you write your article are readability, informativeness, and accuracy. You want to set the stage: explain the motivation and describe what you’re going to accomplish. Then get into the details, explain how the various components work in the context of an illustrative example, and also make some connections to real-world applications.
All of these are loose suggestions. The main goal is to tell a great story. The only specifically required element is some presentation of a nontrivial mathematical idea, even if it isn’t the main overall focus. It’s also very likely that you’re going to need to include some visuals to create a compelling reading experience.
A good example to look at for style and length is this article. It’s very much on the longer end of the spectrum at around 3600 words; I recommend targeting a length in the range 50% to 100% as long as this one (shorter than 1500 words would be too short). The other thing this article does which is not necessary is a code walkthrough; whether you want to do that is up to you.
To see another example which is actually in Prismia, check out ML with Mathlets.
After the blog posts are submitted, each person will be responsible for reading two other students’ blog posts and providing feedback on what they found clear, interesting, helpful, etc. The mapping between readers and blog posts will be chosen uniformly at random.
The review deadline will be two weeks after the blog post submission deadline. You should not expect the review to represent a very large time investment; the goal is to provide an incentive to do a good enough job with the blog post that it will be helpful to at least the two readers from the class.