Giter VIP home page Giter VIP logo

good-enough-practices's People

Contributors

alee avatar aromanowski avatar dimmestp avatar emma-wilson avatar ewallace avatar flicanderson avatar ggrimes avatar jendaub avatar jjyh avatar lexnederbragt avatar matthiasmimault avatar ppxasjsm avatar tobyhodges avatar tzielins avatar zkamvar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

good-enough-practices's Issues

Add exercise on README files

README files are fundamental to this lesson, so it would help to have an exercise about them.

We could either

  • have an exercise to write a README file for a directory?
  • have an exercise comparing some README files for a directory?
  • some mixture, we we have one and the exercise is to improve it?

There are also some great links about how to write a good (project) README file.

Examples at awesome-readme

Add instructor notes

I can already add some points to instructor notes:

  • discussions are useful for sharing best practice within the group
  • we found small discussions of 2-5 people effective, at a table or in a breakout room
  • then the instructor can
  • it is more effective if people learn from multiple peers than just from the "instructor"
  • personal horror stories, such as "I lost a month's worth of data because I hadn't backed it up", are useful in dicussion help to motivate learners
  • personal success stories, such as "I started scripting my data analysis and it saved me lots of time", also help to motivate
  • if you have git users in the group, they may want to talk about how git solves all the problems. Be prepared to steer the conversations back to the material and suggest that learners take a git workshop in the future.

I'll get started on that document as I seem to be writing it already.

Create box containing 'what we should include in a change log' for Track Changes lesson

Currently information on what should be included in a change log entry is currently spread throughout the lesson, and quite short.

For ease of instructing (and learning!) it would be good to pull these out into one callout box, or a headed section, which pulls together a bullet pointed list of the things which we DO want to include in our change log entries. What we don't want to cover is a section further below, but it would be good to highlight what we DO want.

Rewrite conclusion episode

The conclusion section is not very coherent in its current form, and would I think be better if shorter.

Probably:

  • include links to other resources, e.g. ten simple rules for computational research as link
  • remove the "funders recommendations" and other parts of the "good enough practices paper that don't directly pertain to learners
  • add discussion for "most important thing you learned today"?

Add basic lesson information to README and so on

We need to add the basic information, as recommended in the lesson template README:

  • Decide on a title for your new lesson!
    Once you've chosen a new title, you can set the value for lesson_title
    in _config.yml
  • Add the URL to your built lesson pages to the repository description*
  • Fill in the fields marked FIXME in:
  • If you're going to be developing lesson material for the first time
    according to our design principles,
    consider reading the [Carpentries Curriculum Development Handbook][cdh]
  • Consult the [Lesson Example][lesson-example] website to find out more about
    working with the lesson template
  • [ ] If you are planning to write your lesson in RMarkdown,
    [create a main branch and set this as the default branch in your repository settings][change-default-branch]
  • Update the repository README with relevant information about your lesson
    and delete this section

I am creating the new branch basic-info-1 for these.

Cover different directory structures for different kinds of data?

The Good Enough Practices paper suggests a directory structure focused on programming projects:

Project organization
a. Put each project in its own directory, which is named after the project.
b. Put text documents associated with the project in the doc directory.
c. Put raw data and metadata in a data directory and files generated during cleanup and analysis in a results directory.
d. Put project source code in the src directory.
e. Put external scripts or compiled programs in the bin directory.
f. Name all files to reflect their content or function.

This suits some projects but not others; for example, some data collection projects might be best served with a date-based directory structure 01-Jan, 02-Feb, ...

Jennifer Bryan argues for date-based naming in how to name files.

After discussing this on 29th March, I think we should:

  • give other alternative project organization strategies
  • argue that the organization needs a minimum level of consistency and documentation to be helpful
  • mention project templates that can set up the same directory structure repeatedly, e.g. github project templates

Instructor notes on notepad vs discussion

@tzielins proposed a change to the instructor notes. Most of the discussion sections can be done several ways:

  • whole-group discussion
  • small-group discussions (breakout rooms)
  • collaborative document

Different approaches can work with different groups based on the time available.

We recommend as an efficient approach: ask learners to fill in their responses in the collaborative document, and the instructor can then read out highlights to lead and steer a group discussion.

Hackathon 2, 11th August 2021, to bring lesson truly up to alpha status

This follows the successful earlier hackathon #32. Hackathon runs 09:30-12:00, email or tag me to get the zoom link if you're coming and don't have it.

My suggested timing
09:30 - All meet, triage major issues and decide what to focus on.
10:00 - work on separate issues in breakout rooms
10:45 - coffee break
11:00 - resume in breakout rooms?
11:45 - meet in main room to evaluate progress and congratulate ourselves.
12:00 - end.

I'm not sure what to focus on, beyond #55 which definitely needs progress?
Maybe timings #33?

Edinburgh-specific information to Edinburgh-only branch

Let us put Edinburgh-specific resources (e.g datavault) on a new branch edinburgh-specific, so that we keep them, but they don't end up on the main worldwide carpentries-incubator branch.

Eventually it might make more sense to put them in a fork elsewhere that has its own gh-pages branch and website.

Clarify how many exercises per chapter

This depends on the timings (#33).

We discussed there being 5 chapters that want exercises. Either 1 exercise, or 1 main and 1 optional

  • data management
  • software
  • collaboration
  • keeping track of changes
  • manuscripts

Add timings for teaching

The aim of this lesson is to be a 3-hour carpentries-style half-day lesson.

We need to add timings for all the episodes that reflect this.

Addressing DOIs in software episode?

Today, I wondered if we should remove DOIs as a "key point" in the software episode. Yes, it is a key point of the data management episode. But I don't think it needs to be emphasized so much in the software, and distracts from the episode's focus:

that readable, reusable, and testable are all side effects of writing modular code.

So I favour removing/de-emphasizing.

What do you think @tzielins @aromanowski @ameynert @egountouna ?

Distinguish project README from directory README?

Current material talks about 2 different kinds of README.md

  • project README that gives an overview of the project
  • directory README that tells you about the contents of a directory

These both have in common that they are an aid to navigation that tells you what you need to know. Read me first still applies, for either a whole project or a component of it. We should probably draw a conceptual distinction between these.

Fix "some git resources"

The "some git resources" section in 06-track_changes isn't lining up properly when rendered. Probably needs bullet points.

Also would benefit from nice titles/links in markdown style.

Introduction episode

Give the introduction episode a clearer narrative.

Currently it is still bullet points from slides so doesn't quite hang together.

Combine resources with conclusions episode?

I am wondering if it makes sense to have 09-resources as a separate episode, or instead to just include a list of other resources in the 08-conclusions episode.

Also, we could be less generous in linking to the resources, is it too much?

In-line display of figures

Make figures display in-line in website.

This did not work when I previewed locally with `bundle exec jekyll serve, instead giving me links to the figures. It needs to be checked on github pages after merging.

Explain discussions better.

Discussions should be with "the person next to you" or "with a small group", and have suggested timings.

Some of them may also be recast as challenges

Add funding information

Add funding information to README, as already in fair-bio-practice.

We are developing this lesson as part of the ED-DaSH consortium, supported by the "Data driven life science skills development - equipping society for the future" UKRI-MRC grant MR/V039075/1.

Fix citation links

Links to papers , e.g. #wickham2014, were not working when I made the website locally using bundle exec jekyll serve. We need to go through and fix those.

Add exercise: a poorly-organized project directory

I think "project organization" could use an example project directory displaying some problems. Could be used for a discussion about what doesn't work. Then contrasted with one that is well organized?

In 05-project_organization

Feedback from 2021-09-17

EW delivered to CDT-BAI 1st year students with helper Sandy Nelson, on 2021-09-17.
Started at 10:05, coffee break 11:15, resumed 11:30, ended 12:30. In that time we covered the introduction, Data management, and Software sections, with a little on "What next". The students mostly seemed to have previous software experience so was on the more skilled end of the crowd.

Instructor feedback (EW)

Good:

  • interesting discussions with good engagement
  • great discussions about how to really do good practices as habits and motivations for that
  • plenty of "lived experience"
  • nice section about data management
  • good discussion on open data formats
  • good discussion around tidy data
  • surprising discussion about functions vs object oriented
  • tests can be examples of usage as well as documentation

Bad:

  • uneven engagement on collab doc, some people turned their cameras off
  • more strategic use of breakout rooms could keep people engaged
  • timing was pretty bad, our estimates are unrealistic
  • it is difficult to teach from the big blocks of text in the current lesson, they can be cut down a lot.
  • I agree with the student feedback that we need more thorough overview at the beginning.

Student Feedback

One thing you would keep about today's workshop:

  • student involvement
  • shared working document
  • hearing examples from experience
  • hearing everyones lived experiences and all the tools out there

One thing you would change about today's workshop:

  • add actual implementation of best practices
  • time to cover the other material (or links to read up on them in own time)
  • provide specific toy examples of an issue (e.g more code snippets/diagrams),
  • more of an overview of the whole session and key topics to discuss before getting started

Create learner profiles focused on half-day workshop

Create learner profiles focused on a half-day "good enough practices in research computing" workshop. These are complementary to the learner profiles that @tzielins and @aromanowski have created for the longer "FAIR science in practice" workshop.

@ppxasjsm and @JenDaub have agreed to contribute to learner profiles.

I started a new branch learner-profiles-5, and added a profile to _extras/learner-profiles.md

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.