## Full program description

**Attention IU employees:** *If university funds will be used for this course registration, do not proceed to PayPal and use a departmental P-card as this is a restricted use of the P-card. Instead, please contact Erin at ooe@iu.edu to initiate an internal billing document and obtain a promotion code. The promotion code will allow enrollment and entry into the course.*

### About the Program

The Data Science Essentials package is comprised of seven (7) self-paced, or asynchronous, modules specifically created by IU faculty and staff. Individuals whom purchase the package will have access to the following modules:

**Basic Linear Algebra & Calculus****Introduction to R Programming****Basics of Python Programming****Basics of Java****Introduction to C++****Introduction to SQL****Introduction to MongoDB**

Since this package is designed for maximum flexiblity, it does not follow a sequential order. You choose which modules you wish to complete and in what order. Modules are designed in text format, some have video content; solutions, or answer keys, to each assignment are located within each module under the "Files" tab. No certificates or badges of understanding will be awarded as these are self-graded modules. All work is self-graded for individual understanding.

If you have any questions, please reach out to the Luddy Office of Online Education at **luddyonl@indiana.edu**.

### Required Materials

No special software is required. Please ensure you are utilizing a support browser such as **Chrome**, Firefox, or **Safari.**

**Length:**30-120 hours, self-paced

**Department:**

**Credit:**None

**Audience:**Public

### Program Objectives

**Module: Basic Linear Algebra & Calculus**

This module covers basic Linear Algebra and Calculus as it pertains to Machine Learning utilizing Python programming. If you have not familiar with Python programming, please start with Basics of Python.

Part A and B introduces one variable differentiable Calculus used in Parameter ESTIMATION. Part C builds upon the Part A and B by introducing basic matrix operations and when matrixes are invertible. Part D explains multi-variable differentiable Calculus is used in Curve Fitting and Error Function. By the end, you will have a beginner's understanding of how linear algebra and calculus are applied to machine learning concepts.

**Module: Introduction to R Programming**

This module focuses on how to program in R and how to use R for effective data analysis. The main concept is to learn plotting systems in R, as well as some of the basic principles of constructing data graphics.

**Module: Basics of Python Programming**

This module provides an introduction to Python programming, one of the most commonly utilized langauge in data mining and machine learning. You will learn how to implement a recommendation system using Scikit-learn package, as well as be introduced to like Matplotlib.

**Module: Basics of Java**

The module introduces basic programming with Java, as well as how to use these basic programming skills on a sample project. These concepts and basic skills will be interwoven throughout the course so that you develop a little understanding at a time and then learn how to apply those concepts to the sample project.

**Module: Introduction to C++**

This module will introduce the C++ appendix of Eddelbuettel's "Seamless R and C++ integration with Rcpp," which provides the necessary knowledge of C/C++ for reading how to use Rcpp in the main text. After learning a solid knowledge of standard C/C++, you will have a basic idea how to write a C/C++ program. You will also have enough knowledge to start learning Rcpp and Cython on your own.

**Module: Introduction to SQL**

This module introduces the basic concepts of databases and SQL (Structured Query Language). You will learn need to use databases, build entity-relationship models, install MySQL, and programm (query) the database using SQL. You will also create a sample database and input data to perform complex SQL operations on the database to retrieve the desired output.

**Module: Introduction to MongoDB**

This module is is an exploration of NoSQL databases, like MongoDB. By utilizing an exisiting data set of over 1.5 million records, individuals will gain hands-on expeirence learning the concepts of MongoDB MapReduce.