For more about git and Python packages, see the tools document.
The description here is common to all assignments that you work on by yourself, using A1 as an example.
- Each of you has a repository for every assignment, seeded with starter code.
The location for A1 is at
https://github.com/wellesleynlp/yourusername-cs349-a1-textprocess, where yourusername is your GitHub username. These repositories are private to you and me, and should be kept that way.
- Clone this repository to a convenient location on your computer.
Cloning is a one-time task for each repository and machine.
git clone https://github.com/wellesleynlp/yourusername-cs349-a1-textprocess
Assignments with Partners
This is common to all assignments where you choose to program with a partner, using A2 as an example. Ignore if you choose not to work with a partner -- follow the solo instructions instead.
Use this Google Spreadsheet to find and note your partner.
If you logged your partner on the spreadsheet before the assignment was released, a team repository has been set up for you at https://github.com/wellesleynlp/yourusername_partnerusername-cs349-a2-ngrams (usernames alphabeticized). Skip the first three steps below.
- Once you decide who your partner is,
only one member of the team should navigate to their repository,
https://github.com/wellesleynlp/yourusername-cs349-a2-ngramsin the browser. Click on Settings, and then the Options menubar, and change the Repository name to
yourusername_partnerusername-cs349-a2-ngrams. Click on Collaborators and Teams, and add your partner with Write access.
To keep things clean, the partner can delete their now-extraneous repository by going to
https://github.com/wellesleynlp/partnerusername-cs349-a2-ngramsin the browser, and clicking on Setting > Options.
- Each member should clone the repository
https://github.com/wellesleynlp/yourusername_partnerusername-cs349-a2-ngramsto their computers to collaborate on the assignment.
Editing Code, Pushing Changes, Submissions
- Where starter code is provided, do not modify the interfaces of the functions or classes.
- Early in the coding process, well before the deadline,
add, commit, and push to ensure that everything's ok.
For example, if you have made changes to corpus.py and ngram.py:
git add corpus.pyThe "status" command shows you which files have been changed since your last commit or pull.
git add ngram.py
git commit -m "my message"
git statusCommit often; it serves as a backup system for various situations (e.g. your hard drive crashes, or you make a mistake and want to revert to an earlier commit).
- If you are coding on multiple computers,
remember to execute a pull if you think your partner, or you on another computer, made commits recently.
- When you're ready to submit, fill in your name(s) and details in README.md and push.
The last commit after you complete README.md and before the submission deadline will be graded.
A commit with an incomplete README.md will not be considered a submission.
To take an extension (i.e. you plan to submit by Tuesday), add 1 to the number of late days in README.md and push to your repository by the deadline. I won't grade this submission, but it will tell me that I can expect your submission by Tuesday 11:59 pm. To take another extension (i.e. you plan to submit by Wednesday), add 1 to the README again by Tuesday night, and submit on Wednesday. Repeat for more extensions.
You can check that your submission went through as intended by looking at
https://github.com/wellesleynlp/reponamein the browser, logged in.