arawles / teacher Goto Github PK
View Code? Open in Web Editor NEWAn introduction to the R statistical computing programming language
Home Page: https://teacher.arawles.co.uk
License: GNU General Public License v2.0
An introduction to the R statistical computing programming language
Home Page: https://teacher.arawles.co.uk
License: GNU General Public License v2.0
Topic title: Expressions
Why it should be added: Although I don't want to get too much into metaprogramming, I think understanding expressions would be important from a teaching role
On slide 10 of Module 4, the R comment starting #we could...
' extends off the right hand side of the page.
There is a missing closing bracket in 4.1.3 Functions as objects
What to add: Questions and tasks for each topic
Why it should be added: Works well in R4DS, keeps the reader interested and enhances retention
Topic title: learnr
exercises
Why it should be added: Adding learnr
exercises for readers to do in their own time will likely improve retention
Chapter/Section: Multiple
Text to be corrected:
Why two I hear you ask?
...it would automatically convert strings to characters unless otherwise specified.
Correction:
"Why two '='?", I hear you say.
...it would automatically convert strings to factors unless otherwise specified.
Why? (If applicable):
The line beginning:
dataframe1 <- data.frame(numeric_col…
clips off the right hand side of the page.
The list of input parameters in 3.6.1.2.1 Explicit input parameters is incorrectly indented.
"you're" should be "your".
Chapter/Section: Multiple
Text to be corrected: Rstudio
Correction: Posit (previously RStudio)
Why? (If applicable):
The functions section for the Teachers needs to include a reference to the idea of vectorised functions. At the very least, there needs to be an explicit reference to how passing a vector to a function goes.
Topic title: Implicit Conversion
Why it should be added:
Understanding why, for example, "TRUE" == TRUE
gives TRUE
in R can be really useful for people starting out. It would also fit nicely in with the data types chapter.
Chapter/Section: All
Text to be corrected: References to packages
Correction: References to package names should be changed to be enclosed in curly braces to match the opeRate style
Why? (If applicable): It makes it easier at a glance to understand what's code and what's reference to a package
"By default, when importing from Excel, the origin date is January 1st 1970, also known as the "epoch date"." Pretty sure that Excel doesn't use that as the epoch date: https://www.r-bloggers.com/date-formats-in-r/
In slide 28 of Module 1, the text from line starting:
dataframe_1 <- data.frame(numeric_col = c(1,2)…
extends off the right hand side of the page.
Chapter/Section: 3.4.4
Text to be corrected: Unlike vectors, matrices are 2 dimensional. In fact, matrices resemble something a bit like a watered down version of a spreadsheet or table.
Correction: Something like "Matrices are two dimensional but all the values have to be of the same type. In fact, a matrix is basically just a vector with dimensions. etc etc
Why? (If applicable):
Chapter/Section: Dates
Text to be corrected:
Correction:
Why? (If applicable):
Date parsing is slightly different now to when this was written, so it needs to be updated
Topic title: Summary
Why it should be added: A conclusion/summary chapter would help bring everything together
Given that there is no is.Date()
function, and is(Date)
returns the inheritance of the objects whereas class(Date)
returns just date
, is it better to recommend just using class()
even if it goes against the is.x
stuff?
A description of the dplyr::filter()
function is referenced but not present in Module 4
Currently in Module 3, some of the examples of user-defined functions use print()
statements, rather than relying on the returned value. I worry that this is not representative of how functions should be used and is misleading for the students.
Instead, there should be a clear delineation of the importance of the returned value, noting that the print()
function can be useful interactively, but isn't really something to be relied upon for returning.
With all the new information and text in the book, the chapters are going to need restructuring.
The only reason I'm hesitant is that this will mean that the presentations no longer align with the text in terms of order of content.
Slide 26 in Module 1 clips off the bottom of the page from line:
vector1[c(1:5,7)]
Chapter/Section: Multiple
Text to be corrected:
Correction:
Why? (If applicable):
It's probably confusing referencing a package that's no longer on CRAN
The output of a code chunk in 3.3.4 Character is not what it's supposed to be.
Chapter/Section: 6.4 Character (first paragraph)
Text to be corrected: {r, error = TRUE} "5" + 5
Correction:
Why? (If applicable):
As the book grows, as does the level of complexity and the topics that are discussed. For instance, I didn't envision chapters on objects or inheritance in a book for beginners.
To remedy this (and to align the content better with the title), could the book be split into two sections? A "For a student" and "For a teacher" section. To learn R, you don't need to know what an object is, or what inheritance or environments are. But if you're teaching R to someone, then the questions that they're going to ask will at least require an understanding of these concepts to avoid confusion. This way, those that are interested in the theory and underpinnings of R can access the information easily, whilst those who are not interested are not bombarded with "you don't have to read this bit" statements.
Move the exercises and cheat sheets and presentations to the teacheR-extras repository
The variable assignment section should include a small section on basic naming convention (e.g. camel case vs. .
vs. _
)
Slide 17 of Module 1 clips off the bottom of the screen after the
variable_1
line.
Topic title: Answers
Why it should be added: Questions without answers would be really annoying
Due to the restructuring, the presentations and the chapters don't really align.
Topic title: Programming
Why it should be added: Getting students comfortable with iteration and conditional loops is important so teachers should be comfortable with how they work.
I can't find where it's explicitly stated that []
returns the container and can therefore have more than one index
The conflicted
package is referred to as conflict
in 4.2.3 Scope
The .Rmd file for side 1 of the cheat sheet is missing from GitHub... Not sure where that's gone...
Chapter/Section: "Super" assignment
Correction: The chapter talks about <<-
assigning to the global environment but this isn't always the case, as is then demonstrated by the example. How <<-
works; by searching through parent environments for an existing definition of the variable being assigned. If such a variable is found (and its binding is not locked) then its value is redefined, otherwise assignment takes place in the global environment.
Why? (If applicable): Current description is unclear.
Following the change to a "For Teachers" and "For Students" approach, the chapter numbers given in the introduction are no longer valid.
The output on slide 6 of the Tidyverse module (module 4) clips off the bottom of the page
Inline code in Chapter 3.3.3 Integer is appearing at the bottom of the paragraph.
Topic title: Vectors
Why it should be added: As vectors are so important, explaining concepts like recycling and coercion might be important from teaching perspective.
Currently, all slides render with R code already displayed.
To allow the slide (and the code) to be rendered incrementally, {.build} needs to be appended to each slide title.
Make it explicit (not just implicit from the examples) that indexing in R starts at 1.
Topic title: Creating an object in S3
Why it should be added: Having a section called "Creating objects" and then only having a paragraph where you say "you can make them, but I'm not going to show you" is a bit of a cop out really. At least go through the simple process of building an S3 object.
The data types chapter should include a brief explanation of the NA and NULL values and the differences.
In the intro, it's referenced that later on in the book we'll look at the shiny
package but this has now been moved to opeRate
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.