Code Monkey home page Code Monkey logo

teacher's People

Contributors

arawles avatar arawles64 avatar swapnil-2001 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

teacher's Issues

Variable naming conventions

The variable assignment section should include a small section on basic naming convention (e.g. camel case vs. . vs. _)

Reference to `shiny`

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

Vectorised functions

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.

[Correction] Change package name references to `{package}`

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

New section: Creating objects in S3

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.

Chapter Restructure

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.

Module 1 slide 28 text off page

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.

New topic: Answers

Topic title: Answers
Why it should be added: Questions without answers would be really annoying

[] and [[]] indices

I can't find where it's explicitly stated that [] returns the container and can therefore have more than one index

New topic: Implicit Conversion

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.

Add learnr exercises

Topic title: learnr exercises
Why it should be added: Adding learnr exercises for readers to do in their own time will likely improve retention

Questions and Tasks

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

Indexing (from 0)

Make it explicit (not just implicit from the examples) that indexing in R starts at 1.

Splitting chapters

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.

New topic: Summary

Topic title: Summary
Why it should be added: A conclusion/summary chapter would help bring everything together

New topic: Programming

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.

[Correction] Better description of `<<-`

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.

Weird mathjax error

The output of a code chunk in 3.3.4 Character is not what it's supposed to be.

New topic: Vectors

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.

Module 4 Slide 6 clip

The output on slide 6 of the Tidyverse module (module 4) clips off the bottom of the page

Correction: Matrices are just vectors with a dimension

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):

is(Date) or class(Date)

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?

New topic: Expressions

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

Improve teaching around function return values

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.

dplyr::filter missing

A description of the dplyr::filter() function is referenced but not present in Module 4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.