Code Monkey home page Code Monkey logo

courses-introduction-to-version-control-with-git's Introduction

Introduction to Version Control with Git

Version control is the beating heart of every productive programmer's workflow. It allows people to keep track of what they've done, and to share what they're currently doing with colleagues. This course is an introduction to version control with Git for data scientists who can already use the Unix shell to run simple commands and edit text files.

Step 0: Learner Profiles

Please see the DataCamp Learner Profiles for details.

  • Anya has been using Subversion on the Unix command line for years, but has never used Git. This course will show her the similarities and differences between the two.

  • Catalina will take this course herself if she has time, as it would help her with her own research, but it is too advanced for her students.

  • Jasmine has never used version control, and has only just completed DataCamp's "Introduction to the Unix Shell". Most of the ideas in this course will be new to her. She will be disappointed to discover that Git doesn't handle Microsoft file formats cleanly.

  • Thanh has used Git from inside RStudio, but has never branched or merged. This course will show him what's going on under the hood when he does a commit, and how to collaborate with colleagues through GitHub.

  • Yngve already knows the material in this course.

Step 1: Concept Map

Basic Git Concepts

Step 2: Summative Assessment

  1. Clone the Git repository whose URL you have been given.
  2. View the changes made in the most recent commit.
  3. Create a new branch called rewriting-conclusion and switch to it.
  4. In that branch, remove every occurrence of the word "not" from the last paragraph of the file report.txt.
  5. Commit your changes with the log message "Correcting conclusions".
  6. While still in that branch, pull in the content of the rewriting-intro branch from the repository you cloned.
  7. Merge the changes in that branch with the changes you just made, keeping your changes to the last paragraph and all of their changes to the other paragraphs.
  8. Push the merged to a newly-created branch called rewriting-conclusion in the repository you cloned.

Step 3: Formative Assessments

Looking at history

Go into the directory dental and look at its history.

  1. What is the log message of the most recent commit?
  2. Who made that commit?

Credit and blame

  1. Go into the directory dental.
  2. How many different commits have been made to report.txt?

Viewing differences

  1. Go into the directory dental.
  2. What files were added in the most recent commit?
  3. How many lines were changed in the file data/western.csv in the most recent commit that affected it?

Creating a new repository

  1. Create a directory called workspace.
  2. Use git init to initialize Git in that directory.
  3. Move the four data files from dental/data to the top level of workspace, add them, and commit the change with "Starting to use Git" as the log message.

Saving changes

  1. Go into the directory dental.
  2. Add a line containing the data shown below to the file eastern.csv. Do not add any blank lines before or after this line.
  3. Commit your change with the log message "Adding September's data."
2017-11-30,bicuspid

Undoing changes

  1. Go into the directory dental.
  2. Undo the most recent two commits.

Listing branches

  1. What branches are there in the directory dental?
  2. Which of these branches are you currently on?

Comparing branches

  1. Go into the directory dental.
  2. Compare the contents of the master branch with the summary-statistics branch.
  3. Which files contain differences?

Creating branches

  1. Go into the directory dental.
  2. Create a new branch called restarting.
  3. Delete the file report.txt in that branch and commit your changes without affecting any other branch. Leave restarting as the active branch when you are finished.

Merging without conflicts

  1. Go into the directory dental.
  2. Merge the branch summary-statistics into the branch master using "Consolidating work" as the log message.

Merging with conflicts

  1. Go into the directory dental.
  2. Merge the branch alter-report-title-branch into the branch master.
  3. Resolve the conflicts so that the final title is "Dental Work by Season".
  4. Commit the reconciled version with the log message "Integrating changes".

Cloning repositories

Clone the repository file:///tmp/dental to create a repository called dental in your home directory.

Exploring remotes

  1. Go into the repository dental.
  2. Add a remote called upstream with the URL file:///tmp/dental.

Pulling in changes

  1. Go into the repository dental.
  2. Pull changes from the master branch of the remote upstream into the master branch of your repository.

Pushing changes

  1. Go into the repository dental.
  2. Delete the file report.txt.
  3. Commit your change with the log message "Getting rid of report".
  4. Push your change to the remote repository upstream.

Resolving remote conflicts

  1. Go into the repository dental.
  2. Pull changes from the master branch of the remote upstream into the `master branch of your repository.
  3. Resolve the conflicts in report.txt so that the title is "Final Report: Regional Dental Work".
  4. Commit your resolution with the log message "Integrating changes".

Step 4: Course Outline

  1. Viewing a project's history
    1. Viewing the log with git log
    2. Line-by-line history with git blame
    3. Log messages
    4. Viewing differences with git diff
    5. Naming commits with hashes
    6. Naming commits with HEAD~N
  2. Making changes
    1. Viewing work in progress with git status
    2. Saving changes to existing files with git add and git commit
    3. Adding new files with git add and git commit
    4. Canceling changes in progress
  3. Working with branches
    1. Listing branches with git branch
    2. Switching between branches with git checkout
    3. Viewing differences between branches
    4. Merging changes with git merge
    5. Recognizing conflicts
    6. Resolving conflicts
    7. Avoiding conflicts
    8. Undoing changes with git reset
    9. Undoing changes with git revert
    10. Tagging with git tag
  4. Managing repositories
    1. Initializing a repository with git init
    2. Ignoring files with .gitignore
    3. Viewing and configuring preferences with git config
    4. Listing remotes with git remote
    5. Adding and removing remotes
    6. Pulling from branches in remote repositories with git pull
    7. Pushing to branches in remote repositories with git push

The "datasets" are:

  1. A repository called dental with some history and branches. This repository will be in the user's home directory for most exercises; for others, it will be moved to /tmp/dental for the user to clone and/or set as a remote.

Step 5: Course Overview

Course Description

Version control is one of the power tools of programming. It allows you to keep track of what you did when, undo any changes you have decided you don't want, and collaborate at scale with other people. This lesson will introduce you to Git, a modern version control tool that is very popular with data scientists and software developers alike, and show you how it can help you get more done in less time and with less pain.

Learning Objectives

  • Explain the pros and cons of version control compared to alternatives like Dropbox and Google Docs.
  • Create new repositories and turn existing projects into repositories.
  • Configure basic settings in Git.
  • View and explain a repository's history.
  • Save changes to files.
  • Resolve conflicts that arise when changing files.
  • Create and navigate branches.
  • Undo changes to files.
  • Explain the relationships between commits, branches, and remote repositories.
  • Pull changes from, and push changes to, remote repositories.

Prerequisites

courses-introduction-to-version-control-with-git's People

Contributors

adelnehme avatar amy-datacamp avatar datacamp-content-creator avatar filipsch avatar gor181 avatar gvwilson avatar hermansje avatar isserp avatar jsaddlemyer avatar klmedeiros avatar machow avatar ramnathv avatar richierocks avatar shoninouye avatar sumedh10 avatar timsangster avatar

Stargazers

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

Watchers

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

courses-introduction-to-version-control-with-git's Issues

Different answers deemed correct | Chapter 4 Exercise 8

@Hadrien-lcrx commented on Thu Jan 25 2018

In How can I merge two branches with conflicts?, different commands for the first and last instructions are deemed correct.

Suggestions

Update the commands, hints and grader if this isn't expected behavior.

First instructions

"You are in the master branch of the dental repository. Merge the changes from the alter-report-title branch (the source) into the master branch (the destination)."

Solution code

git merge --no-edit -m "Merging altered report title" alter-report-title master

Alternative code

git merge alter-report-title master

Last instructions

"Commit your changes with a log message."

Solution code

git commit -m "Reconciling"

Alternative code (throws an error but passed the grader)

git commit -m 'resolved conflict' report.txt

Screenshot

Solution code

image

Alternative code

image

Cf [email protected], #83206
Cc @bakera81


@gvwilson commented on Wed May 16 2018

This belongs in the Git course, not the shell course (?).


@Hadrien-lcrx commented on Wed Jul 04 2018

@gvwilson would you have access to ZenHub to move the issue? Otherwise, maybe we should tag Yashas?

.. in diff command

In ch4 ec7d242138 the context and the hint say a user should use .. between the two branch names.
A user submitted feedback about achieving the same with just a space between branches.
Both are equivalent according to the git docs.

As the next exercise has a note about not using .., it might be clearer to not use it in this exercise as well?

Cannot configure Git for a second user in requirements.sh

requirements.sh contains these lines:

sudo useradd -m thunk
THUNK_HOME=/home/thunk
THUNK_REPO=${THUNK_HOME}/repo
THUNK_SUDO='sudo -u thunk'
THUNK_GIT="${THUNK_SUDO} git -C ${THUNK_REPO}"
${THUNK_SUDO} git config --global user.email "[email protected]"
${THUNK_SUDO} git config --global user.name "Thun Ka"

echo
echo "Contents of /home are now:"
ls -al /home
echo 'THUNK_REPO: ' ${THUNK_REPO}
echo 'THUNK_SUDO: ' ${THUNK_SUDO}
echo 'THUNK_GIT: ' ${THUNK_GIT}
echo 'sudo -u thunk git config user.name' $(${THUNK_SUDO} git config user.name)
echo 'sudo -u thunk git config user.email' $(${THUNK_SUDO} git config user.email)

The useradd appears to work (as evidenced by the creation of /home/thunk, but the attempt to configure Git for this user fails, so subsequent Git operations sudo'd by this user ID also fail:

[91mwarning: unable to access '/root/.gitconfig': Permission denied
warning: unable to access '/root/.config/git/config': Permission denied
error: could not lock config file /root/.gitconfig: Permission denied
�[0m�[91mwarning: unable to access '/root/.gitconfig': Permission denied
warning: unable to access '/root/.config/git/config': Permission denied
error: could not lock config file /root/.gitconfig: Permission denied
�[0m
Contents of /home are now:
total 16
drwxr-xr-x  5 root  root  4096 Sep 11 11:40 .
drwxr-xr-x 56 root  root  4096 Sep 11 11:40 ..
drwxr-xr-x  3 repl  repl  4096 Sep 11 11:40 repl
drwxr-xr-x  2 thunk thunk 4096 Sep 11 11:40 thunk
THUNK_REPO:  /home/thunk/repo
THUNK_SUDO:  sudo -u thunk
THUNK_GIT:  sudo -u thunk git -C /home/thunk/repo
sudo -u thunk git config user.name
sudo -u thunk git config user.email
�[91mCloning into '/home/thunk/repo'...
�[0m�[91mremote: warning: unable to access '/root/.config/git/attributes': Permission denied        
�[0m�[91mwarning: unable to access '/root/.config/git/attributes': Permission denied
�[0m�[91mwarning: unable to access '/root/.config/git/ignore': Permission denied
�[0m�[91mwarning: unable to access '/root/.config/git/attributes': Permission denied
�[0m�[91mwarning: unable to access '/root/.config/git/attributes': Permission denied
�[0m�[91m
*** Please tell me who you are.

cc @machow @ncarchedi

Disappointed student feedback

A student reached out with this first feedback:
"""
I am very disappointed in the GIT class you provide. It is very buggy, and not very clear. Many times I have to reload the page because the editor is stuck in a GIT log or something, and it is not clear how to get back to a command prompt. The lesson tutorials are poor and offer incomplete explanations. This class needs to be redone. It is much worse than anything else I have seen on datacamp.
"""

I asked for more details, and received this second reply:
"""
Appreciate the response, but I am not going to redo and debug the course for you. The editor crashes a lot, the lessons are poorly written, if you make a mistake you get out of $ prompts and don't know how to get back to $, some of the questions do not match the data, wrong answers are accepted as correct sometimes, etc.
"""

Cf [email protected], 93212
Cc @Robert-cabral

Non-content feedback from SGB

Keyboard bindings
This is a power user thing and not directly related to the git course per se, but being in the terminal makes the keyboard shortcuts tricky. Initially, the numbers change your answer, but the ENTER shortcut obviously goes to the terminal. This means that some of the normal keybindings work, and others don't. Also, it means you can't type certain numbers in the terminal. Then when you click the terminal, you can type those numbers but your answers don't change. I don't know what the right behavior is for this yet, but it does make it pretty much impossible for power users to go without clicking as they are used to.

Auto scroll
When there are many tasks on an exercise, I constantly have to click back to the left panel so that I can scroll down to see what the next task is, before clicking back into the terminal. There should be an auto-advance scrolling thingy that happens when a task is successfully completed.

ch5ex5 Can we ignore file://?

In ch5ex3 I cut the bit about file:// since git clone doesn't require it, so it's a distraction from the concept.

In ch5ex5, the SCTs don't pass without prefixing the remote URL with file://. What I'm not clear on is whether or not it's a legitimate thing to define a remote without this prefix. IF so, I'll have add that discussion of file:// back in here; otherwise I'll update the SCTs to not require them.

Stuck in Chapter 3 of course

Hi, I hope this is the correct place to ask about this. I am currently doing this course but I am stuck at this question:

image

image

Pretty sure I used the correct command, but I can't move on to the next question.

What can I do? Thanks!

Explain what should be in a commit

From @justmytwospence: "talk about what a commit should be (atomic, thematically related)? A misunderstanding of Git practices is one of the biggest problems DS have with version control in my experience, preventing them from getting the most out of it."

Problem is what exercise to set and how to grade it...

Confusing course material | Chapter 3 Exercise 5

@Hadrien-lcrx commented on Thu Jan 25 2018

In How do I restore an old version of a file?, the logs feature different comments and hashes, but they all have the exact same date. It makes it less easy to distinguish between them.

Suggestion

Update the logs to give them different times and dates.

Screenshot

image

Cf [email protected], #83206
Cc @bakera81


@gvwilson commented on Wed May 16 2018

This belongs in the Git course, not the shell course (?)


@Hadrien-lcrx commented on Wed Jul 04 2018

@gvwilson would you have access to ZenHub to move the issue? Otherwise, maybe we should tag Yashas?

Disappointed student feedback

A student reached out with the following feedback

I am very disappointed with this course. It was confusing, lacked context, and does not adequately explain GIT, much less prepare anyone to use it. A good example would be the consistent use of the same text for both commands and variables. Instead of "git pull origin repo", maybe "git pull "?

Overview feedback from Rasmus

Step 0: Learner Profiles

I'm not sure how to interpret these. Like, how would the fact that "Yngve already knows the material in this course" or that "Catalina will take this course herself if she has time" guide how you design the course?

Step 1: Concept Map

I think this type of concept map is great for the person doing it, if that person understands what it means. Personally I find it difficult to look at this and understand what's going on and how it relates to the course.

Step 2: Summative Assessment

Is this supposed to be a DataCamp exercise? If so, it seems like it includes to many steps for it to be possible to write as one exercise. Is it more like an example of a task that the student should be able to perform after having finished the course?

Step 3: Formative Assessments

All these seems like reasonable tasks.

Step 4: Course Outline

Is the course outline supposed to map to a DataCamp course outline? Is so it seems that there are either to many lessons (usually 4 per chapter) or too few exercises (usually 12-16 per chapter). Also, a DataCamp course is usually limited to 5 chapters.

Thoughts on the content:

  • Would feel natural to me that the course starts with checking out a project.
  • Something that needs to go somewhere (maybe in the videos) is the general philosophy/theory of version control in general and git specifically. Like, what is the problem with just sending e-mails, why was git created when subversion already existed, why is it called git, etc. Right now the course outline only seem to mention practical exercises.
  • Even if we can't use GitHub/gitlab it should be mentioned as the standard way people use git.
  • I've rarely used what's mentioned in "4. advanced features", but "6. Collaborating" is neccecary if you want to work with github. Even if we can't work with github in the actual course, there could be a video explaining how all that works.

Step 5: Course Overview

Great course description and learning objectives!

Feedback on course from HBA

hi @gvwilson , I have taken chapter 1 and I really love the (git) flow of it so far.

for reference, this is the version that I checked out just now: https://www.datacamp.com/courses/5734

Two general notes:

  • When I have a task to do but i would like to explore the directory first, it keeps telling me that I have made an Incorrect Submission. This is frustrating and annoying but perhaps that's because I'm accustomed, on DataCamp, to submitting solutions after exploration.
  • I would like to see some diagrams; e.g. staging area.

https://campus.datacamp.com/courses/5734/18386?ex=4

what is a commit ? you mention commits but I'm not sure they have been defined yet

no answer is accepted at the moment

https://campus.datacamp.com/courses/5734/18386?ex=6

what does 'change' mean in 'How many lines did it change in the file'?
from the output it looks as though > 1 line changed but 1 is the accepted answer

https://campus.datacamp.com/courses/5734/18386?ex=8

not sure how i was supposed to know to use cat

https://campus.datacamp.com/courses/5734/18386?ex=9

doesn't accept git commit -m 'Adding a reference.'

https://campus.datacamp.com/courses/5734/18386?ex=10

you say 'without the -C option' but i don't remember the -C option being mentioned

https://campus.datacamp.com/courses/5734/18386?ex=11

no answer is accepted. error messages are same as hint and not so helpful.

looking forward to next chapter.

Basic Operations feedback

I though I'd split up my feedback into lessons for easier digestibility.

ex2

  • The question on this page doesn't actually have anything to do with the content of the page. Also, is putting datasets in Git really something that we want to be recommending?

ex3

  • Maybe put the repo in a directory named "repos" or "repositories". Beginners might be wondering what the significance of the "repl" directory is.
  • Maybe say: "What is the message on the chronologically first entry in the log (which is displayed last)"
  • I had an error message submitting on this one: ``` Something went wrong. If the problem persists, please report an issue ``` When I restarted the session, it went back to the very beginning of the terminal, no to the `git log` part that I would expect it to.
  • When I exit the course and then opt to continue where I left off, the shell session similarly starts at the beginning.
  • Also, the output of `git log` goes to `more` or `less` or some other pager on the screen of my MacBook Air, many beginners wont know to scroll down (and I didn't think to either).
  • Actually, I can't get this one to submit at all, even after multiple tries.

ex5

  • None of the answers, including the correct one, are recognized as correct.

ex6

  • My terminal crapped out by itself after a few minutes on this page.
  • You should probably mention in this one that each changed file has that @@ line, followed by the additions and removals for that file. For a beginner, its very confusing what all the symbols mean, and the @@ directly pertains to the comprehension question.
  • No answers are recognized as correct.

ex7

  • I see that you explain the diff more here, but it still feels like I should have known this before the last question.
  • Which argument comes first - the hash or the filename?
  • No answers recognized as correct.
  • The incorrect submission hint talks about `git show ed0ec0`. I think this is the wrong hint.

ex8

  • Maybe link to the absolute path lesson from your shell course here?
  • No answers recognized as correct.

ex9

  • No answers recognized as correct.

ex10

  • Change wording of first sentence to: `git show` only shows the changes made since the previous commit.
  • "previous-but-two" is phrasing that I'm unfamiliar with, and probably others as well. Change to: "…between its current state and its state two commits previously". Or something like that.
  • No answers recognized as correct.

Higher level, pedagogical thoughts

Many of these commands in the first lesson don't play a huge role in an average data scientist's workflow. They aren't necessarily key to understanding the underlying concepts (arguably), and they are very dry and verbose, especially before beginners really understand how and why they would be looking at these particular details. Do you see value in starting from a more practical, workflow driven place?

Update the hints and the grader | Chapter 1 Exercise 12

In How do I write a better log message?, the hints are incoherent: they first match the instructions about not using the -m command, and then give an example where the -m command is used. Additionally, the exercise will complete even if the commit is aborted due to the absence of log message, or if the commit is done using the -m command.

Suggestion

Update the hints, the grader, and provide a template log message that should be added.

Screenshots

Incoherent hints

image

Exercise completes when commit is aborted

image

Exercise completes when using -m

image

Cf [email protected], #86620
Cc @bakera81

Explain Nano workflow more for commit messages

Right now the last exercise of chapter 1 doesn't really explain what to do once you run git commit and open nano. I think it's going to be a bit confusing to people -- they'll write their commit message, but then what? I think the instructions should include how to save and exit as well.

Making Changes feedback

ex1

  • Correct answer not recognized.

ex2

  • Second task doesn't complete when I type git status.

ex3

  • A mnemonic for the -r flag would be helpful.
  • Can't get the second task to complete with git diff -r HEAD data/northern.csv | cat

ex4

  • Second task doesn't complete.
  • Do we want to talk about what a commit should be (atomic, thematically related)? A misunderstanding of Git practices is one of the biggest problems DS have with version control in my experience, preventing them from getting the most out of it.

ex5

  • I get the exercise completed message as soon as I type the command - there's no time for me to actually write a message!
  • Do we want to give a sentence or two about styling your commit messages?

ex6

  • None of the tasks are completing.
  • I mentioned this in my feedback for the last lesson, but do we want to be encouraging data scientists to put their data in version control? This is generally regarded as a bad habit where I come from.

ex7

  • Same old problem with the tasks.

ex8

  • This exercise touches on the "what a commit should be" question I posed above.

ex9

  • First task completes, second doesn't

ex10

  • Maybe you could link here to a part of shell course that deals with the -- shell idiom.

ex11

  • The note about Git being large and irregular is discouraging to a beginner, I think. As you point out in the sentence, its not actually irregular in full context.

misc

  • I think an overview of the working files, staging area, committed files, etc. is useful before digging into each of them. Having the big picture is important before zooming in on the smaller components. Maybe a diagram?

  • Even if you'd rather not restructure things into an overview -> specifics format, is it possible to get pictures into the lessons to help illustrate things?

Attempt to install gitpython in requirements.sh appears to fail

requirements.sh includes these lines:

pip install gitpython
python -c "import git; print('gitpython version', git.__version__)"

Runs fine interactively on my Mac, but generates this in the image build log:

Collecting gitpython
  Downloading GitPython-2.1.5-py2.py3-none-any.whl (443kB)
Collecting gitdb2>=2.0.0 (from gitpython)
  Downloading gitdb2-2.0.2-py2.py3-none-any.whl (63kB)
Collecting smmap2>=2.0.0 (from gitdb2>=2.0.0->gitpython)
  Downloading smmap2-2.0.3-py2.py3-none-any.whl
Installing collected packages: smmap2, gitdb2, gitpython
Successfully installed gitdb2-2.0.2 gitpython-2.1.5 smmap2-2.0.3
�[91mTraceback (most recent call last):
  File "", line 1, in 
�[0m�[91mImportError: No module named git

cc @machow @ncarchedi

Overview feedback from Richie

Step 0: Learner Profiles

Who is Catalina? Head of a lab?

Might be useful to roughly order learners from novice -> expert.

Step 1: Concept Map

Nice diagram, but I'm not sure who it is for or where it would be used. My first reaction was "wow this is complicated", but after exploring it, it makes very good sense.

Step 2: Summative Assessment

I had to get Rasmus to explain the definitions of summative and formative assessments. My interpretation of his explanation is "summative assessments are the end goals for the course, and formative assessments are the steps that you need to get there".

Fixing mangled repositories is a great skill. Might be worth having a goal to rollback a repository back to a previous state.

Will the course cover configuring git? Setting up your email address is a useful thing.

Do you want to include a blame goal? That is, extend goal 2 to include finding out who made the changes.

I think that you can probably sneak some non-git advice into this course. Things like teaching good file naming strategies, and directory management (separate raw data from processed data, try to reuse directory names between projects), maybe some more general advice on project management or working with other people.

Step 3: Formative Assessments

Viewing differences

Do you need to distinguish between seeing which fils have changed (git status) and how they have changed (git diff)?

Saving changes

Possibly worth splitting this into adding all files (git add .) and adding files one at at time.

Course outline

Basic operations

Also "Basic concepts", hopefully.

No git status?

Setting up a new project

I think cloning ought to come in this chapter.

Collaborating

Branch-per-feature development

I think this belongs in the previous chapter, and I don't think it should be the only branch strategy you teach - it's overkill for single person projects. I guess its worth talking about several different strategies and when each is appropriate.

For 1 person projects, I think the easiest approach is "work on master unless you are doing something risky, in which case create a branch".

For small teams of data scientists, branch per feature sounds ideal.

For bigger projects, I think it's worth explaining that software developers often have elaborate systems with many branches and complex naming schemes. I think it's nice to show you can do this, but you probably won't need to.

Advanced features

Taggig with git tag

typo

The "datasets" are:

Do regional and report contain any data sciency content? I think that the types of projects that are commonly dealt with are

  • Running an analysis of some data. So you have raw data, some scripts, and some output data, results, and plots.
  • Writing a report or paper (or maybe a presentation). In this case you have a notebook or markdown doc plus some data files and some images.
  • Creating an R package (or I suppose, a Python one), in which case, the structure is very well defined.

Would be nice to have an example of each.

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.