Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 7.92 KB

dss-mentorTips.md

File metadata and controls

26 lines (20 loc) · 7.92 KB

Tips for Community Mentors

In summer of 2016, a number of Community Mentors were added to the Johns Hopkins University Data Science Specialization on Coursera. Since there are 10 courses in the Specialization, new mentors have been asking the same question, "What tips can experienced mentors share with us?"

I have served a mentor for The Data Scientist's Toolbox periodically and R Programming consistently since September 2015, and for Statistical Inference and Practical Machine Learning since February 2016. As of March 2017 I have mentored courses across the entire Specialization. For those of you who have asked about tips on mentoring, here goes...

  1. Collect your best posts into markdown files within a github repository or github.io website, and instead of retyping them into Discussion Forum posts, post a link to your markdown file / web page. Your content has value, and you should treat it like an asset.

  2. PRO TIP: if you want to track how many people read the content from your posts, use bit.ly or another URL shortening service to convert the URLs into bitlinks, and post the bitlinks into the Forum posts. Example: Buying a Computer for Data Science.

  3. Tag your posts in the forums with an explanatory tag, such as [TIPS] to let people know that the initial post at the top of the thread is an answer instead of a question. Make sure you pin posts starting with [TIPS] so students can see the tips across sessions.

  4. Feel free to only answer questions you're comfortable with. Remember, you're a volunteer, and even when students become aggressive with their questions ("...Hey, is a TA out there?" or "TAs, go fix this..."), you are not obligated to answer every question posted by the students.

  5. You're also not obligated to defend the content in the Specialization. I've seen lots of students express frustration about the difficulty of the assignments in R Programming during the three years I have served as a mentor, and for some, no amount of reasoning is going to convince them that you have to employ more of a hacker mentality in a $49 class instead the $3,310 for the same course in meat space at Johns Hopkins University.

  6. The most helpful posts include example code and/or screen captures that illustrate the points you've made in the text of your post. Tools like Snagit or the Mac OSX screen capture utility are invaluable to help students visualize how to solve a problem.

  7. If you have to edit content from a student's post that violates the Coursera Honor Code, it's helpful to put *** Edited to comply with Coursera Honor code *** in the areas you've edited so people know the post has been edited.

  8. It's worth the investment to develop a quality article. Students really appreciate the effort. After months of watching students struggle with lexical scoping in R Programming and answering individuals' questions, I finally got around to writing Demystifying makeVector(). I was amazed by the response it received. The other benefit is that the more you have to explain concepts to the students, the more you learn, so it's a win / win situation.

    Also, it's a good idea to periodically review the articles you've written, and incorporate new content. I've updated this article about half a dozen times since I initially wrote it in late August 2016, including refactoring the original version that was a response to a post in a Discussion Forum into a formal article stored on github.

  9. The act of writing a well-researched article helps solidify key concepts in your long-term memory, because you're practicing the material, as described by Dr. Barbara Oakley in the Coursera course, Learning How to Learn.

    As an illustration of this concept, we learn different forms of the extract operator in R Programming by watching Professor Peng use them in the course lectures. However, the lectures don't explain why to use one form instead of another, you have to abstract the pattern from the specific uses on your own.

    It's a big leap from watching the lectures to figuring out how lexical scoping works in Programming Assignment 2. Writing Demystifying makeVector() really helped me understand the value of the $ form of the extract operator because it drove home the importance of the it as a way to extract named elements from a list. That is, extracting named elements is required to implement the object oriented feature of encapsulation into R.

    I am familiar with a number of object oriented languages, but due to the way that this content is introduced by example in the assignment, I had to do a considerable amount of outside research to grok the idea that what's really going on in the lexical scoping assignment is that we're learning how to create the S3 form of objects in R, as I describe in makeCacheMatrix() as an Object.

  10. If you've saved your prior posts from the classes you've taken (a feature that was available in the old version of the Coursera platform), it's worthwhile to re-read them for content that's worth posting again, such as the post that I culled from an archived forum post from my time as a student in Statistical Inference, Buying a Computer for Data Science.

  11. Monitor student responses to your posts, and adjust as needed. For example, I've added a Frequently Asked Questions section to Demystifying makeVector(), so students don't have to read the entire discussion thread to see answers to the most frequently asked questions about this article.

  12. Build and maintain an index to your content, so you and the students can access your articles in a logical manner. Often, the best way to do this is with a README file in a Github repository.

  13. If the classes for which you are mentoring provide a website on which you can post content such as datasciencespecialization.github.io, take advantage of this, and if possible, get recognized as a contributor.

  14. Finally, know where to set boundaries that distinguish the help you can provide versus questions best handled by paid or expert resources. If a student asks questions about why her/his browser won't load a course video, that's a question best handled by the Coursera Learner Help Center. Don't hesitate to encourage students to use it.

    Another area that generates lots of student questions is R packages and swirl. If a student has problems with swirl terminating with an error message, often the problem can be resolved by having the student upgrade to the latest versions of R and swirl. If this doesn't fix the problem, send the student to the swirlstats.com help page for additional assistance.

    A related area is the use of third party support for packages such as caret in Practical Machine Learning. For example, in August 2016 the code in the Principal Components Analysis lecture stopped working, and ultimately the culprit was a bug in a recently released version of caret. Sometimes these types of problems are very hard to figure out, because the students assume the problem lies with the code posted by the lecturer, not the updates to R packages that have been deployed since the professors wrote and executed the code when they recorded the lectures.

In summary, leverage the time you invest as a Community Mentor not only to help students solve specific problems they encounter, but also to create a repository of valuable content and to enhance your own learning.

Updated: 1 January 2019