====================================
Homework 1
====================================




Due 23.59, Aug/30/2020
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Doing a small project using version control
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0. Find a lab-partner.
   
1. Read the sections on `UNIX`__,
`Bitbucket`__, and `Git`__. This means that you have:

 * installed Git on your computer;
 * created a private Bitbucket repository, say `471YOURLASTNAME`;
 * cloned the remote repository to your local machine;  
 * created a file named `test.txt` to your new local directory;
 * added, commited (with the message "My 1st commit of test.txt."), and pushed the new file to your Bitbucket repository;
   
   

2. Now modify your `test.txt` file by adding two more lines to the `test.txt` file:

   .. code-block:: none

		   I am YOUR_NAME. (or We are YOUR_NAMES)
		   I am learning version control.

3. Then ``add`` and ``commit`` (with a message, e.g. "added two
   more lines to test.txt.") the modifed file, and ``push`` it to your
   Bitbucket repository.

4. Add a sub-directory for the first homework (say HW1) to your
   repository and move the `test.txt` file to this sub-directory. Add,
   commit, and push. 

5. Next, create two `README.md` files, one in the top-level
   directory (i.e. `471YOURLASTNAME`), and one in the
   sub-directory HW1. The extension `.md` indicates that this file is
   a text file created using a Markdown language. A README file contains information
   about other files in a directory. For example, it may contain
   instructions where to find your homework report and code, and how
   to execute your codes, etc. The idea is to generate a top-level README file in the
   master repository (giving general information about your repository
   and its sub-directories) and one low-level README file for each
   homework assignment (describing for instance how to compile and run
   the programs for a particular homework). For example, a typical
   low-level README file could contain something like:
   
   

   .. code-block:: none

		   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		   README file for Homework 2, Math 471, Fall 2017, M. Motamed
		   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

		   - The homework report is in the directory
		     HW2/Report and is called homework2.pdf.
                   - The code for this homework is located in
		     HW2/Code and is documented in the appendix
		     of the report.
		   - To reproduce the results in the report do this:
                          1. bla bla bla
			  2. bla bla bla
			  3. ...   
			  (where this is a description of how to recreate the results).
     
   Note that in Homework 1, there will be no pdf-report and code. But
   we will have reports and codes in next homework assignments
   (e.g. in Homework 2). Once
   you are done editing your readme files you will first add them to
   your local Git repository, commit locally and then push your
   changes to your remote repository on Bitbucket:
   

   .. code-block:: none

		   $ git add README.md
		   $ git commit -m "Added a README"
		   $ git push

		   
6. To submit your homework for grading first add me as
   members to your repository by **Settings** -> **User and group access** ->
   **Users**. My user name is "motamed", and my email address
   connected to this user name is "motamed@math.unm.edu". I will need "write"
   privileges so that I can add comments. Then, when
   you are ready to submit (before the due time / date), send me an
   email with the ``SHA-1 checksum`` from the appropriate commit (use
   ``git log`` to get the hexadecimal checksum number). This checksum
   will identify the version of your repository that you want me to
   grade. Note that upon grading I will first
   read the readme files where you will put instructions where I can
   find the report and code for each homework (a subdirectory, named
   `HW1`, containing a `test.txt` file for this particular homework).
   
   
   
   



		 
__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/unix.html
__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/bitbucket.html
__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/git.html