CS 349: Natural Language Processing

Spring 2016, Wellesley College

Submitting Assignments

For more about git and Python packages, see the tools document.

Solo Assignments

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.

  1. 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-ngrams in 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.
  2. To keep things clean, the partner can delete their now-extraneous repository by going to https://github.com/wellesleynlp/partnerusername-cs349-a2-ngrams in the browser, and clicking on Setting > Options.
  3. Each member should clone the repository https://github.com/wellesleynlp/yourusername_partnerusername-cs349-a2-ngrams to 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.py
    git add ngram.py
    git commit -m "my message"
    git push
    The "status" command shows you which files have been changed since your last commit or pull.
    git status
    Commit 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.
    git pull
  • 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/reponame in the browser, logged in.