/assignment-1

BIOL7800 Assignment 1

Primary LanguageJupyter Notebook

Assignment 1

You are going to be installing some things, taking some screenshots, etc. If you don't know how to take screenshots, here are some helpful websites:

Github

We are going to use Github as a central repository for all of our code. Although we will discuss git and version control during class, you are also encouraged to learn more about both git and github on your own.

Tasks

  1. Create a github account
  2. Take a screenshot of your github account (e.g. https://github.com/brantfaircloth), showing that you have an account and that you are logged in. Make sure that the name of the screenshot reflects it is from github.
  3. Download and install Github Desktop. This is an application (or "app") that lets you more easily work with git and github

Slack

Slack is a real-time collaboration tool (basically like SMS or iMessage) that allows our class to keep in contact. It's nice because it allows you to ask everyone in class a question without sending an email. It's also allows different groups in class to create and use different chatrooms, and it allows us to pin/highlight particular answers that are useful.

Tasks

  1. Accept your invitation to the Slack channel
  2. Take a screenshot showing that your are logged into your Slack account. You can either use the online client or the "native" client for Windows or OSX. Make sure that the name of the screenshot reflects this is from Slack.
  3. Add your name, github username, and Slack username to the Google Doc that I put on the Slack #general channel

Text Editor

A good text editor is worth it's weight in gold. It can help you write, manage, and maintain your code. A good text editor basically makes your life easier, once you know how to use it (which can sometimes be very hard).

There are a plethora of text-editors out there: textmate, sublime text, vim, emacs, text wrangler, etc., etc. Each have their own costs and benefits, and almost everyone that uses a text editor frequently has pretty strong feelings about "their" text editor.

You can use whichever text editor you like during this class. That said, I suggest we all use the same editor. A new, interesting, and relatively strong text editor is named "Atom" and was originally built by the github folks so that there would be a decent, open-source text editor available to everyone. Atom is that editor. It offers many common benefits (code colorization, autocompletion, good find and replace, multiplatform, etc.), as well as offering an extensible package system for installing new capabilities - like a [code linter](https://en.wikipedia.org/wiki/Lint_(software), which can help point out errors in your code before you run it.

Like all complex tools, Atom has a manual. It would be a good idea, like all complex tools, to read that:

Tasks

  1. Download and install
  2. Take a screenshot of Atom on your computer
  3. Twiddle with the Preferences if you want to change the color-scheme, etc.
  4. Go to Preferences > Settings.
    • Turn on "Scroll past end"
    • Set "Tab length" to 4
  5. Figure how to install (and install) the following Atom packages:
    • linter
    • linter-flake8
  6. Take a screenshot showing that linter-flake8 is installed

Anaconda

As explained in the syllabus, the programming language that we are using for this class will be Python 3.5.1, and we will be using the Anaconda Python Distribution.

Tasks

  1. Install Anaconda Python for your operating system
  2. Once that's installed, crank up Python. Take a screenshot of the Python REPL. Exit Python.
  3. Figure out how to start the iPython notebook (now, more correctly known as "jupyter notebook")
  4. Create a new ipython notebook

Your first set of programs

We haven't covered anything at all about programming. It's cool - it's not that hard (ha!). Without any real knowledge of what you're doing, I want you to create a (very small) tutorial using Python and the iPython notebook. This notebook should explain the step(s) you are running, provide the correct input, and produce the correct output for the following tasks. You are welcome to use the Internet to help you find the answers (as you are for all assignments - just be sure to give credit where it is due).

Tasks

  1. Who in the hell is Guido Van Rossum? Have Python print the answer, using jupyter
  2. Explain (what it is) and execute the most famous first programming exercise. Where does this come from? Feel free to just add your answer to the iPython notebook as markdown-formatted text.
  3. Produce the sum of the year of your birthday and the year of this class
  4. Divide 3 by 2 and return the expected result. Is this what you expected? Why or why not?
  5. Print the numbers 0 to 50 by 5
  6. Draw and print 10 discrete numbers from a uniform distribution spanning the interval [0,1000000]
  7. Python is what is known as a zero-indexed programming language. Illustrate what this means.
  8. import this

Using Git/Github

Now, it's time to turn in your assignment. You should generally follow the instructions for turning in assignments

  1. Fork and clone the Assignment 1 repository to your computer
  2. Open that repository in Github Desktop
  3. Create a directory, nested in the answers directory in the cloned, forked assignment repository that is your username on github
  4. Navigate to this directory on your computer
  5. Add the following:
    • Screenshot of github account
    • Screenshot of Slack session
    • Screenshot of Atom installed on your computer
    • Screenshot showing that you installed linter-flake8
    • Screenshot of the Anaconda REPL on your computer
    • You mini-tutorial from Your first set of programs, above, in ipynb format
    • A screenshot of everything above, in the repository, displayed by Github Desktop
  6. Commit all of the changes to your repository
  7. Push/Sync that to Github
  8. Make a pull request to the main biolprogramming repository