Skip to content

Commit

Permalink
adding the skeleton for Spring 2025 projects
Browse files Browse the repository at this point in the history
  • Loading branch information
mdw333 committed Jan 6, 2025
1 parent 1052115 commit 54f2083
Show file tree
Hide file tree
Showing 13 changed files with 1,121 additions and 0 deletions.
61 changes: 61 additions & 0 deletions projects-appendix/modules/ROOT/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
= TDM Course Overview

This page provides a high-level overview of the TDM 100, 200, 300, and 400 level courses. Together, these courses make up The Data Mine's seminar offering for students.

[IMPORTANT]
====
The Data Mine is always incorporating new feedback and changing our offerings to fit student's needs.
As part of that, the focus of the courses below may change in the future.
====

== TDM 101/102

The 100 level courses serve as an introduction to two of the core coding language in analytics, Python and R. Students will learn about the basic implementation of the coding languages as well as how to apply them to core skills in analytics and data science.

The course serves as a great introduction to coding languages and core data analytics topics.

Potential topics include:

* Introduction to core packages (Pandas, Matplotlib, Numpy, R-Shiny)
* Defining and working with functions
* Processes for data manipulation
* Introduction to data analysis

== TDM 201/202

Building on the coding skills learned in the 100 level courses, the 200 level takes Python and R and discusses how they are used in a high-performance computing (HPC) environment. Students will leverage their core coding skills to learn about topics like code optimization, web scraping, and utilizing GPUs.

This course is great to build experience working in Python and R in a research environment.

Potential topics include:

* Web scraping
* Data visualization
* Code optimization
* Containerization

== TDM 301/302

TDM 300 allows students to take a deeper dive into a specific type of predictive model. The Data Mine is starting with a deep dive into neural nets, but we plan to build out other modeling topics in the future.

The 300-level course is a great opportunity for students to spend an extended amount of time taking a deep dive into a specific technique.

*Experience:* This course assumes that you have a background in Python, R, or both coding languages.

Potential topics include:

* Introduction to neural networks
* Hyperparameter tuning for deep learning
* CNN's and computer vision
* Ethics in neural networks

== TDM 401/402

The Data Mine's highest current course offering, TDM 400 is an extension of the 300-level course with additional questions focused on understanding and applying the technique of focus.

TDM 400 is an opportunity for advanced students to drive their own research into the application of predictive algorithms.

*Experience:* This course assumes that you have a background in Python, R, or both coding languages.

The current implementation of the 400-level course is a deeper dive of the content in the 300-level course.
126 changes: 126 additions & 0 deletions projects-appendix/modules/ROOT/kernels.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
= Kernels

Most of the time, Jupyter Lab will be used with the `seminar` or `seminar-r` kernel. By default, the `seminar` kernel runs Python code and `seminar-r` kernel runs R code. To run other types of code, see below. Any format or template related questions should be asked in Piazza.

== Running `Python` code using the `seminar` kernel

[source,python]
----
import pandas as pd
myDF = pd.read_csv("/anvil/projects/tdm/data/flights/subset/airports.csv")
myDF.head()
----


++++
<iframe id="kaltura_player" src="https://cdnapisec.kaltura.com/p/983291/sp/98329100/embedIframeJs/uiconf_id/29134031/partner_id/983291?iframeembed=true&playerId=kaltura_player&entry_id=1_pw9qdgcn&flashvars[streamerType]=auto&amp;flashvars[localizationCode]=en&amp;flashvars[leadWithHTML5]=true&amp;flashvars[sideBarContainer.plugin]=true&amp;flashvars[sideBarContainer.position]=left&amp;flashvars[sideBarContainer.clickToClose]=true&amp;flashvars[chapters.plugin]=true&amp;flashvars[chapters.layout]=vertical&amp;flashvars[chapters.thumbnailRotator]=false&amp;flashvars[streamSelector.plugin]=true&amp;flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&amp;flashvars[dualScreen.plugin]=true&amp;flashvars[Kaltura.addCrossoriginToIframe]=true&amp;&wid=1_aheik41m" allowfullscreen webkitallowfullscreen mozAllowFullScreen allow="autoplay *; fullscreen *; encrypted-media *" sandbox="allow-downloads allow-forms allow-same-origin allow-scripts allow-top-navigation allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-popups-to-escape-sandbox allow-presentation allow-top-navigation-by-user-activation" frameborder="0" title="TDM 10100 Project 13 Question 1"></iframe>
++++

== Running `R` code using the `seminar` kernel or the `seminar-r` kernel

Using the `seminar` kernel with R, it is necessary to use the `%%R` cell magic:

[source,R]
----
%%R
myDF <- read.csv("/anvil/projects/tdm/data/flights/subset/airports.csv")
head(myDF)
----

Using the `seminar-r` kernel with R, it is NOT necessary to use the `%%R` cell magic:

[source,R]
----
myDF <- read.csv("/anvil/projects/tdm/data/flights/subset/airports.csv")
head(myDF)
----

++++
<iframe id="kaltura_player" src="https://cdnapisec.kaltura.com/p/983291/sp/98329100/embedIframeJs/uiconf_id/29134031/partner_id/983291?iframeembed=true&playerId=kaltura_player&entry_id=1_6diiiuyh&flashvars[streamerType]=auto&amp;flashvars[localizationCode]=en&amp;flashvars[leadWithHTML5]=true&amp;flashvars[sideBarContainer.plugin]=true&amp;flashvars[sideBarContainer.position]=left&amp;flashvars[sideBarContainer.clickToClose]=true&amp;flashvars[chapters.plugin]=true&amp;flashvars[chapters.layout]=vertical&amp;flashvars[chapters.thumbnailRotator]=false&amp;flashvars[streamSelector.plugin]=true&amp;flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&amp;flashvars[dualScreen.plugin]=true&amp;flashvars[Kaltura.addCrossoriginToIframe]=true&amp;&wid=1_aheik41m" allowfullscreen webkitallowfullscreen mozAllowFullScreen allow="autoplay *; fullscreen *; encrypted-media *" sandbox="allow-downloads allow-forms allow-same-origin allow-scripts allow-top-navigation allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-popups-to-escape-sandbox allow-presentation allow-top-navigation-by-user-activation" frameborder="0" title="TDM 10100 Project 13 Question 1"></iframe>
++++

As you can see, any cell that begins with `%%R` and uses the `seminar` kernel will run the R code in that cell. Alternatively, using the `seminar-r` kernel, it is possible to run R code without using the `%%R` cell magic.

== Running SQL queries using the `seminar` kernel

. First, you need to establish a connection with the database. If this is a sqlite database, you can use the following command.
+
[source,ipython]
----
%sql sqlite:///my_db.db
# or
%sql sqlite:////absolute/path/to/my_db.db
# like this
%sql sqlite:////anvil/projects/tdm/data/movies_and_tv/imdb.db
----
+
Otherwise, if this is a mysql database, you can use the following command.
+
[source,ipython]
----
%sql mariadb+pymysql://username:password@my_url.com/my_database
----
+
. Next, we can run SQL queries, in a new cell, as shown with the following example, in which we show the first 5 lines of the `titles` table.
+
[source,ipython]
----
%%sql
SELECT * FROM titles LIMIT 5;
----

++++
<iframe id="kaltura_player" src="https://cdnapisec.kaltura.com/p/983291/sp/98329100/embedIframeJs/uiconf_id/29134031/partner_id/983291?iframeembed=true&playerId=kaltura_player&entry_id=1_rpqzo241&flashvars[streamerType]=auto&amp;flashvars[localizationCode]=en&amp;flashvars[leadWithHTML5]=true&amp;flashvars[sideBarContainer.plugin]=true&amp;flashvars[sideBarContainer.position]=left&amp;flashvars[sideBarContainer.clickToClose]=true&amp;flashvars[chapters.plugin]=true&amp;flashvars[chapters.layout]=vertical&amp;flashvars[chapters.thumbnailRotator]=false&amp;flashvars[streamSelector.plugin]=true&amp;flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&amp;flashvars[dualScreen.plugin]=true&amp;flashvars[Kaltura.addCrossoriginToIframe]=true&amp;&wid=1_aheik41m" allowfullscreen webkitallowfullscreen mozAllowFullScreen allow="autoplay *; fullscreen *; encrypted-media *" sandbox="allow-downloads allow-forms allow-same-origin allow-scripts allow-top-navigation allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-popups-to-escape-sandbox allow-presentation allow-top-navigation-by-user-activation" frameborder="0" title="TDM 10100 Project 13 Question 1"></iframe>
++++

As you can see, any cell that begins with `%%sql` will run the SQL query in that cell. If a cell does not begin with `%%sql`, it will be assumed that the code is Python code, and run accordingly.

== Running `bash` code using the `seminar` kernel

To run `bash` code, in a new cell, run the following.

[source,bash]
----
%%bash
head /anvil/projects/tdm/data/flights/subset/airports.csv
----

++++
<iframe id="kaltura_player" src="https://cdnapisec.kaltura.com/p/983291/sp/98329100/embedIframeJs/uiconf_id/29134031/partner_id/983291?iframeembed=true&playerId=kaltura_player&entry_id=1_7n80orzg&flashvars[streamerType]=auto&amp;flashvars[localizationCode]=en&amp;flashvars[leadWithHTML5]=true&amp;flashvars[sideBarContainer.plugin]=true&amp;flashvars[sideBarContainer.position]=left&amp;flashvars[sideBarContainer.clickToClose]=true&amp;flashvars[chapters.plugin]=true&amp;flashvars[chapters.layout]=vertical&amp;flashvars[chapters.thumbnailRotator]=false&amp;flashvars[streamSelector.plugin]=true&amp;flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&amp;flashvars[dualScreen.plugin]=true&amp;flashvars[Kaltura.addCrossoriginToIframe]=true&amp;&wid=1_aheik41m" allowfullscreen webkitallowfullscreen mozAllowFullScreen allow="autoplay *; fullscreen *; encrypted-media *" sandbox="allow-downloads allow-forms allow-same-origin allow-scripts allow-top-navigation allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-popups-to-escape-sandbox allow-presentation allow-top-navigation-by-user-activation" frameborder="0" title="TDM 10100 Project 13 Question 1"></iframe>
++++

As you can see, any cell that begins with `%%bash` will run the `bash` code in that cell. If a cell does not begin with `%%bash`, it will be assumed that the code is Python code, and run accordingly.

[TIP]
====
Code cells that start with `%` or `%%` are sometimes referred to as magic cells. To see a list of available magics, run `%lsmagic` in a cell.
The commands listed in the "cell" section are run with a double `%%` and apply to the entire cell, rather than just a single line. For example, `%%bash` is an example of a cell magic.
You can read more about some of the available magics in the https://ipython.readthedocs.io/en/stable/interactive/magics.html#[official documentation].
====

== Including an image in your notebook

To include an image in your notebook, use the following Python code.

[source,python]
----
from IPython import display
display.Image("/anvil/projects/tdm/data/images/woodstock.png")
----

Here, `/anvil/projects/tdm/data/images/woodstock.png` is the path to the image you would like to include.

++++
<iframe id="kaltura_player" src="https://cdnapisec.kaltura.com/p/983291/sp/98329100/embedIframeJs/uiconf_id/29134031/partner_id/983291?iframeembed=true&playerId=kaltura_player&entry_id=1_l2dk76ho&flashvars[streamerType]=auto&amp;flashvars[localizationCode]=en&amp;flashvars[leadWithHTML5]=true&amp;flashvars[sideBarContainer.plugin]=true&amp;flashvars[sideBarContainer.position]=left&amp;flashvars[sideBarContainer.clickToClose]=true&amp;flashvars[chapters.plugin]=true&amp;flashvars[chapters.layout]=vertical&amp;flashvars[chapters.thumbnailRotator]=false&amp;flashvars[streamSelector.plugin]=true&amp;flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&amp;flashvars[dualScreen.plugin]=true&amp;flashvars[Kaltura.addCrossoriginToIframe]=true&amp;&wid=1_aheik41m" allowfullscreen webkitallowfullscreen mozAllowFullScreen allow="autoplay *; fullscreen *; encrypted-media *" sandbox="allow-downloads allow-forms allow-same-origin allow-scripts allow-top-navigation allow-pointer-lock allow-popups allow-modals allow-orientation-lock allow-popups-to-escape-sandbox allow-presentation allow-top-navigation-by-user-activation" frameborder="0" title="TDM 10100 Project 13 Question 1"></iframe>
++++


[IMPORTANT]
====
If you choose to include an image using a Markdown cell, and the `![](...)` syntax, please note that while the notebook will render properly in our https://ondemand.anvil.rcac.purdue.edu environment, it will _not_ load properly in any other environment where that image is not available. For this reason it is critical to include images using the method shown here.
====
80 changes: 80 additions & 0 deletions projects-appendix/modules/ROOT/progress-table.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// copy/paste these for project status as needed
// Incomplete {set:cellbgcolor:#e03b24}
// Team Review {set:cellbgcolor:#ffcc00}
// Final Review {set:cellbgcolor:#64a338}

## TDM 101
|===
| Project Name {set:cellbgcolor:} | Completion Deadline | Status
| Project 1 {set:cellbgcolor:} | 2024-05-08 | Final Review {set:cellbgcolor:#64a338}
| Project 2 {set:cellbgcolor:} | 2024-05-10 | Final Review {set:cellbgcolor:#64a338}
| Project 3 {set:cellbgcolor:} | 2024-05-14 | Final Review {set:cellbgcolor:#64a338}
| Project 4 {set:cellbgcolor:} | 2024-05-16 | Final Review {set:cellbgcolor:#64a338}
| Project 5 {set:cellbgcolor:} | 2024-05-20 | Final Review {set:cellbgcolor:#64a338}
| Project 6 {set:cellbgcolor:} | 2024-05-22 | Final Review {set:cellbgcolor:#64a338}
| Project 7 {set:cellbgcolor:} | 2024-05-24 | Final Review {set:cellbgcolor:#64a338}
| Project 8 {set:cellbgcolor:} | 2024-05-30 | Final Review {set:cellbgcolor:#64a338}
| Project 9 {set:cellbgcolor:} | 2024-06-03 | Final Review {set:cellbgcolor:#64a338}
| Project 10 {set:cellbgcolor:} | 2024-06-05 | Final Review {set:cellbgcolor:#64a338}
| Project 11 {set:cellbgcolor:} | 2024-06-07 | Final Review {set:cellbgcolor:#64a338}
| Project 12 {set:cellbgcolor:} | 2024-06-11 | Final Review {set:cellbgcolor:#64a338}
| Project 13 {set:cellbgcolor:} | 2024-06-13 | Final Review {set:cellbgcolor:#64a338}
| Project 14 {set:cellbgcolor:} | 2024-06-18 | Final Review {set:cellbgcolor:#64a338}
|===

## TDM 201
|===
| Project Name {set:cellbgcolor:} | Completion Deadline | Status
| Project 1 {set:cellbgcolor:} | 2024-07-08 | Final Review {set:cellbgcolor:#64a338}
| Project 2 {set:cellbgcolor:} | 2024-07-11 | Final Review {set:cellbgcolor:#64a338}
| Project 3 {set:cellbgcolor:} | 2024-07-16 | Final Review {set:cellbgcolor:#64a338}
| Project 4 {set:cellbgcolor:} | 2024-07-19 | Final Review {set:cellbgcolor:#64a338}
| Project 5 {set:cellbgcolor:} | 2024-07-22 | Team Review {set:cellbgcolor:#ffcc00}
| Project 6 {set:cellbgcolor:} | 2024-07-23 | Incomplete {set:cellbgcolor:#e03b24}
| Project 7 {set:cellbgcolor:} | 2024-07-26 | Incomplete {set:cellbgcolor:#e03b24}
| Project 8 {set:cellbgcolor:} | 2024-07-30 | Incomplete {set:cellbgcolor:#e03b24}
| Project 9 {set:cellbgcolor:} | 2024-08-07 | Incomplete {set:cellbgcolor:#e03b24}
| Project 10 {set:cellbgcolor:} | 2024-08-12 | Incomplete {set:cellbgcolor:#e03b24}
| Project 11 {set:cellbgcolor:} | 2024-08-15 | Incomplete {set:cellbgcolor:#e03b24}
| Project 12 {set:cellbgcolor:} | 2024-08-20 | Incomplete {set:cellbgcolor:#e03b24}
| Project 13 {set:cellbgcolor:} | 2024-08-23 | Incomplete {set:cellbgcolor:#e03b24}
| Project 14 {set:cellbgcolor:} | 2024-08-23 | Incomplete {set:cellbgcolor:#e03b24}
|===

## TDM 301
|===
| Project Name {set:cellbgcolor:} | Completion Deadline | Status
| Project 1 {set:cellbgcolor:} | 2024-07-08 | Final Review {set:cellbgcolor:#64a338}
| Project 2 {set:cellbgcolor:} | 2024-07-08 | Final Review {set:cellbgcolor:#64a338}
| Project 3 {set:cellbgcolor:} | 2024-07-15 | Final Review {set:cellbgcolor:#64a338}
| Project 4 {set:cellbgcolor:} | 2024-07-15 | Final Review {set:cellbgcolor:#64a338}
| Project 5 {set:cellbgcolor:} | 2024-07-22 | Final Review {set:cellbgcolor:#64a338}
| Project 6 {set:cellbgcolor:} | 2024-07-22 | Final Review {set:cellbgcolor:#64a338}
| Project 7 {set:cellbgcolor:} | 2024-07-29 | Final Review {set:cellbgcolor:#64a338}
| Project 8 {set:cellbgcolor:} | 2024-07-29 | Final Review {set:cellbgcolor:#64a338}
| Project 9 {set:cellbgcolor:} | 2024-08-05 | Team Review {set:cellbgcolor:#ffcc00}
| Project 10 {set:cellbgcolor:} | 2024-08-05 | Incomplete {set:cellbgcolor:#e03b24}
| Project 11 {set:cellbgcolor:} | 2024-08-12 | Incomplete {set:cellbgcolor:#e03b24}
| Project 12 {set:cellbgcolor:} | 2024-08-12 | Incomplete {set:cellbgcolor:#e03b24}
| Project 13 {set:cellbgcolor:} | 2024-08-19 | Incomplete {set:cellbgcolor:#e03b24}
| Project 14 {set:cellbgcolor:} | 2024-08-19 | Incomplete {set:cellbgcolor:#e03b24}
|===

## TDM 401
|===
| Project Name {set:cellbgcolor:} | Completion Deadline | Status
| Project 1 {set:cellbgcolor:} | 2024-07-08 | Final Review {set:cellbgcolor:#64a338}
| Project 2 {set:cellbgcolor:} | 2024-07-08 | Final Review {set:cellbgcolor:#64a338}
| Project 3 {set:cellbgcolor:} | 2024-07-15 | Final Review {set:cellbgcolor:#64a338}
| Project 4 {set:cellbgcolor:} | 2024-07-15 | Final Review {set:cellbgcolor:#64a338}
| Project 5 {set:cellbgcolor:} | 2024-07-22 | Final Review {set:cellbgcolor:#64a338}
| Project 6 {set:cellbgcolor:} | 2024-07-22 | Final Review {set:cellbgcolor:#64a338}
| Project 7 {set:cellbgcolor:} | 2024-07-29 | Final Review {set:cellbgcolor:#64a338}
| Project 8 {set:cellbgcolor:} | 2024-07-29 | Final Review {set:cellbgcolor:#64a338}
| Project 9 {set:cellbgcolor:} | 2024-08-05 | Team Review {set:cellbgcolor:#ffcc00}
| Project 10 {set:cellbgcolor:} | 2024-08-05 | Incomplete {set:cellbgcolor:#e03b24}
| Project 11 {set:cellbgcolor:} | 2024-08-12 | Incomplete {set:cellbgcolor:#e03b24}
| Project 12 {set:cellbgcolor:} | 2024-08-12 | Incomplete {set:cellbgcolor:#e03b24}
| Project 13 {set:cellbgcolor:} | 2024-08-19 | Incomplete {set:cellbgcolor:#e03b24}
| Project 14 {set:cellbgcolor:} | 2024-08-19 | Incomplete {set:cellbgcolor:#e03b24}
|===
Loading

0 comments on commit 54f2083

Please sign in to comment.