/datasciencectacontent

repository for Community Mentor content related to the Johns Hopkins University Data Science Specialization on Coursera

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

Data Science Specialization Community Mentor Content Repository

Author: Len Greski

This repository contains content developed during my time as either a student or Community Mentor in the Data Science Specialization from Johns Hopkins University that is offered over Coursera. A number of people have developed content to help students work through the ten courses in the specialization. The main index for community generated content across the Specialization is datasciencespecialization.github.io.

Repository Contents

As a participant and Community Mentor in courses in the curriculum, there are patterns of similar issues experienced by students. Migrating the content to github will facilitate reposting it to new runs of courses within the curriculum. This will make it easier for students to have access to the experiences from prior students without me having to regularly cut and paste content from past sessions into Discussion Forums, which are the primary mechanism for communication between students and Community Mentors.

FileDescription
/markdownDirectory containing markdown files, the primary form of documentation for the content in the repository.
/markdown/imagesDirectory containing portable network graphics files, which are used to illustrate the narrative content in other documentation.
README.mdFile explaining the purpose and contents of the repository, listing of links to specific content by course.

The remainder of this document serves as a directory of the content, aligning individual documents with the course(s) for which the content is relevant.

Course 1: Data Scientist's Toolbox

  1. Course Prerequisites and Difficulty Levels Provides an overview of the Data Science Specialization courses, explaining from a practical perspective the courses a student needs as prerequisites to other courses. While students may take more than one class at a time, it's important to know how information from earlier courses is used in subsequent ones.

    The article also ranks the difficulty levels from most to least difficult, based on the author's experience in the curriculum as well as Discussion Forum feedback contributed by other students.
  2. Configuring RStudio to work with git / github - Mac OSX
  3. Configuring RStudio to work with git / github - Windows 7, 8, and 10
  4. Using Editor Modes in Discussion Forum Posts
  5. Buying a Computer for Data Science
  6. R and RStudio on Chromebook
  7. Installing R and RStudio on Chromebook Walkthrough demonstrating how to install R and RStudio on a Chromebook with Crouton and Ubuntu Linux.

Issue: Students Struggle to find URLs in Lecture Slides

If you're interested in the URLs for the lecture slides, they are available in the Data Science Specialization Courses github repository. Each course is stored in a subdirectory within the repository, and the slides are built in R Markdown language, a technique you'll learn in Reproducible Research.

Miscellaneous Articles about Data Science

  1. The Future of Data Analysis by John Tukey, 1962 paper where he challenges statisticians to move away from ever more complicated mathematics to tackle data analysis problems in more realistic ways.
  2. 50 Years of Data Science by David Donoho, a 2015 retrospective on John Tukey's 1962 paper.

Course 2: R Programming

START HERE

If you're new to the course and trying to figure out what to do in what order, start with these articles.

  1. Resources for R Programming Provides a summary of student-generated content to support the course, some of which is indexed on the Data Science Specialization's github.io site
  2. References for R Programming Provides a list of references for R programming, ranging from beginning to advanced topics.
  3. Data Science Specialization: what is the value? Addresses a common question raised by students in R Programming who are frustrated by the amount of work they have to do on their own to complete quizzes and assignments.
  4. Swirl: common problems & getting help Discusses a couple of frequent problems students have getting swirl to work on their computers, and provides URLs to support from the creators of swirl.
  5. R versus Python Roundup of articles and surveys comparing R and Python, including usage, history, and pros / cons.

The next set of articles includes general commentary about the course, R programming in general, and R in relationship to other statistics packages.

  1. Commercial Statistics Packages: An Historical Perspective
  2. Configuring RStudio to work with git / github - Mac OSX
  3. A Data Frame is Also a List
  4. Forms of the Assignment Operator
  5. Forms of the Extract Operator
  6. S Objects, R Objects, and Lexical Scoping
  7. Thinking in R versus Thinking in SAS
  8. Strategy for the Programming Assignments
  9. Why is R More Difficult than SAS?
  10. R Onboarding for SAS Users
  11. References for R Programming Provides a list of references for R programming, ranging from beginning to advanced topics.
  12. Object Oriented Programming and R Explains how object oriented programming concepts are implemented in R, in response to a student question about accessing content output by the R linear models function, lm().
  13. Scoping in C/C++ vs. R Compares variable scoping in R versus C/C++.

Posts regarding specifics of programming assignments

  1. Assignment 1: Breaking Down Pollutantmean
  2. Assignment 1: A SAS Version of Pollutantmean
  3. Assignment 1: Common Mistakes - Weighted vs. Unweighted Means
  4. Assignment 1: Common Mistakes - complete("specdata",332:1) fails
  5. Assignment 1: A More Elegant Solution
  6. Assignment 2: Demystifying makeVector
  7. Assignment 2: makeCacheMatrix as an Object
  8. Assignment 2: Using Github Desktop
  9. Assignment 2: Grading the SHA-1 Hash Code
  10. Assignment 3: Functions to Sort Data Frames

Miscellaneous Code Examples and Instructions

  1. Permanently Setting R Working Directory Link to R-bloggers.com article that explains how to set your working directory permanently in R (instead of RStudio)
  2. Tutorial: Downloading Files Illustrates various ways of downloading files, including binary and text files.
  3. Creative Use of R: Downloading Course Lectures Article illustrating how to use R to automate the download of lectures from Data Science Specialization courses, such as R Programming. Techniques used in this article are helpful to make research reproducible, as required for courses like Getting and Cleaning Data and Reproducible Research.
  4. How to Upgrade R without Losing Your Packages article by Kris Eberwein on datascienceriot.com that includes code to save your list of packages to an rds file, and reinstall any packages that don't make it through the upgrade process.
  5. Common R Mistakes: Overwriting R Functions with Output Variables
  6. R Programming Cheat Sheet Based on content from R for Everyone by Jared Lander.

Interesting R News and Blog Articles

  1. R vs. Python: 2016 Survey of Software used for Data Science Overview of results from a 2016 KDNuggets Software Poll, written by Gregory Piatetsky. The follow up article with expanded analysis is What Big Data, Data Science, Deep Learning software goes together, also on kdnuggets.com.
  2. R and Python vs. SAS and SPSS Jeroen Kromme's take on strengths and weaknesses of these languages, posted on r-bloggers.com.
  3. Scaling R for Data Science August 2016 article by Federico Castanedo explaining three ways to scale R.
  4. Lexical Scoping and Statistical Computing Article by Robert Gentleman and Ross Ihaka at the University of Auckland describing how lexical scoping works, and why it is valuable in statistical computing.
  5. Data Science Job Report 2017: R Passes SAS, But Python Leaves Them Both Behind Bob Muenchen's take on the job market for various data science langauges.
  6. Redmonk Programming Language Rankings: June 2018 Steven O'Grady's analysis of popularity of programming languages, based on their activity on Github and Stackoverflow.
  7. IEEE 2018 Language Rankings R-bloggers article highlighting the 2018 IEEE programming language rankings.

Course 3: Getting and Cleaning Data

  1. Week 1: Demystifying HTML Parsing: Baltimore Ravens Game Scores
  2. Real World Example: Importance of Getting and Cleaning Data Illustrates what happens when we use data to make inferences when we don't understand the errors and/or limits of data collection and cleaning. Taken from a chart posted on Twitter during August 2017 by a company that sells data visualization software
  3. Real World Example: Reading American Community Survey data Illustrates concepts covered in Getting and Cleaning Data with U.S. Census data, including how to process a hierarchical file format in R, as well as using an electronic codebook to generate the parameters required to read the data file into a data frame.
  4. Common Problems: Quiz 1 - Missing Java Runtime Explains how to solve the problem of a missing Java Runtime for the question that requires students to process a Microsoft Excel spreadsheet.
  5. Strategy for Reading Files & APIs / Quiz 2
  6. Common Problems: Quiz 2 - sqldf() driver fails to connect
  7. Definitive Guide to Week 2 Question 5 A comprehensive guide to understanding the final question the week two quiz, including a detailed codebook for the data set.

Articles and Content Related to Getting and Cleaning Data

  1. Tidy Data Hadley Wickham's paper on Tidy Data, required reading for the course project.
  2. data.table Github Wiki Repository for data.table package, including video.
  3. Tutorial: Downloading Files Illustrates various ways of downloading files, including binary and text files.

Course 4: Exploratory Data Analysis

  1. Assignment 1: Reading a Subset of Raw Data
  2. CONCEPTS: Strategies for Imputing Missing Values

Course 5: Reproducible Research

  1. Assignment 2 Checklist
  2. Configuring knitr to Retain Markdown Output Explains how to configure knitr so that markdown file and any associated graphics are retained after building an HTML document, so they can be uploaded to Github and viewed there.
  3. Assignment 2: Improving Runtime Performance of Initial Data Load

Course 6: Statistical Inference

  1. Reference Materials for Statistical Inference Start here if you're looking for help on the statistical techniques taught in this course.
  2. Using MathJax with Discussion Forums, R Markdown, and Github Pages
  3. CONCEPTS: Calculating Area for a Point on the Normal Curve Explains why one cannot calculate the exact proability for a specific value within a distribution for a continuous variable.
  4. CONCEPTS: Variance of a Binomial Distribution Explains why the calculation for variance of a binomial distribution during the Variance lecture looks different than the way it is described in Wikipedia.
  5. Poisson Confidence Interval Explained Explains the formulas on slide 26 of the Asymptopia lecture, illustrates the differences in two calculations on slide 27.
  6. Power Calculations: Optimal Sample size
  7. Permutation Tests Explained

Articles Related to the Course Project

  1. Exponential Distribution / Central Limit Theorem - Assignment Checklist
  2. ToothGrowth Analysis - Assignment Checklist
  3. Exploratory Data Analysis in ToothGrowth Assignment, explaining the exploratory data analysis requirement for students who have not taken the Exploratory Data Analysis course prior to taking Statistical Inference.
  4. Accessing R Code from an Appendix in Knitr
  5. Theoretical Variance of Sampling Distribution of the Mean
  6. Kable Tables with Data Frames illustrates how to display a custom table in a knitr() document by creating a data frame to contain the information to be rendered with kable().
  7. Installing MiKTeX on Windows 10 / Generating a PDF with knitr
  8. Commentary on Factorial Design in Toothgrowth Analysis Illustrates how to conduct a full factorial analysis of variance with the toothgrowth data, comparing it to the techniques used in the course project for Statistical Inference.
  9. Knitr Reference Online reference maintained by Yihui Xe an RStudio engineer who wrote the knitr package.

Course 7: Regression Models

  1. Regression Models References List of reference materials for the course, including pointers to chapters on regression analysis in some of the books I cited for the Statistical Inference course.
  2. Why does sum of errors * X equal 0?
  3. Using MathJax with Discussion Forums, R Markdown, and Github Pages

Course 8: Practical Machine Learning

  1. Week 3: Installing Rgtk2 and Rattle on OS X
  2. Week 4: Combining Predictors Math Explained
  3. Course Project - gh-pages Setup with RStudio
  4. Course Project - Improving Runtime Performance of Random Forest Models with caret::train()
  5. Course Project - Predicting Test Scores based on Training Model Accuracy

Course 9: Developing Data Products

  1. Configuring shinyapps.io Application Timeout A walkthrough on how to configure a Shiny application so it doesn't waste the free monthly server processing time.

Course 10: Capstone

  1. Speech and Language Processing, 3rd Edition Working version of Jurafsky, et. al. book on natural language processing whose content on n-grams is helpful for the capstone.
  2. n-gram Computations and Computer Capacity Explains the amount of memory required to convert the text files for the course project into n-grams, using the quanteda package.
  3. Capstone Strategy Describes a general strategy to get through the Capstone: use the simplest approaches possible.
  4. Choosing a Text Analysis Package Reviews pros and cons of various R packages used for natural language processing, in the context of requirements for the Capstone project.
  5. Common Problems: Running out of Memory Converting Document Feature Matrix to Regular Matrix

Content for Community Mentors

  1. Tips for New Community Mentors A list of tips for new mentors supporting the Data Science Specialization, ranging from when to direct students to paid / professional resources such as the Coursera Learner Help Center, to how to optimize the value of content that is posted by mentors.