STAT545-UBC / Discussion

Public discussion
38 stars 20 forks source link

Our experience with swirl #10

Closed jennybc closed 10 years ago

jennybc commented 10 years ago

@STAT545-UBC/students @STAT545-UBC/owners

In the first 1.5 weeks I encouraged students to check out swirl.

R novices may have found this very helpful. Does it complement or replace the early STAT 545 content on R basics? How did the installation process go?

Intermediate R users … what did you think? How smooth was your experience? Can anyone see a module or lesson that's missing and that you might want to offer? That would definitely count towards the 10% engagement mark, as it is contributing back to the "learn R" community.

Please weigh in here.

Hey @ncarchedi here is where the UBC STAT class is documenting our experience with swirl. This may be all we do or maybe some people will take it further, i.e. contribute a lesson?

Creagh commented 10 years ago

The swirl package was easy to install and navigate through. I found that it complemented well the early material on R basics, but I would have liked to seen more lessons on plotting data and creating figures.

I wish that I had something like this when I first started using other programming languages.

DataMikeStats commented 10 years ago

Seems to take the Codecademy approach to learning the language, which seems to be very popular. Having it within the R environment rather than a browser is a much better approach though, because it doesn't feel like toy code.

DanielRandles commented 10 years ago

It's useful, but probably can't replace all lecture time. What might be helpful is assigning people to go through it before the course starts (or over the first week between classes) and then having just one (or two) lectures dedicated to addressing questions, points of confusion, etcl.

On Wed, Sep 17, 2014 at 12:09 PM, DataMikeStats notifications@github.com wrote:

Seems to take the Codecademy http://www.codecademy.com/ approach to learning the language, which seems to be very popular. Having it within the R environment rather than a browser is a much better approach though, because it doesn't feel like toy code.

— Reply to this email directly or view it on GitHub https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-55944349 .

santina commented 10 years ago

Pretty useful. I think it could help speed up the course progress if everyone can go through them before class. I find it very helpful to take notes while I was going through the tutorial so to make a reference for myself. Each tutorial is nicely titled so you know what to expect. The length is quite short too, so not only it is rewarding to finish each one but it can be a quick reminder tool for people like me who have done R before but haven't touched it for a while....

Also second DataMikeStats, it definitely feels better than Codeacademy because the pace is much straightforward and faster.

Some suggestions (How I have been learning R):

  1. go to the swirl repository and download all the tutorials (not just the beginner one, but all of them) and go through them. At least it's quite helpful for someone like me who is kind of rusty on basic statistical terms and prefer learning by doing.
  2. To get further help/further educated, check out the R-programming course on Coursera. It's part of John Hopkin's Data Science Specialization series . You only need to pay if you want a certificate, all the courses there are free to take and let you join a bigger forum than just within our class.

Just some great resources people can take advantage of. I feel like the more we can learn outside of class, the more productive our class discussion/activities will be.

yisui commented 10 years ago

Thanks santina for sharing the study tips!

Agree with santina. I also feel swirl is better than Codeacademy. I like swirl keeps an interaction after each step and it keeps each topic in a very short length. I remembered when I used Codeacademy to self-study Python, I felt a little bit overwhelming with the long section. I think swirl should be very handy for new R users.

IreneDing commented 10 years ago

I am not very familiar with R. But Swirl is definitely a very useful to help me learn R. I installed the package and tried some of its lessons. Since it is integrated in R, I don't have to switch between screens to type in something while learning. Every step is short in length and easy to understand. It forces you to understand what is taught and type in certain code, otherwise you are not able to continue, which is great for new people to R. It is absolutely very helpful to use swirl as a supplementary source to our course.

On Sep 17, 2014, at 11:45 AM, "Jennifer (Jenny) Bryan" notifications@github.com wrote:

@STAT545-UBC/students @STAT545-UBC/owners

In the first 1.5 weeks I encouraged students to check out swirl.

R novices may have found this very helpful. Does it complement or replace the early STAT 545 content on R basics? How did the installation process go?

Intermediate R users ¡­ what did you think? How smooth was your experience? Can anyone see a module or lesson that's missing and that you might want to offer? That would definitely count towards the 10% engagement mark, as it is contributing back to the "learn R" community.

Please weigh in here.

¡ª Reply to this email directly or view it on GitHub.

abrarwafa commented 10 years ago

I really liked swirl and I wish I knew about it when I first started learning about R. It's really easy to install and get started with! It teaches you the basics of R in a very effective way, simple and interactive, where it makes you try and if you get something wrong it would tell what did you miss. It's also nice that they have the option to quit and save your work whenever you want.

I definitely would recommend R novices to check it out!

blacksde commented 10 years ago

I'd like to share some of my thoughts of learning R.

I think learning R should be combined with learning models. Grammar of R is not complicate, but what make R powerful is the models it can analyze and different packages it provides. Learning models and corresponding R code will help you have a deep understanding of R.

I'd like to provide two sources of learning R with models.

Hope my suggestions would help.

DanielRandles commented 10 years ago

I'm not disagreeing with the above (in fact I'm in agreement of it, before suggesting we could get to models faster) but many people who do not have experience with script writing find R very difficult to learn and need some help with the basics. Arguably one of the weak points in the psychology dept.'s attempting to teach it, is that we spend too little time discussing what the language is, and try to jump write into copy/pasting models.

Dan

On Thu, Sep 18, 2014 at 12:51 AM, Zichun Ye notifications@github.com wrote:

I'd like to share some of my thoughts of learning R.

I think learning R should be combined with learning models. Grammar of R is not complicate, but what make R powerful is the models it can analyze and different packages it provides. Learning models and corresponding R code will help you have a deep understanding of R.

I'd like to provide two sources of learning R with models.

Hope my suggestions would help.

— Reply to this email directly or view it on GitHub https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-56005886 .

galotalp commented 10 years ago

I definitely enjoyed taking the first three swirl courses. The tutorials aren't only fun, but they cover the basics in a very holistic way so that almost nothing is skipped. I learned some things that I didn't know after having used R for the past 4 years. Thanks for introducing me to this!

dchiu911 commented 10 years ago

I found the tutorials pretty fun, educational, and easy to learn! The progress bar implementation was a good way to encourage people to finish a module as well. Material taught in each course is explained very thoroughly and is easy to pick up. I enjoyed how everything was done within RStudio, with swirl automatically placing objects in the workspace, opening scripts for you, etc.

yyolanda commented 10 years ago

The swirl courses are good! It's always nice to practice writing code by my own while learning from other sources. The topics are useful as well. Besides swirl, personally, I feel like a brief tutorial or review on regular expressions will also help =)

Yolanda

jennybc commented 10 years ago

@yyolanda Regular expressiosn will come, but later in the semester. We start out working with relatively "clean" data and then will loop back to discuss cases when data needs more preparation.

yyolanda commented 10 years ago

@jennybc That's awesome!! I didn't realize that it is actually listed in the upcoming topics. I'm so sorry, my bad..lol I just happened to think of regular expressions today and found myself forgetting most of them.. Thank you for pointing that out!

omaromeir commented 10 years ago

It's a really nice way to learn R. I was particularly fond of the way it asks questions mid-lesson and checks answers, I also really liked that it shows you how much progress you've made and how much is left. Admittedly, I only went through a couple of the simple lessons but I would be up to using it down the road if I need a refresher.

ncarchedi commented 10 years ago

Hi Everyone -- I have read all of your comments. Thank you so much for the wonderful feedback on swirl. I'm very pleased to hear that you've found it to be a helpful addition to your course. Please let me know if there's anything I can do to help now or in the future.

@blacksde Regarding model-building in R, you may find our Regression Models course to be helpful.

@yyolanda We plan to add a lesson on regular expressions within the next couple of months. Lessons on logic and writing functions are also forthcoming (hopefully 2-3 weeks).

Looping my co-developers into this thread: @seankross @wilcrofter @reginaastri

jennybc commented 10 years ago

@blacksde and @DanielRandles

I have bumped into this issue before and have clearly come down on the side of developing R competence and data sense separate from developing knowledge of statistical models and/or the ability to fit models in R. I find doing both at the same time quite hard and often results in people writing highly sub-optimal R code to fit models they don't really understand. And then it's hard to know what to prioritize as an instructor.

Plus, if I can't bring real data into R and sanity check it, I have no business fitting those models anyway :smirk:

jennybc commented 10 years ago

Thanks everyone for trying swirl and contributing here!

@ncarchedi @seankross @wilcrofter @reginaastri Congrats on building a great tool -- I look forward to seeing how it develops and taking more advantage of it in my own teaching.

I think it looks like no one is going to contribute a lesson or anything like that, so I guess this where things end. For now. Closing.

WilCrofter commented 10 years ago

@jennybc --extremely interesting and valuable. Thank you.

Re: bringing real data into R and sanity checking it. Forming a repository/directory of interesting, open access, data and literature for convenient swirl and other educational use is an item in my queue. It will be a while before I get to it, but would welcome any comments you or watchers of this repo would care to offer.

jennybc commented 10 years ago

@WilCrofter I have an intermediate-term goal of making my Gapminder excerpt a proper R data package. I extracted this excerpt several years ago and have been using lots and have even seen it crop up elsewhere. While it's good to learn importing it from delimited file, I'd also love to make it available as a proper dataset.

I agree that good lists of non-iris, non-cars, non-diamonds data are much needed! It would be nice to have them graded re: "cleanliness" because you sometimes you need clean data and sometime you need dirty! Depends on what you are trying to teach. In fact, we need more datasets of well-characterized dirtiness. Are you also aware of testdat? I remember @karthik expressing a similar need for organized list of datasets for their development and demonstration needs.

WilCrofter commented 10 years ago

Jenny,

Thanks for the quick and informative reply. I had naively thought, for instance, that all data should be clean and convenient. (I have never taught in a classroom and have no feel for the art at all.) Also, I was not aware of testdat; thanks for the link.

My wife and I are retired math and computer science people working on swirl, a related project started by our son (https://github.com/SashaCrofter/swirlypy), and are currently preparing for a brain imaging project also headquartered at Johns Hopkins. Being retired, hence relatively free (in both senses,) I expect to fit all these projects in, eventually.

Thanks again to you and your students.

Bill Bauer

n Mon, 22 Sep 2014 13:25:18 -0700 "Jennifer (Jenny) Bryan" notifications@github.com wrote:

@WilCrofter I have an intermediate-term goal of making my Gapminder excerpt a proper R data package. I extracted this excerpt several years ago and have been using lots and have even seen it crop up elsewhere. While it's good to learn importing it from delimited file, I'd also love to make it available as a proper dataset.

I agree that good lists of non-iris, non-cars, non-diamonds data are much needed! It would be nice to have them graded re: "cleanliness" because you sometimes you need clean data and sometime you need dirty! Depends on what you are trying to teach. In fact, we need more datasets of well-characterized dirtiness. Are you also aware of testdat? I remember @karthik expressing a similar need for organized list of datasets for their development and demonstration needs.


Reply to this email directly or view it on GitHub: https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-56437142

seankross commented 10 years ago

Hi @jennybc

I just read through this and it's all amazing feedback! I recently wrote a data package and I certainly think that data packages can be used to teach data analysis faster by eliminating the data cleaning step. Of course data cleaning is an important skill in its own right! I love the idea of a repository of data packages graded on cleanliness. Maybe curating such a list could become part of the swirl project? @ncarchedi what do you think about including install.data.packages() in swirl? Should it be a separate package all together?

WilCrofter commented 10 years ago

Hey, Sean,

I'm game; I'd love to help create a curated data repo(s). I'd vote for separate from swirl but at swirldev: small pieces loosely joined and all. I'd also like to include interesting examples of each data set's use. (I love your Lego package BTW.)

Cheers, Bill

On Tue, 23 Sep 2014 09:58:14 -0700 Sean Kross notifications@github.com wrote:

Hi @jennybc

I just read through this and it's all amazing feedback! I recently wrote a data package and I certainly think that data packages can be used to teach data analysis faster by eliminating the data cleaning step. Of course data cleaning is an important skill in its own right! I love the idea of a repository of data packages graded on cleanliness. Maybe curating such a list could become part of the swirl project? @ncarchedi what do you think about including install.data.packages() in swirl? Should it be a separate package all together?


Reply to this email directly or view it on GitHub: https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-56553006

karthik commented 10 years ago

Hi @jennybc! That would be fantastic! Yes I have still been thinking about having data packages in R, much like what Hadley has done with the Houston flights (hflights) dataset (and others).

I also agree that it would be nice to have some scale of clean to dirty for use in different contexts.

One repo I particularly like is what John Myles White set up for Julia. https://github.com/johnmyleswhite/RDatasets.jl

Something like that for non-mtcars/iris/diamonds would be great. Especially for teaching various courses like Data/Software Carpentry, among others.

So definitely count me in to help.

Cheers,

On Tue, Sep 23, 2014 at 2:16 PM, William R Bauer notifications@github.com wrote:

Hey, Sean,

I'm game; I'd love to help create a curated data repo(s). I'd vote for separate from swirl but at swirldev: small pieces loosely joined and all. I'd also like to include interesting examples of each data set's use. (I love your Lego package BTW.)

Cheers, Bill

On Tue, 23 Sep 2014 09:58:14 -0700 Sean Kross notifications@github.com wrote:

Hi @jennybc

I just read through this and it's all amazing feedback! I recently wrote a data package and I certainly think that data packages can be used to teach data analysis faster by eliminating the data cleaning step. Of course data cleaning is an important skill in its own right! I love the idea of a repository of data packages graded on cleanliness. Maybe curating such a list could become part of the swirl project? @ncarchedi what do you think about including install.data.packages() in swirl? Should it be a separate package all together?


Reply to this email directly or view it on GitHub:

https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-56553006

— Reply to this email directly or view it on GitHub https://github.com/STAT545-UBC/Discussion/issues/10#issuecomment-56591258 .