From 54f2083e8b158470bd90498ebb8e1451052a8fdc Mon Sep 17 00:00:00 2001 From: Mark Daniel Ward Date: Mon, 6 Jan 2025 09:44:09 -0500 Subject: [PATCH] adding the skeleton for Spring 2025 projects --- projects-appendix/modules/ROOT/index.adoc | 61 ++++ projects-appendix/modules/ROOT/kernels.adoc | 126 ++++++++ .../modules/ROOT/progress-table.adoc | 80 +++++ .../modules/ROOT/submissions.adoc | 61 ++++ projects-appendix/modules/ROOT/template.adoc | 87 ++++++ projects-appendix/modules/ROOT/templates.adoc | 34 +++ projects-appendix/modules/spring2025/nav.adoc | 15 + .../spring2025/pages/10200/project1.adoc | 86 ++++++ .../spring2025/pages/20200/project1.adoc | 86 ++++++ .../spring2025/pages/30200/project1.adoc | 86 ++++++ .../spring2025/pages/40200/project1.adoc | 86 ++++++ .../spring2025/pages/office_hours.adoc | 33 +++ .../modules/spring2025/pages/syllabus.adoc | 280 ++++++++++++++++++ 13 files changed, 1121 insertions(+) create mode 100644 projects-appendix/modules/ROOT/index.adoc create mode 100644 projects-appendix/modules/ROOT/kernels.adoc create mode 100644 projects-appendix/modules/ROOT/progress-table.adoc create mode 100644 projects-appendix/modules/ROOT/submissions.adoc create mode 100644 projects-appendix/modules/ROOT/template.adoc create mode 100644 projects-appendix/modules/ROOT/templates.adoc create mode 100644 projects-appendix/modules/spring2025/nav.adoc create mode 100644 projects-appendix/modules/spring2025/pages/10200/project1.adoc create mode 100644 projects-appendix/modules/spring2025/pages/20200/project1.adoc create mode 100644 projects-appendix/modules/spring2025/pages/30200/project1.adoc create mode 100644 projects-appendix/modules/spring2025/pages/40200/project1.adoc create mode 100644 projects-appendix/modules/spring2025/pages/office_hours.adoc create mode 100644 projects-appendix/modules/spring2025/pages/syllabus.adoc diff --git a/projects-appendix/modules/ROOT/index.adoc b/projects-appendix/modules/ROOT/index.adoc new file mode 100644 index 000000000..b3e1fa588 --- /dev/null +++ b/projects-appendix/modules/ROOT/index.adoc @@ -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. \ No newline at end of file diff --git a/projects-appendix/modules/ROOT/kernels.adoc b/projects-appendix/modules/ROOT/kernels.adoc new file mode 100644 index 000000000..ea634991a --- /dev/null +++ b/projects-appendix/modules/ROOT/kernels.adoc @@ -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() +---- + + +++++ + +++++ + +== 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) +---- + +++++ + +++++ + +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; +---- + +++++ + +++++ + +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 +---- + +++++ + +++++ + +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. + +++++ + +++++ + + +[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. +==== diff --git a/projects-appendix/modules/ROOT/progress-table.adoc b/projects-appendix/modules/ROOT/progress-table.adoc new file mode 100644 index 000000000..f47fa6e5c --- /dev/null +++ b/projects-appendix/modules/ROOT/progress-table.adoc @@ -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} +|=== \ No newline at end of file diff --git a/projects-appendix/modules/ROOT/submissions.adoc b/projects-appendix/modules/ROOT/submissions.adoc new file mode 100644 index 000000000..69d7f3c7b --- /dev/null +++ b/projects-appendix/modules/ROOT/submissions.adoc @@ -0,0 +1,61 @@ += Submissions + +++++ + +++++ + +Unless otherwise specified, all projects *will only need 1 submitted file*: + +The `.ipynb` file (based off of the provided template). See xref:submissions.adoc#how-to-download-notebook[here] to learn how to download the `.ipynb` file. + +[IMPORTANT] +==== +Output _must_ be displayed in the `.ipynb` file (unless otherwise specified). **Double check** that the output is correct _in Gradescope_. You are responsible for all work submitted in Gradescope. If your submission does not render properly, please contact a TA for help. + +You will be graded on the work and how it is rendered in Gradescope, _not_ how it renders on https://ondemand.anvil.rcac.purdue.edu. Please see xref:submissions.adoc#double-checking-submissions[here] to learn how to properly double check your submission and make sure it renders properly in Gradescope. +==== + +== How to download notebook + +First make sure you are in Jupyter Lab on https://ondemand.anvil.rcac.purdue.edu. It should look something like the following. + +image::figure32.webp[Jupyter Lab interface, width=792, height=500, loading=lazy, title="Jupyter Lab interface"] + +To download your notebook (`.ipynb` file), click on menu:File[Download] and select where you'd like to save the file. Then, when uploading your submission to Gradescope, simply upload the `.ipynb` file you _just_ downloaded. + +image::figure31.webp[How to download the notebook, width=792, height=500, loading=lazy, title="How to download the notebook"] + +== Double checking submissions + +In order to double check that your submission (namely, your `.ipynb` file) renders properly in Gradescope, first submit your project files in Gradescope. + +[TIP] +==== +Don't worry, you can submit as many times as you want. The graders will always see your most recent submission. +==== + +Once submitted, you should be presented with a screen that looks similar to the following. + +image::figure28.webp[Post submit screen, width=792, height=500, loading=lazy, title="Post submit screen"] + +Click on the button in the upper right-hand corner named "Code". + +image::figure29.webp[Click "Code", width=792, height=500, loading=lazy, title="Click Code"] + +You should be presented with the same screen that your grader sees. Look at your notebook carefully to make sure your solutions appear as you intended. + +image::figure30.webp[Double check rendered notebook, width=792, height=500, loading=lazy, title="Double check rendered notebook"] + +== How to make a Python file + +This video demonstrates how to make a Python file to submit along with the Jupyter Lab file for your projects. (This is not needed for most projects. For most projects, starting in fall 2024, only the Jupyter Lab ".ipynb" file is needed.) + +++++ + +++++ + + +[TIP] +==== +When uploading to Gradescope, make sure that you upload your `.ipynb` file for the project (and any other files requested), all at once. Gradescope will only remember the most recent upload, so you need to upload all 3 files at one time, i.e., in one batch upload. +==== diff --git a/projects-appendix/modules/ROOT/template.adoc b/projects-appendix/modules/ROOT/template.adoc new file mode 100644 index 000000000..1baa84566 --- /dev/null +++ b/projects-appendix/modules/ROOT/template.adoc @@ -0,0 +1,87 @@ += TDM 10100: [LANGUAGE] Project X -- 2024 + +**Motivation:** Ipsum lorem + +**Context:** Ipsum lorem + +**Scope:** Ipsum lorem + +.Learning Objectives: +**** +- Ipsum lorem +- Ipsum lorem +- Ipsum lorem +**** + +Make sure to read about, and use the template found xref:templates.adoc[here], and the important information about project submissions xref:submissions.adoc[here]. + +== Dataset(s) + +This project will use the following dataset(s): + +- Ipsum lorem +- Ipsum lorem + +== Questions + +=== Question 1 (2 pts) + +Ipsum lorem dolor sit amet, consectetur adipiscing elit + +.Deliverables +==== +- Ipsum lorem +==== + +=== Question 2 (2 pts) + +Ipsum lorem dolor sit amet, consectetur adipiscing elit + +.Deliverables +==== +- Ipsum lorem +==== + +=== Question 3 (2 pts) + +Ipsum lorem dolor sit amet, consectetur adipiscing elit + +.Deliverables +==== +- Ipsum lorem +==== + +=== Question 4 (2 pts) + +Ipsum lorem dolor sit amet, consectetur adipiscing elit + +.Deliverables +==== +- Ipsum lorem +==== + +=== Question 5 (2 pts) + +Ipsum lorem dolor sit amet, consectetur adipiscing elit + +.Deliverables +==== +- Ipsum lorem +==== + +== Submitting your Work + +This is where we're going to say how to submit your work. Probably a bit of copypasta. + +.Items to submit +==== +- Ipsum lorem +- Ipsum lorem +==== + +[WARNING] +==== +You _must_ double check your `.ipynb` after submitting it in gradescope. A _very_ common mistake is to assume that your `.ipynb` file has been rendered properly and contains your code, markdown, and code output even though it may not. **Please** take the time to double check your work. See https://the-examples-book.com/projects/submissions[here] for instructions on how to double check this. + +You **will not** receive full credit if your `.ipynb` file does not contain all of the information you expect it to, or if it does not render properly in Gradescope. Please ask a TA if you need help with this. +==== \ No newline at end of file diff --git a/projects-appendix/modules/ROOT/templates.adoc b/projects-appendix/modules/ROOT/templates.adoc new file mode 100644 index 000000000..091c98820 --- /dev/null +++ b/projects-appendix/modules/ROOT/templates.adoc @@ -0,0 +1,34 @@ += Templates + +Any of these three options can be used, to get the project template into your account for the first time. You only need to do this once! Any of these three options is OK; you do *NOT* need to do all 3 options. + +== Option 1 + +=== How to download the template to your computer and then upload it to Jupyter Lab + +++++ + +++++ + +== Option 2 + +=== How to download the template using the `File / Open from URL` option + +++++ + +++++ + +== Option 3 + +=== How to download the template by copying it in the terminal + +++++ + +++++ + +Our course project template can be found xref:attachment$project_template.ipynb[here], or on Anvil: + +`/anvil/projects/tdm/etc/project_template.ipynb` + +Students in TDM 101000, 20100, 30100, and 40100 can use and modify this as a template as needed, for all project submissions. This template is a starting point for all projects. + diff --git a/projects-appendix/modules/spring2025/nav.adoc b/projects-appendix/modules/spring2025/nav.adoc new file mode 100644 index 000000000..c63117d39 --- /dev/null +++ b/projects-appendix/modules/spring2025/nav.adoc @@ -0,0 +1,15 @@ +* Spring 2025 +** xref:office_hours.adoc[Course Office Hours] +** xref:syllabus.adoc[Course Syllabus] +** https://datamine.purdue.edu/events/[Outside Events] +** https://www.piazza.com[Piazza] +** https://ondemand.anvil.rcac.purdue.edu[Anvil] +** https://www.gradescope.com[Gradescope] +** xref:10200/projects.adoc[TDM 10200] +*** xref:10200/project1.adoc[Project 1] +** xref:20200/projects.adoc[TDM 20200] +*** xref:20200/project1.adoc[Project 1] +** xref:30200/projects.adoc[TDM 30200] +*** xref:30200/project1.adoc[Project 1] +** xref:40200/projects.adoc[TDM 40200] +*** xref:40200/project1.adoc[Project 1] diff --git a/projects-appendix/modules/spring2025/pages/10200/project1.adoc b/projects-appendix/modules/spring2025/pages/10200/project1.adoc new file mode 100644 index 000000000..37657168c --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/10200/project1.adoc @@ -0,0 +1,86 @@ += TDM 10200: Project Project 1 -- Spring 2025 + +**Motivation:** Put some motivation here + +**Context:** Put some context here + +**Scope:** Put a scope here + +.Learning Objectives: +**** +- Objective 1 +- Objective 2 +- Objective 3 +**** + +Put preliminary stuff here + +== Questions + +=== Question 1 (2 pts) + +Put question 1 here + +.Deliverables +==== +Put deliverables for question 1 here. +==== + +=== Question 2 (2 pts) + +Put question 2 here + +.Deliverables +==== +Put deliverables for question 2 here. +==== + +=== Question 3 (2 pts) + +Put question 3 here + +.Deliverables +==== +Put deliverables for question 3 here. +==== + +=== Question 4 (2 pts) + +Put question 4 here + +.Deliverables +==== +Put deliverables for question 4 here. +==== + +=== Question 5 (2 pts) + +Put question 5 here + +.Deliverables +==== +Put deliverables for question 5 here. +==== + + + + +== Submitting your Work + +Put any final comments here. + +.Items to submit +==== +- firstname_lastname_project1.ipynb +==== + +[WARNING] +==== +It is necessary to document your work, with comments about each solution. All of your work needs to be your own work, with citations to any source that you used. Please be mindful of the + +You _must_ double check your `.ipynb` after submitting it in gradescope. A _very_ common mistake is to assume that your `.ipynb` file has been rendered properly and contains your code, markdown, and code output even though it may not. + +**Please** take the time to double check your work. See https://the-examples-book.com/projects/submissions[here] for instructions on how to double check this. + +You **will not** receive full credit if your `.ipynb` file does not contain all of the information you expect it to, or if it does not render properly in Gradescope. Please ask a TA if you need help with this. +==== diff --git a/projects-appendix/modules/spring2025/pages/20200/project1.adoc b/projects-appendix/modules/spring2025/pages/20200/project1.adoc new file mode 100644 index 000000000..37657168c --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/20200/project1.adoc @@ -0,0 +1,86 @@ += TDM 10200: Project Project 1 -- Spring 2025 + +**Motivation:** Put some motivation here + +**Context:** Put some context here + +**Scope:** Put a scope here + +.Learning Objectives: +**** +- Objective 1 +- Objective 2 +- Objective 3 +**** + +Put preliminary stuff here + +== Questions + +=== Question 1 (2 pts) + +Put question 1 here + +.Deliverables +==== +Put deliverables for question 1 here. +==== + +=== Question 2 (2 pts) + +Put question 2 here + +.Deliverables +==== +Put deliverables for question 2 here. +==== + +=== Question 3 (2 pts) + +Put question 3 here + +.Deliverables +==== +Put deliverables for question 3 here. +==== + +=== Question 4 (2 pts) + +Put question 4 here + +.Deliverables +==== +Put deliverables for question 4 here. +==== + +=== Question 5 (2 pts) + +Put question 5 here + +.Deliverables +==== +Put deliverables for question 5 here. +==== + + + + +== Submitting your Work + +Put any final comments here. + +.Items to submit +==== +- firstname_lastname_project1.ipynb +==== + +[WARNING] +==== +It is necessary to document your work, with comments about each solution. All of your work needs to be your own work, with citations to any source that you used. Please be mindful of the + +You _must_ double check your `.ipynb` after submitting it in gradescope. A _very_ common mistake is to assume that your `.ipynb` file has been rendered properly and contains your code, markdown, and code output even though it may not. + +**Please** take the time to double check your work. See https://the-examples-book.com/projects/submissions[here] for instructions on how to double check this. + +You **will not** receive full credit if your `.ipynb` file does not contain all of the information you expect it to, or if it does not render properly in Gradescope. Please ask a TA if you need help with this. +==== diff --git a/projects-appendix/modules/spring2025/pages/30200/project1.adoc b/projects-appendix/modules/spring2025/pages/30200/project1.adoc new file mode 100644 index 000000000..37657168c --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/30200/project1.adoc @@ -0,0 +1,86 @@ += TDM 10200: Project Project 1 -- Spring 2025 + +**Motivation:** Put some motivation here + +**Context:** Put some context here + +**Scope:** Put a scope here + +.Learning Objectives: +**** +- Objective 1 +- Objective 2 +- Objective 3 +**** + +Put preliminary stuff here + +== Questions + +=== Question 1 (2 pts) + +Put question 1 here + +.Deliverables +==== +Put deliverables for question 1 here. +==== + +=== Question 2 (2 pts) + +Put question 2 here + +.Deliverables +==== +Put deliverables for question 2 here. +==== + +=== Question 3 (2 pts) + +Put question 3 here + +.Deliverables +==== +Put deliverables for question 3 here. +==== + +=== Question 4 (2 pts) + +Put question 4 here + +.Deliverables +==== +Put deliverables for question 4 here. +==== + +=== Question 5 (2 pts) + +Put question 5 here + +.Deliverables +==== +Put deliverables for question 5 here. +==== + + + + +== Submitting your Work + +Put any final comments here. + +.Items to submit +==== +- firstname_lastname_project1.ipynb +==== + +[WARNING] +==== +It is necessary to document your work, with comments about each solution. All of your work needs to be your own work, with citations to any source that you used. Please be mindful of the + +You _must_ double check your `.ipynb` after submitting it in gradescope. A _very_ common mistake is to assume that your `.ipynb` file has been rendered properly and contains your code, markdown, and code output even though it may not. + +**Please** take the time to double check your work. See https://the-examples-book.com/projects/submissions[here] for instructions on how to double check this. + +You **will not** receive full credit if your `.ipynb` file does not contain all of the information you expect it to, or if it does not render properly in Gradescope. Please ask a TA if you need help with this. +==== diff --git a/projects-appendix/modules/spring2025/pages/40200/project1.adoc b/projects-appendix/modules/spring2025/pages/40200/project1.adoc new file mode 100644 index 000000000..37657168c --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/40200/project1.adoc @@ -0,0 +1,86 @@ += TDM 10200: Project Project 1 -- Spring 2025 + +**Motivation:** Put some motivation here + +**Context:** Put some context here + +**Scope:** Put a scope here + +.Learning Objectives: +**** +- Objective 1 +- Objective 2 +- Objective 3 +**** + +Put preliminary stuff here + +== Questions + +=== Question 1 (2 pts) + +Put question 1 here + +.Deliverables +==== +Put deliverables for question 1 here. +==== + +=== Question 2 (2 pts) + +Put question 2 here + +.Deliverables +==== +Put deliverables for question 2 here. +==== + +=== Question 3 (2 pts) + +Put question 3 here + +.Deliverables +==== +Put deliverables for question 3 here. +==== + +=== Question 4 (2 pts) + +Put question 4 here + +.Deliverables +==== +Put deliverables for question 4 here. +==== + +=== Question 5 (2 pts) + +Put question 5 here + +.Deliverables +==== +Put deliverables for question 5 here. +==== + + + + +== Submitting your Work + +Put any final comments here. + +.Items to submit +==== +- firstname_lastname_project1.ipynb +==== + +[WARNING] +==== +It is necessary to document your work, with comments about each solution. All of your work needs to be your own work, with citations to any source that you used. Please be mindful of the + +You _must_ double check your `.ipynb` after submitting it in gradescope. A _very_ common mistake is to assume that your `.ipynb` file has been rendered properly and contains your code, markdown, and code output even though it may not. + +**Please** take the time to double check your work. See https://the-examples-book.com/projects/submissions[here] for instructions on how to double check this. + +You **will not** receive full credit if your `.ipynb` file does not contain all of the information you expect it to, or if it does not render properly in Gradescope. Please ask a TA if you need help with this. +==== diff --git a/projects-appendix/modules/spring2025/pages/office_hours.adoc b/projects-appendix/modules/spring2025/pages/office_hours.adoc new file mode 100644 index 000000000..6f0b9db6b --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/office_hours.adoc @@ -0,0 +1,33 @@ += Spring 2025 Office Hours Schedule + +[IMPORTANT] +==== +Office hours after 5 PM will be held exclusively virtually, whereas office hours prior to 5 will be offered both in-person in the lobby of Hillenbrand Hall and remotely. + +Office Hours Zoom Link: https://purdue-edu.zoom.us/s/97774213087 + +Checklist for the Zoom Link: + +* When joining office hours, please include your Data Mine level in front of your name. For example, if you are in TDM 102, your name should be entered as “102 - [Your First Name] [Your Last Name]”. + +* After joining the Zoom call, please stay in the main room until a TA invites you to a specific breakout room. + +* We will continue to follow the office hours schedule as posted on the Examples Book. (https://the-examples-book.com/projects/spring2025/logistics/office_hours) +==== + +[NOTE] +==== +The below calendars represent regularly occurring office hours. Please check your class' Piazza page to view the latest information about any upcoming changes or cancellations for office hours prior to attending. +==== + +== TDM 10200 +image::s25-102-OH.png[10100 Office Hours Schedule, width=1267, height=800, loading=lazy, title="10100 Office Hours Schedule"] + +== TDM 20200 +image::s25-202-OH.png[20100 Office Hours Schedule, width=1267, height=800, loading=lazy, title="20100 Office Hours Schedule"] + +== TDM 30200 +image::s25-302-OH.png[30100 Office Hours Schedule, width=1267, height=800, loading=lazy, title="30100 Office Hours Schedule"] + +== TDM 40200 +image::s25-402-OH.png[40100 Office Hours Schedule, width=1267, height=800, loading=lazy, title="40100 Office Hours Schedule"] \ No newline at end of file diff --git a/projects-appendix/modules/spring2025/pages/syllabus.adoc b/projects-appendix/modules/spring2025/pages/syllabus.adoc new file mode 100644 index 000000000..4c50b89e2 --- /dev/null +++ b/projects-appendix/modules/spring2025/pages/syllabus.adoc @@ -0,0 +1,280 @@ += Spring 2025 Syllabus - The Data Mine Seminar + +== Course Information + +[%header,format=csv,stripes=even] +|=== +Course Number and Title, CRN +TDM 10200 - The Data Mine II, possible CRNs 19799 or 19803 or 19810 or 19841 or 28531 or 27497 or 27501 or 27505 +TDM 20200 - The Data Mine IV, possible CRNs 19800 or 19805 or 19811 or 19842 or 28529 or 27498 or 27502 or 27506 +TDM 30200 - The Data Mine VI, possible CRNs 19801 or 19807 or 19817 or 19843 or 28532 or 27495 or 27499 or 27503 +TDM 40200 - The Data Mine VIII, possible CRNs 19802 or 19808 or 19821 or 19859 or 28530 or 27496 or 27500 or 27504 +TDM 50100 - The Data Mine Seminar, possible CRNs 20007 or 19997 or 20010 or 20006 or 18013 or 17984 or 18009 +|=== + +*Course credit hours:* +1 credit hour, so you should expect to spend about 3 hours per week doing work for the class + +*Prerequisites:* +TDM 10100 and TDM 10200 can be taken in either order. Both of these courses are introductory. TDM 10100 is an introduction to data analysis in R. TDM 10200 is an introduction to data analysis in Python. + +For all of the remaining TDM seminar courses, students are expected to take the courses in order (with a passing grade), namely, TDM 20100, 20200, 30100, 30200, 40100, 40200. The topics in these courses build on the knowledge from the previous courses. All students, regardless of background are welcome. TDM 50100 is geared toward graduate students and can be taken repeatedly; TDM 50100 meets concurrently with the other courses, at whichever level is appropriate for the graduate students in the course. We can make adjustments on an individual basis if needed. + + +=== Course Web Pages + +- link:https://the-examples-book.com/[*The Examples Book*] - All information will be posted within these pages! +- link:https://www.gradescope.com/[*Gradescope*] - All projects and outside events will be submitted on Gradescope +- link:https://purdue.brightspace.com/[*Brightspace*] - Grades will be posted in Brightspace. Students will also take the quizzes at the beginning of the semester on Brightspace +- link:https://piazza.com[*Piazza*] - Online Q/A Forum +- link:https://datamine.purdue.edu[*The Data Mine's website*] - Helpful resource +- link:https://ondemand.anvil.rcac.purdue.edu/[*Jupyter Lab via the On Demand Gateway on Anvil*] + +=== Meeting Times +There are officially 4 Monday class times: 8:30 am, 9:30 am, 10:30 am (all in the Hillenbrand Dining Court atrium—no meal swipe required), and 4:30 pm (https://purdue-edu.zoom.us/my/mdward[synchronous online], recorded and posted later; This online meeting is also available to students participating in Seminar from other universities outside of Purdue). There is also an asynchronous class section. All the information you need to work on the projects each week will be provided online on the Thursday of the previous week, and we encourage you to get a head start on the projects before class time. Dr. Ward does not lecture during the class meetings. Instead, the seminar time is a good time to ask questions and get help from Dr. Ward, the T.A.s, and your classmates. Attendance is not required. The T.A.s will have many daytime and evening office hours throughout the week. + +=== Course Description + +The Data Mine is a supportive environment for students in any major and from any background who want to learn some data science skills. Students will have hands-on experience with computational tools for representing, extracting, manipulating, interpreting, transforming, and visualizing data, especially big data sets, and in effectively communicating insights about data. Topics include: the R environment, Python, visualizing data, UNIX, bash, regular expressions, SQL, XML and scraping data from the internet, as well as selected advanced topics, as time permits. + +=== Learning Outcomes + +By the end of the course, you will be able to: + +. Discover data science and professional development opportunities in order to prepare for a career. +. Explain the difference between research computing and basic personal computing data science capabilities in order to know which system is appropriate for a data science project. +. Design efficient search strategies in order to acquire new data science skills. +. Devise the most appropriate data science strategy in order to answer a research question. +. Apply data science techniques in order to answer a research question about a big data set. + +=== Mapping to Foundational Learning Outcome (FLO) = Information Literacy + +Note: The Data Mine has applied for the course seminar to satisfy the information literacy outcome, but this request is still under review by the university. This request has not yet been approved. + +. *Identify a line of inquiry that requires information, including formulating questions and determining the scope of the investigation.* In each of the 14 weekly projects, the scope is described at a high level at the very top of the project. Students are expected to tie their analysis on the individual weekly questions back to the stated scope. As an example of the stated scope in a project: Understanding how to use Pandas and be able to develop functions allows for a systematic approach to analyzing data. In this project, students will already be familiar with Pandas but will not (yet) know at the outset how to "develop functions" and take a "systematic approach" to solving the questions. Students are expected to comment on each question about how their "line of inquiry" and "formulation of the question" ties back to the stated scope of the project. As the seminar progresses past the first few weeks, and the students are being asked to tackle more complex problems, they need to identify which Python, SQL, R, and UNIX tools to use, and which statements and queries to run (this is "formulating the questions"), in order to get to analyze the data, derive the results, and summary the results in writing and visualizations ("determining the scope of the investigation"). +. *Locate information using effective search strategies and relevant information sources.* The Data Mine seminar progresses by increasing the complexity of the problems. The students are being asked to solve complex problems using data science tools. Students need to "locate information" within technical documentation, API documentation, online manuals, online discussions such as Stack Overflow, etc. Within these online resources, they need to determine the "relevant information sources" and apply these sources to solve the data analysis problem at hand. They need to understand the context, motivation, technical notation, nomenclature of the tools, etc. We enable students to practice this skill on every weekly project during the semester, and we provide additional resources, such as Piazza (an online discussion platform to interact with peers, teaching assistants, and the instructor), office hours throughout the week, and attending in-person or virtual seminar, for interaction directly with the instructor. +. *Evaluate the credibility of information. The students work together this objective in several ways.* They need evaluate and analyze the "credibility of information" and data from a wide array of resources, e.g., from the federal government, from Kaggle, from online repositories and archives, etc. Each project during the semester focuses attention on a large data repository, and the students need to understand the credible data, the missing data, the inaccurate data, the data that are outliers, etc. Some of the projects for students involve data cleansing efforts, data imputation, data standardization, etc. Students also need to validate, verify, determine any missing data, understand variables, correlation, contextual information, and produce models and data visualizations from the data under consideration. +. *Synthesize and organize information from different sources in order to communicate.* This is a key aspect of The Data Mine. In many of the student projects, they need to assimilate geospatial data, categorical and numerical data, textual data, and visualizations, in order to have a comprehensive data analysis of a system or a model. The students can use help from Piazza, office hours, the videos from the instructor and seminar live sessions to synthesize and organize the information they are learning about, in each project. The students often need to also understand many different types of tools and aspects of data analysis, sometimes in the same project, e.g., APIs, data dictionaries, functions, concepts from software engineering such as scoping, encapsulation, containerization, and concepts from spatial and temporal analysis. Synthesizing many "different sources" to derive and "communicate" the analysis is a key aspect of the projects. +. *Attribute original ideas of others through proper citing, referencing, paraphrasing, summarizing, and quoting.* In every project, students need to use "citations to sources" (online and written), "referencing" forums and blogs where their cutting-edge concepts are "documented", proper methods of "quotation" and "citation", documentation of any teamwork, etc. The students have a template for their project submissions in which they are required to provide the proper citation of any sources, collaborations, reference materials, etc., in each and every project that they submit every week. +. *Recognize relevant cultural and other contextual factors when using information.* Students weekly project include data and information on data about (all types of genders), political data, geospatial questions, online forums and rating schema, textual data, information about books, music, online repositories, etc. Students need to understand not only the data analysis but also the "context" in which the data is provided, the data sources, the potential usage of the analysis and its "cultural" implications, etc. Students also complete professional development, attending several professional development and outside-the-classroom events each semester. The meet with alumni, business professionals, data practitioners, data engineers, managers, scientists from national labs, etc. They attend events about the "culture related to data science", and "multicultural events". Students are required to respond in writing to every such event, and their writing is graded and incorporated into the grades for the course. +. *Observe ethical and legal guidelines and requirements for the use of published, confidential, and/or proprietary information.* Students complete an academic integrity quiz at the beginning of each semester that sets the stage of these "ethical and legal guidelines and requirements". They have documentation about proper data handling and data management techniques. They learn about the context of data usage, including (for instance) copyrights, the difference between open source and proprietary data, different types of software licenses, the need for confidentiality with Corporate Partners projects, etc. + +=== Assessment of Foundational Learning Outcome (FLO) = Information Literacy + +Note: The Data Mine has applied for the course seminar to satisfy the information literacy outcome, but this request is still under review by the university. This request has not yet been approved. + +. *Assessment method for this course.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided. +. *Identify a line of inquiry that requires information, including formulating questions and determining the scope of the investigation.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided. Students identify which R and Python statements and queries to run (this is formulating the questions), in order to get to the results they think they are looking for (determining the scope of the investigation). +. *Locate information using effective search strategies and relevant information sources.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided. The students are being asked to solve complex problems using data science tools. They need to figure out what they are looking to figure out, and to do that they need to figure out what to ask. +. *Evaluate the credibility of information. Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning.* Each week, these projects are graded by teaching assistants based on solutions provided. Some of the projects that students complete in the course involve data cleansing efforts including validation, verification, missing data, and modeling and students must evaluate the credibility as they move through the project. +. *Synthesize and organize information from different sources in order to communicate.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided. Information on how to complete the projects is learned through many sources and student utilize an experiential learning model. +. *Attribute original ideas of others through proper citing, referencing, paraphrasing, summarizing, and quoting.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided set and then questions about the data set that engage the student in experiential learning. At the beginning of each project there is a question regarding citations for the project. +. *Recognize relevant cultural and other contextual factors when using information.* Students are assigned a weekly project that usually includes a data set and then questions about the data set that engage the student in experiential learning. Each week, these projects are graded by teaching assistants based on solutions provided. For professional development event assessment – students are required to attend three approved events and then write a guided summary of the event. +. *Observe ethical and legal guidelines and requirements for the use of published, confidential, and/or proprietary information.* Students complete an academic integrity quiz at the beginning of each semester, and they are also graded on their proper documentation and usage of data throughout the semester, on every weekly project. + +=== Required Materials + +* A laptop so that you can easily work with others. Having audio/video capabilities is useful. +* Access to Brightspace, Gradescope, and Piazza course pages. +* Access to Jupyter Lab at the On Demand Gateway on Anvil: +https://ondemand.anvil.rcac.purdue.edu/ +* "The Examples Book": https://the-examples-book.com +* Good internet connection. + +=== Attendance Policy + +When conflicts or absences can be anticipated, such as for many University-sponsored activities and religious observations, the student should inform the instructor of the situation as far in advance as possible. + +For unanticipated or emergency absences when advance notification to the instructor is not possible, the student should contact the instructor as soon as possible by email or phone. When the student is unable to make direct contact with the instructor and is unable to leave word with the instructor’s department because of circumstances beyond the student’s control, and in cases falling under excused absence regulations, the student or the student’s representative should contact or go to the Office of the Dean of Students website to complete appropriate forms for instructor notification. Under academic regulations, excused absences may be granted for cases of grief/bereavement, military service, jury duty, parenting leave, and medical excuse. For details, see the link:https://catalog.purdue.edu/content.php?catoid=13&navoid=15965#a-attendance[Academic Regulations & Student Conduct section] of the University Catalog website. + +== How to succeed in this course + +If you would like to be a successful Data Mine student: + +* Start on the weekly projects on or before Mondays so that you have plenty of time to get help from your classmates, TAs, and Data Mine staff. Don’t wait until the due date to start! +* Be excited to challenge yourself and learn impressive new skills. Don’t get discouraged if something is difficult—you’re here because you want to learn, not because you already know everything! +* Remember that Data Mine staff and TAs are excited to work with you! Take advantage of us as resources. +* Network! Get to know your classmates, even if you don’t see them in an actual classroom. You are all part of The Data Mine because you share interests and goals. You have over 800 potential new friends! +* Use "The Examples Book" with lots of explanations and examples to get you started. Google, Stack Overflow, etc. are all great, but "The Examples Book" has been carefully put together to be the most useful to you. https://the-examples-book.com[the-examples-book.com] +* Expect to spend approximately 3 hours per week on the projects. Some might take less time, and occasionally some might take more. +* Don’t forget about the syllabus quiz, academic integrity quiz, and outside event reflections. They all contribute to your grade and are part of the course for a reason. +* If you get behind or feel overwhelmed about this course or anything else, please talk to us! +* Stay on top of deadlines. Announcements will also be sent out every Monday morning, but you should keep a copy of the course schedule where you see it easily. +* Read your emails! + + +== Information about the Instructors + +=== The Data Mine Staff + +[%header,format=csv] +|=== +Name, Title +Shared email we all read, datamine-help@purdue.edu +Kevin Amstutz, Senior Data Scientist +Ashley Arroyo, Data Science Techincal Specialist +Donald Barnes, Guest Relations Administrator +Maggie Betz, Managing Director of The Data Mine at Indianapolis +Kimmie Casale, ASL Tutor +Bryce Castle, Corporate Partners Technical Specialist +Cai Chen, Corporate Partners Technical Specialist +Doug Crabill, Senior Data Scientist +Peter Dragnev, Corporate Partners Technical Specialist +Stacey Dunderman, Program Administration Specialist +Jessica Gerlach, Corporate Partners Technical Specialist +Dan Hirleman, Regional Director of The Data Mine of the Rockies +Jessica Jud, Interim Director of Partnerships +Kali Lacy, Associate Research Engineer +Gloria Lenfestey, Senior Financial Analyst +Nicholas Lenfestey, Corporate Partners Technical Specialist +Naomi Mersinger, ASL Interpreter / Strategic Initiatives Coordinator +Kim Rechkemmer, Senior Program Administration Specialist +Katie Sanders, Chief Operating Officer +Betsy Satchell, Senior Administrative Assistant +Diva Sharma, Corporate Partners Technical Specialist +Shakir Syed, Managing Director of Corporate Partnerships +Fulya Gökalp Yavuz, Director of Data Science +Dr. Mark Daniel Ward, Executive Director +|=== + +The Data Mine Team uses a shared email which functions as a ticketing system. Using a shared email helps the team manage the influx of questions, better distribute questions across the team, and send out faster responses. +You can use the https://piazza.com[Piazza forum] to get in touch. In particular, Dr. Ward responds to questions on Piazza faster than by email. + +=== Communication Guidance + +* *For questions about how to do the homework, use Piazza or visit office hours*. You will receive the fastest response by using Piazza versus emailing us. +* For general Data Mine questions, email datamine-help@purdue.edu +* For regrade requests, use Gradescope's regrade feature within Brightspace. Regrades should be +requested within 1 week of the grade being posted. + + +=== Office Hours + +The xref:spring2025/logistics/office_hours.adoc[office hours schedule is posted here.] + +Office hours are held in person in Hillenbrand lobby and on Zoom. Check the schedule to see the available times. + +=== Piazza + +Piazza is an online discussion board where students can post questions at any time, and Data Mine staff or T.A.s will respond. Piazza is available through Brightspace. There are private and public postings. Last year we had over 11,000 interactions on Piazza, and the typical response time was around 5-10 minutes. + +== Assignments and Grades + +=== Course Schedule & Due Dates + +Click below to view the Spring 2025 Course Schedule: + +xref:spring2025/10200/10200-2025-projects.adoc[TDM 10200] + +xref:spring2025/20200/20200-2025-projects.adoc[TDM 20200] + +xref:spring2025/30200/30200-2025-projects.adoc[TDM 30200] + +xref:spring2025/40200/40200-2025-projects.adoc[TDM 40200] + +See the schedule and later parts of the syllabus for more details, but here is an overview of how the course works: + +In the first week of the beginning of the semester, you will have some "housekeeping" tasks to do, which include taking the Syllabus quiz and Academic Integrity quiz. + +Generally, every week from the very beginning of the semester, you will have your new projects released on a Thursday, and they are due 8 days later on the following Friday at 11:55 pm Purdue West Lafayette (Eastern) time. This semester, there are 14 weekly projects, but we only count your best 10. This means you could miss up to 4 projects due to illness or other reasons, and it won’t hurt your grade. + +We suggest trying to do as many projects as possible so that you can keep up with the material. The projects are much less stressful if they aren’t done at the last minute, and it is possible that our systems will be stressed if you wait until Friday night causing unexpected behavior and long wait times. Try to start your projects on or before Monday each week to leave yourself time to ask questions. + +Outside of projects, you will also complete 3 Outside Event reflections. More information about these is in the "Outside Event Reflections" section below. +The Data Mine does not conduct or collect an assessment during the final exam period. Therefore, TDM Courses are not required to follow the Quiet Period in the https://catalog.purdue.edu/content.php?catoid=16&navoid=20089[Academic Calendar]. + +=== Projects + +* The projects will help you achieve Learning Outcomes #2-5. +* Each weekly programming project is worth 10 points. +* There will be 14 projects available over the semester, and your best 10 will count. +* The 4 project grades that are dropped could be from illnesses, absences, travel, family emergencies, or simply low scores. No excuses necessary. +* No late work will be accepted, even if you are having technical difficulties, so do not work at the last minute. +* There are many opportunities to get help throughout the week, either through Piazza or office hours. We’re waiting for you! Ask questions! +* Follow the instructions for how to submit your projects properly through Gradescope in Brightspace. +* It is ok to get help from others or online, although it is important to document this help in the comment sections of your project submission. You need to say who helped you and how they helped you. +* Each week, the project will be posted on the Thursday before the seminar, the project will be the topic of the seminar and any office hours that week, and then the project will be due by 11:55 pm Eastern time on the following Friday. See the schedule for specific dates. +* If you need to request a regrade on any part of your project, use the regrade request feature inside Gradescope. The regrade request needs to be submitted within one week of the grade being posted (we send an announcement about this). + +=== Outside Event Reflections + +* The Outside Event reflections will help you achieve Learning Outcome #1. They are an opportunity for you to learn more about data science applications, career development, and diversity. +* Throughout the semester, The Data Mine will have many special events and speakers, typically happening in person so you can interact with the presenter, but some may be online and possibly recorded. +* These eligible opportunities will be posted on The Data Mine’s website (https://datamine.purdue.edu/events/[datamine.purdue.edu/events/]) and updated frequently. Feel free to suggest good events that you hear about, too. +* You are required to attend 3 of these over the semester, with 1 due each month. See the schedule for specific due dates. +* You are welcome to do all 3 reflections early. For example, you could submit all 3 reflections in September. +* You must submit your outside event reflection within 1 week of attending the event or watching the recording. +* Follow the instructions on Brightspace for writing and submitting these reflections. +* At least one of these events should be on the topic of Professional Development. These events will be designated by "PD" next to the event on the schedule. +* This semester you will answer questions directly in Gradescope including the name of the event and speaker, the time and date of the event, what was discussed at the event, what you learned from it, what new ideas you would like to explore as a result of what you learned at the event, and what question(s) you would like to ask the presenter if you met them at an after-presentation reception. This should not be just a list of notes you took from the event—it is a reflection. +* We read every single reflection! We care about what you write! We have used these connections to provide new opportunities for you, to thank our speakers, and to learn more about what interests you. + + +=== Late Work Policy + +We generally do NOT accept late work. For the projects, we count only your best 10 out of 14, so that gives you a lot of flexibility. We need to be able to post answer keys for the rest of the class in a timely manner, and we can’t do this if we are waiting for other students to turn their work in. + +=== Grade Distribution + +[cols="4,1"] +|=== + +|Projects (best 10 out of Projects #1-14) |86% +|Outside event reflections (3 total) |12% +|Academic Integrity Quiz |1% +|Syllabus Quiz |1% +|*Total* |*100%* + +|=== + + +=== Grading Scale + +In this class grades reflect your achievement throughout the semester in the various course components listed above. Your grades will be maintained in Brightspace. This course will follow the 90-80-70-60 grading scale for A, B, C, D cut-offs. If you earn a 90.000 in the class, for example, that is a solid A. /- grades will be given at the instructor's discretion below these cut-offs. If you earn an 89.11 in the class, for example, this may be an A- or a B. +* A: 100.000% - 90.000% +* B: 89.999% - 80.000% +* C: 79.999% - 70.000% +* D: 69.999% - 60.000% +* F: 59.999% - 0.000% + + + +=== Academic Integrity + +Academic integrity is one of the highest values that Purdue University holds. Individuals are encouraged to alert university officials to potential breaches of this value by either link:mailto:integrity@purdue.edu[emailing] or by calling 765-494-8778. While information may be submitted anonymously, the more information that is submitted provides the greatest opportunity for the university to investigate the concern. + +In TDM 10200/20200/30200/40200/50100, we encourage students to work together. However, there is a difference between good collaboration and academic misconduct. We expect you to read over this list, and you will be held responsible for violating these rules. We are serious about protecting the hard-working students in this course. We want a grade for The Data Mine seminar to have value for everyone and to represent what you truly know. We may punish both the student who cheats and the student who allows or enables another student to cheat. Punishment could include receiving a 0 on a project, receiving an F for the course, and incidents of academic misconduct reported to the Office of The Dean of Students. + + +*Good Collaboration:* + +* First try the project yourself, on your own. +* After trying the project yourself, then get together with a small group of other students who have also tried the project themselves to discuss ideas for how to do the more difficult problems. Document in the comments section any suggestions you took from your classmates or your TA. +* Finish the project on your own so that what you turn in truly represents your own understanding of the material. +* Look up potential solutions for how to do part of the project online, but document in the comments section where you found the information. +* If the assignment involves writing a long, worded explanation, you may proofread somebody’s completed written work and allow them to proofread your work. Do this only after you have both completed your own assignments, though. + +*Academic Misconduct:* + +* Divide up the problems among a group. (You do #1, I’ll do #2, and he’ll do #3: then we’ll share our work to get the assignment done more quickly.) +* Attend a group work session without having first worked all of the problems yourself. +* Allowing your partners to do all of the work while you copy answers down, or allowing an unprepared partner to copy your answers. +* Letting another student copy your work or doing the work for them. +* Sharing files or typing on somebody else’s computer or in their computing account. +* Getting help from a classmate or a TA without documenting that help in the comments section. +* Looking up a potential solution online without documenting that help in the comments section. +* Reading someone else’s answers before you have completed your work. +* Have a tutor or TA work though all (or some) of your problems for you. +* Uploading, downloading, or using old course materials from Course Hero, Chegg, or similar sites. +* Using the same outside event reflection (or parts of it) more than once. Using an outside event reflection from a previous semester. +* Using somebody else’s outside event reflection rather than attending the event yourself. + + +The link:https://www.purdue.edu/odos/osrr/honor-pledge/about.html[Purdue Honor Pledge] "As a boilermaker pursuing academic excellence, I pledge to be honest and true in all that I do. Accountable together - we are Purdue" + +Please refer to the link:https://www.purdue.edu/odos/osrr/academic-integrity/index.html[student guide for academic integrity] for more details. + +=== xref:fall2023/logistics/syllabus_purdue_policies.adoc[Purdue Policies & Resources] + +=== Disclaimer +This syllabus is subject to small changes. All questions and feedback are always welcome!