Answers.Body: <p>In my experience, there is less 'overhead' with R, especially if you use incredible resources like Intro to Data Science&lt;<a href="https://rafalab.github.io/dsbook/" rel="nofollow noreferrer">https://rafalab.github.io/dsbook/</a>> and R for Data Science&lt;<a href="https://r4ds.had.co.nz/" rel="nofollow noreferrer">https://r4ds.had.co.nz/</a>> You can more quickly focus on data wrangling, visualization and stats. I think R is more bang for the buck in terms of getting at data and meaning. Rstudio/ the R community is very supportive, resourceful and smart. In my first Intro to DS class I had thought I would focus on Python but as I experimented I found that I did indeed need to spend much more time teaching syntax and that took away from the focus on the work.    For my 'natural born programmer' students, they like Python.  For my new students- coming in to work with data but not coming from a programming background- they really like R.  The tidyverse has been a godsend (ggplot, dplyr and other libraries) and  the libraries/resources for spatial data are awesome.  There is no wrong decision- but I think in future I will stick to R for Intro. Eventually, if professional, one needs more than one language but you'll never get to be a professional if you don't get a start!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-04-08T21:09:00.393Z
Answers.LastActivityDate: 2019-04-08T21:09:00.393Z
Answers.UserDisplayName: linnea2357
Answers.Body: <p>Python is more widely used in industry and is a general programming language, so will be more advantageous for students. </p>
  
  <p>R will be useful if your students aim primarily for life sciences and/or academic jobs. But even there Python is used extensively.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-26T19:01:30.820Z
Answers.Text: Thanks for the reply. I should clarify that in the certificate program, they get experience with both. The question is more about which is better to start with.
Answers.UserDisplayName: Kevin Buffardi
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-26T15:02:46.623Z
Answers.LastActivityDate: 2019-03-26T15:02:46.623Z
Answers.UserDisplayName: Brendenw
Answers.Body: <p>As for me, Python is the best thing for entering to Data Science. As you see, among Python is a very popular, mainstream general-purpose programming language, it also has an extensive range of purpose-built modules and community support. Many online services provide a Python API.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-28T17:48:17.777Z
Answers.Text: Why do you think that a general-purpose programming language would be more appropriate to learn first in data science, rather than a language specifically for statistical analysis?
Answers.UserDisplayName: Kevin Buffardi
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-29T07:38:26.317Z
Answers.Text: Don't judge me, but this learning system was imposed on me by my university, and this is much easier for me now.
Answers.UserDisplayName: Edanprovidence
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-29T12:44:20.627Z
Answers.Text: By "online service with a Python API", you mean Python packages dedicated to interacting with a Web API like [plot.ly](http://plot.ly)? R already has similar things out of the box with R shiny.
Answers.UserDisplayName: lucasgcb
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-29T17:32:56.427Z
Answers.Text: @Edanprovidence sorry no judgment was intended, I was just trying to better understand your reasoning. I appreciate your input.
Answers.UserDisplayName: Kevin Buffardi
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-28T11:43:02.243Z
Answers.LastActivityDate: 2019-03-28T11:43:02.243Z
Answers.UserDisplayName: Edanprovidence
Answers.Body: <p>The biggest strength of R when it comes to Data Analysis is in its <strong>data visualization</strong>. As you've mentioned it is a more or less <strong>dedicated tool for statistical analysis</strong>. </p>
  
  <p>The thing with Python is that <strong>you can easily go a bit off course</strong> with the lectures because for Statistical Analysis <strong>you'll have to understand, install and work with different libraries/APIs</strong> for plotting (matplotlib/pandas/plotly) and processing your data (scipy/pandas again/numpy). These may take different approaches for installing and working with besides being tools on their own.</p>
  
  <p><strong>RStudio already sets up everything for you</strong> for the most part so you can just focus on implementation; if you happen to need something extra installing packages from CRAN is incredibly easy letting you do it from the script itself rather than opening a terminal with <code>conda</code> or <code>pip</code> or whatever.</p>
  
  <p>My notes:</p>
  
  <ul>
  <li>If your interest is teaching <strong>more Data Science, as a tool in itself</strong>, go with R. It will let you focus more on concepts which are general.</li>
  <li>If you're interested in teaching General Programming as <strong>a tool for Data Science</strong> and maybe other things, go with Python. </li>
  <li>If you like both ideas, <strong>I'd start with R and replicate results with Python later</strong> to show its integration with different tools. This way your students will see both approaches are feasible in the case they go out there and see it in the job market.</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-29T14:01:13.240Z
Answers.Text: Nice answer. Welcome to the site.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-29T12:30:49.393Z
Answers.LastActivityDate: 2019-03-29T12:30:49.393Z
Answers.UserDisplayName: lucasgcb
Body: <p>Next term, I'm going to teach an introductory Data Science class for the first time. In the past, others have taught it in either R or Python. My first inclination was to teach it in R because the language is specifically for statistics (and not a general programming language like Python). However, I see a lot of promise in Python's Pandas library. I haven't used Pandas myself, but I have more than enough time that I could familiarize myself with it.</p>
  
  <p>What are your thoughts on R vs Python vs a bit of both? </p>
  
  <p>Ultimately, the Data Science curriculum exposes students to both. Which do you think is more appropriate to begin?</p>
  
  <p>Course details:</p>
  
  <ul>
  <li><p>Prereqs include CS1 (C++) and Statistics</p></li>
  <li><p>Topics include the analytics life cycle, data integration and
  modeling, relational databases and SQL, text processing and sentiment
  analysis, and data visualization. Emphasis is placed on reproducible
  research, code sharing, version control, and communicating results to
  a non-technical audience.</p></li>
  <li><p>First of two DS classes as part of a DS certificate (Minor is &lt;
  Certificate is &lt; Major) with predominantly Comp Sci and Stats majors
  enrolled</p></li>
  <li><p>I am currently teaching the Advanced DS class (the follow-up course)
  with a concentration on R, but that could potentially change in the
  future as well. Sooner or later, if they complete the certificate, they will get experience in both R and Python. The question is which comes first.</p></li>
  <li><p>I can choose the textbook, but will give strong preference to free,
  online resources</p></li>
  </ul>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-22T19:48:17.140Z
Comments.Text: Do the students already know Python or something similar? CS students usually do by the time they get to such a course.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-24T20:54:47.797Z
Comments.Text: The only language they're guaranteed to have previous exposure to is C++. *Some* other students may have exposure to other languages (Python included), but not all students are CS students because the course is in a cross-disciplinary Data Science certificate program (math and cs).
Comments.UserDisplayName: Kevin Buffardi
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-27T22:11:31.987Z
Comments.Text: What matters are abstractions. That's application types & libraries. The Python syntax & semantics you would need are straightforward in this respect.
Comments.UserDisplayName: philipxy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-28T00:11:23.600Z
Comments.Text: @philipxy strikes me that while the syntax between Python and R are a bit different, neither the syntax nor semantics are wildly different when it comes to most intro to DS topics. However, I don't think language choices are irrelevant to curriculum design, in particular when trying to cover both languages and determine the most appropriate order.
Comments.UserDisplayName: Kevin Buffardi
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-05T14:06:25.783Z
Comments.Text: Often, these languages are used together.  There is no "vs."
Comments.UserDisplayName: ncmathsadist
Tags: <curriculum-design><language-choice>
Title: Thoughts on language for Intro to Data Science?
ThreadText: # Thoughts on language for Intro to Data Science?
  
  (Asked by: username_0 on 2019-03-22)
  
  Next term, I'm going to teach an introductory Data Science class for the first time. In the past, others have taught it in either R or Python. My first inclination was to teach it in R because the language is specifically for statistics (and not a general programming language like Python). However, I see a lot of promise in Python's Pandas library. I haven't used Pandas myself, but I have more than enough time that I could familiarize myself with it.
  
  What are your thoughts on R vs Python vs a bit of both?
  
  Ultimately, the Data Science curriculum exposes students to both. Which do you think is more appropriate to begin?
  
  Course details:
  
  * Prereqs include CS1 (C++) and Statistics
  * Topics include the analytics life cycle, data integration and
    modeling, relational databases and SQL, text processing and sentiment
    analysis, and data visualization. Emphasis is placed on reproducible
    research, code sharing, version control, and communicating results to
    a non-technical audience.
  * First of two DS classes as part of a DS certificate (Minor is <
    Certificate is < Major) with predominantly Comp Sci and Stats majors
    enrolled
  * I am currently teaching the Advanced DS class (the follow-up course)
    with a concentration on R, but that could potentially change in the
    future as well. Sooner or later, if they complete the certificate, they will get experience in both R and Python. The question is which comes first.
  * I can choose the textbook, but will give strong preference to free,
    online resources
  
  **Tags:** curriculum-design, language-choice
  
  > **Comments:**
  > **username_1**: Do the students already know Python or something similar? CS students usually do by the time they get to such a course.  
  > **username_0**: The only language they're guaranteed to have previous exposure to is C++. *Some* other students may have exposure to other languages (Python included), but not all students are CS students because the course is in a cross-disciplinary Data Science certificate program (math and cs).  
  > **username_2**: What matters are abstractions. That's application types & libraries. The Python syntax & semantics you would need are straightforward in this respect.  
  > **username_0**: @username_2 strikes me that while the syntax between Python and R are a bit different, neither the syntax nor semantics are wildly different when it comes to most intro to DS topics. However, I don't think language choices are irrelevant to curriculum design, in particular when trying to cover both languages and determine the most appropriate order.  
  > **username_3**: Often, these languages are used together.  There is no "vs."  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_7 on 2019-03-29. Score: 8 | Accepted answer
  
  The biggest strength of R when it comes to Data Analysis is in its **data visualization**. As you've mentioned it is a more or less **dedicated tool for statistical analysis**.
  
  The thing with Python is that **you can easily go a bit off course** with the lectures because for Statistical Analysis **you'll have to understand, install and work with different libraries/APIs** for plotting (matplotlib/pandas/plotly) and processing your data (scipy/pandas again/numpy). These may take different approaches for installing and working with besides being tools on their own.
  
  **RStudio already sets up everything for you** for the most part so you can just focus on implementation; if you happen to need something extra installing packages from CRAN is incredibly easy letting you do it from the script itself rather than opening a terminal with `conda` or `pip` or whatever.
  
  My notes:
  
  * If your interest is teaching **more Data Science, as a tool in itself**, go with R. It will let you focus more on concepts which are general.
  * If you're interested in teaching General Programming as **a tool for Data Science** and maybe other things, go with Python.
  * If you like both ideas, **I'd start with R and replicate results with Python later** to show its integration with different tools. This way your students will see both approaches are feasible in the case they go out there and see it in the job market.
  
  > **Comments:**
  > **username_1**: Nice answer. Welcome to the site.  
  
  ---
  
  ### Answer by username_4 on 2019-04-08. Score: 2
  
  In my experience, there is less 'overhead' with R, especially if you use incredible resources like Intro to Data Science<<https://rafalab.github.io/dsbook/>> and R for Data Science<<https://r4ds.had.co.nz/>> You can more quickly focus on data wrangling, visualization and stats. I think R is more bang for the buck in terms of getting at data and meaning. Rstudio/ the R community is very supportive, resourceful and smart. In my first Intro to DS class I had thought I would focus on Python but as I experimented I found that I did indeed need to spend much more time teaching syntax and that took away from the focus on the work. For my 'natural born programmer' students, they like Python. For my new students- coming in to work with data but not coming from a programming background- they really like R. The tidyverse has been a godsend (ggplot, dplyr and other libraries) and the libraries/resources for spatial data are awesome. There is no wrong decision- but I think in future I will stick to R for Intro. Eventually, if professional, one needs more than one language but you'll never get to be a professional if you don't get a start!
  
  
  ---
  
  ### Answer by username_5 on 2019-03-26. Score: 1
  
  Python is more widely used in industry and is a general programming language, so will be more advantageous for students.
  
  R will be useful if your students aim primarily for life sciences and/or academic jobs. But even there Python is used extensively.
  
  > **Comments:**
  > **username_0**: Thanks for the reply. I should clarify that in the certificate program, they get experience with both. The question is more about which is better to start with.  
  
  ---
  
  ### Answer by username_6 on 2019-03-28. Score: 0
  
  As for me, Python is the best thing for entering to Data Science. As you see, among Python is a very popular, mainstream general-purpose programming language, it also has an extensive range of purpose-built modules and community support. Many online services provide a Python API.
  
  > **Comments:**
  > **username_0**: Why do you think that a general-purpose programming language would be more appropriate to learn first in data science, rather than a language specifically for statistical analysis?  
  > **username_6**: Don't judge me, but this learning system was imposed on me by my university, and this is much easier for me now.  
  > **username_7**: By "online service with a Python API", you mean Python packages dedicated to interacting with a Web API like [plot.ly](http://plot.ly)? R already has similar things out of the box with R shiny.  
  > **username_0**: @username_6 sorry no judgment was intended, I was just trying to better understand your reasoning. I appreciate your input.  
  
  ---
  
  