ML Labs

Labs in ML are different than previous, Java-based labs. Since ML is a functional language instead of an object-oriented language (like Java), tackling labs in ML requires a different kind of thinking than working on labs written in Java.

How to Approach Labs
The labs in the Independent Study textbook are not as difficult as they initially appear. With some dedication and work ethic, they can be accomplished with relative ease. To help conquer any of the ML labs found in the textbook, follow these steps:
 * 1) Read the Section: As straightforward as this sounds, it is one of the most critical steps. The section of the textbook which precedes the lab is often very helpful, if not critical, to completing the lab. Reading the section usually provides the necessary algorithms, equations, and sometimes step-by-step instructions for completing the lab. If you read the section, you'll save yourself a lot of struggling.
 * 2) Use Outside Sources: If the textbook is not enough, the Internet is your friend. Videos and websites can help you to understand what the lab is asking you to do and the best way to accomplish it. This is especially true of labs in which algorithms are used.
 * 3) Don't Overthink It: If the lab seems simple, it might be simple. If it seems impossible, you're probably overthinking it. One of the biggest of all problems encountered in Independet Study is overthinking labs that are actually simple.
 * 4) Copy the Source Code: The starter code seen in the ML textbook is available online. Don't be ashamed to copy-paste it - adopting this practice will save you the significant amount of wasted time and errors that stem from mistyping.

Helpful Resources
This is a collection of outside sources found to be useful during labs. Other sources may also be useful.

Chapter 1, Extended Example 1.14: Chapter 2, Extended Example 2.6: Chapter 3, Extended Example 3.15: Chapter 4, Extended Example 4.11: Chapter 5, Extended Examples 5.10, 5.11: Chapter 6, Extended Example 6.12: Chapter 7, Extended Example 7.14: Chapter 8, Extended Example 8.7: Chapter 9, Extended Example 9.10:
 * Starter Code
 * Source Code
 * Source Code
 * Source Code
 * Source Code 5.10
 * Source Code 5.11
 * Source Code
 * Source Code
 * Source Code
 * Source Code

Chapter 11, Extended Example 11.6:
 * Source Code
 * Extended Euclidean Algorithm
 * RSA Encription Video Series