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
The variable assignment section should include a small section on basic naming convention (e.g. camel case vs. .
vs. _
)
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
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.
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
The line beginning:
dataframe1 <- data.frame(numeric_col…
clips off the right hand side of the page.
The data types chapter should include a brief explanation of the NA and NULL values and the differences.
Following the change to a "For Teachers" and "For Students" approach, the chapter numbers given in the introduction are no longer valid.
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.
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.
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.
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.
Topic title: Answers
Why it should be added: Questions without answers would be really annoying
I can't find where it's explicitly stated that []
returns the container and can therefore have more than one index
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.
Topic title: learnr
exercises
Why it should be added: Adding learnr
exercises for readers to do in their own time will likely improve retention
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
"you're" should be "your".
Make it explicit (not just implicit from the examples) that indexing in R starts at 1.
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.
Due to the restructuring, the presentations and the chapters don't really align.
Inline code in Chapter 3.3.3 Integer is appearing at the bottom of the paragraph.
Topic title: Summary
Why it should be added: A conclusion/summary chapter would help bring everything together
The .Rmd file for side 1 of the cheat sheet is missing from GitHub... Not sure where that's gone...
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.
Slide 17 of Module 1 clips off the bottom of the screen after the
variable_1
line.
The conflicted
package is referred to as conflict
in 4.2.3 Scope
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.
"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/
The output of a code chunk in 3.3.4 Character is not what it's supposed to be.
The list of input parameters in 3.6.1.2.1 Explicit input parameters is incorrectly indented.
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
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.
The output on slide 6 of the Tidyverse module (module 4) clips off the bottom 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):
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?
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
Move the exercises and cheat sheets and presentations to the teacheR-extras repository
Slide 26 in Module 1 clips off the bottom of the page from line:
vector1[c(1:5,7)]
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.
A description of the dplyr::filter()
function is referenced but not present in Module 4
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.