-
Notifications
You must be signed in to change notification settings - Fork 12
About Assignments
Each assignment will be delivered as a directory in this repo (not the wiki) that contains a README.md
file; for example, the pre-class assignment: 00 -- Brace Yourself. This file will contain all the instructions for the assignment, a list of the minimal requirements and some "level-up" goals when you complete the minimums. If your work doesn't match these requirements, it will be rejected. Over time, the assignments will provide fewer and fewer explicit instructions, expecting you to fill in the details.
Assignments are typically due at 12:30am on the morning of the next class day. Note that class runs Monday-Thursday, so while an assignment given Tuesday is due 12:30am Wednesday, an assignment given Thursday is due at 12:30am the following Monday. The reason for a midnight due date is to prevent you from staying up to all hours of the morning trying to complete your work. Any one homework assignment is not as important as you being fresh and ready for the next lecture topics. Keep that in mind as you progress through the cohort.
Many of the assignments will seem larger than you can complete in the time allotted. Part of your job will be to analyze the assignment, prioritize sections, and apply time constraints to your work to ensure that you complete some of every part of each assignment. Always turn in what you have.
These are the bare minimal instructions you should follow for every assignment. Additional instructions or direction may be provided in the assignment file, but always ensure that you follow these steps:
-
Create a Work In Progress (WIP) Issue in the class repository for every assignment
- Name it according to the assignment name with your name appended, e.g.
00 -- Brace Yourself -- David Rogers
- Copy and paste the task list (i.e. check boxes) provided in the assignment file as the description of your WIP Issue
- Fill in more details! You will be expected to break down larger tasks into smaller ones; if you're daunted by a large task, break it down!
- Estimate the complexity, difficulty, and risk of each major piece of the assignment with T-shirt sizes: Small (S), Medium (M), Large (L), Extra Large (XL)
- Name it according to the assignment name with your name appended, e.g.
- Check off tasks as you finish to demonstrate progress; note the progress bar in the Issues list
- Create a new Work In Progress (WIP) Branch for the assignment in each repository that you'll be working
- Name the branch per the instructions in the assignment!
- Ensure that you commit all your work into your WIP Branch only
- Push that branch to Github regularly to show progress; don't wait until you're "done" to push your work!
- Open a Pull Request (PR) to show your work:
- Your from or
HEAD
branch should always be the WIP Branch; each assignment will specify a into orBASE
branch for the PR. - Add a link to your WIP Issue in a comment on your Pull Request
- Note that the PR will update automatically as you push more work to the branch
- Do this step as soon as you have a commit; don't wait until the due date!
- Your from or
Some assignments will be long-running and will span several branches or Pull Requests (PRs). You may also be assigned groups or pairs for certain assignments. The assignment will dictate whether you both need code and branches in your own repos or if you're expected to share repositories for a project. You should always create a WIP Issue in the class repo, though, and link to your work.
Your assignments will be graded on a simple scale, represented by Labels on your WIP Issue. If the work provided:
- Does not contain links to your work in the various repos, does not match the requirements or contain the deliverables enumerated, your WIP Issue will be marked with the RED label.
- Just meets the base requirements but demonstrates a lack of effort or understanding:
- Your WIP Issue will be marked with the ORANGE label
- Feedback for improvement or further study or practice will be provided
- Meets or exceeds the requirements and demonstrates understanding of key concepts:
- Your WIP Issue will be marked with the green label
- Feedback for continued improvement may be provided on the linked PR
- Demonstrates an exemplary effort worthy of additional recognition, it will be assigned a YELLOW label.
In any case, your WIP Issue will be reassigned to you to review and close. If you don't review and close your Issue in a timely fashion, we'll start bugging you. If you have further questions about the feedback provided, please ask in a comment and bring it to our attention. If you write us directly via chat, email, Twitter or otherwise, we will redirect you to the appropriate issue. This is for our protection as well as yours, to keep our conversations on-the-record.
You are expected to justify your own work. Even in pair- or team-based projects, you should be able to understand and explain any piece of code used by you in your project. If you utilize code from another source, you take ownership of the maintenance and continued development of it. If you do use code from another source, be sure to attribute in a comment where it came from and who authored it. Therefore, exercise caution when playing "copy-paste-tweak" and always attribute your source.
Plagiarism -- "the practice of taking someone else's work or ideas and passing them off as one's own" -- is forbidden. The wholesale copying of source code and passing it off as your own work will only hurt your longterm success as a programmer and will be met with severe consequences in the class such as forfeiture of Demo Day privileges and job placement assistance or even expulsion from the cohort.a