BIOF-309, Spring 2020 Rubric
Defines a grading scheme for a Python course with homework, a mini-project, and a final project, plus a detailed rubric for the final project.
What this file does
Defines a grading scheme for a Python course with homework, a mini-project, and a final project, plus a detailed rubric for the final project.
When to use it
- Designing a rubric for a project-based programming course
- Setting up a course with Datacamp homework requirements
- Creating a grading structure with multiple components and deadlines
Assumes this stack
BIOF-309, Spring 2020 Rubric
The emphasis of the course is on learning and mastering the skills covered. The grade for the course will be divided into 3 components:
- Online course work, AKA homework. Completion of the suggested courses on Datacamp (described below) will provide up to 15% of the grade
- A "mini project" during the course, submitted using github will provide up to 10% of the grade
- The remaining 75% of the grade is based on the final project submitted via github
If some of the material appears unclear, please ask for clarification.
Homework
By April 23rd, you must complete 45 hours of a career track on Datacamp. The python programmer track is recommended as it covers the content taught during the course, provides exercises to practice the newly learned skills, and covers additional material that we do not have time to cover in class.
Note that to complete this career track for your own benefit there are a further 11 hours of courses that you are not required to complete for this class.
Please use the schedule below as a guide for what you should have covered in this career track and by when:
-
2020-02-13
- Introduction to shell (prioritize sections 1-4)
-
2020-02-20
-
2020-02-27
- Conda essentials (prioritize sections 1 and 3)
-
2020-03-05
- Introduction to python
-
2020-03-12
- Intermediate python
-
2020-03-19
- Python data science toolbox (1)
-
2020-03-26
- Python data science toolbox (2)
-
2020-04-02
- Cleaning data in python
-
2020-04-09
- Pandas foundations
-
2020-04-16
- Manipulating dataframes with pandas
-
2020-04-23
- Merging dataframes with pandas
- Hard deadline for datacamp material. All material by this time will count towards that component of the class grade.
Mini-project
- A rough outline of what you are planning on doing for your final project must be submitted as a pull request on github by Feb 27th.
Final-project
Some details regarding the final project:
- Pick a project that is interesting to you. You’ll find it easier to work on if you think it is fun or solves a problem that you have encountered in your daily work. Regarding content the sky is the limit.
- The project should be setup as a fork of (and pull request to) the project template
- Record your plans on github as you go
- Pay attention to what your minimally viable product is so that if you only achieve that you will at least have something to show for your efforts.
- Pay attention to the rubric listed below
- Not creating a formal python package is acceptable but must be justified.
- Joint projects are looked upon favorably.
- Breadth of python skills will be noted.
- Having commits from instructors is fine (though you don't get points for such beautiful code).
- Try to show weekly improvement (on github) during the final weeks
Grading the final project will be done using the following rubric (Note that the marks sum to 100. This is the percentage points of the marks available for the final project):
Project description / Specification
- Goals for the project are discussed and placed in the context of pre-existing work. This could take the form of other python projects or indeed software in any language. Not reinventing the wheel is an important result of good planning (0-5)
Documentation
- Comments are embedded in the code or Objects/functions have docstrings (0-5)
- Comments and docstrings are used (6-10)
- Documentation is thorough both in the readme and in the code itself aiding interpretation of the project (11-15)
Readability and reusability
- The code is poorly organized and difficult to interpret. Marks are lost for excessive duplication in the code or output in notebooks that harms attempts to understand the flow of processing. (1-10)
- Basic organization and modularity of the code is present (11-20)
- Careful organization of the code (commented, well-named variables in well-named functions in well-named modules, in a package if appropriate), coupled with attention to style guides for python. (21-30)
Testing
Marks will not necessarily be lost for failing tests.
- Tests should cover a significant fraction of the python code used. (0-5)
- Tests have aided development and have helped discover bugs in the code (6-10)
Gradual progress
- Little evidence of work on the project until the last week or two of term (0-5)
- Progress has been persistent indicating planning and continuous effort (6-10):
- Evidence of gradual work following the mini-project exists
- 2 weeks from the deadline there are passing tests, a working package, and a skeleton of code
- 1 week before the deadline a working product exists in the codebase.
"The product"
- The code technically works but does not show evidence of engagement (1-5)
- The project checks the boxes in the rubric effectively and is nicely implemented (6-10)
- The code attempts to solve a real-life problem, shows great progress both inside and outside class over the weeks of the project (11-20)
- The project is a roaring success. It's amazing to see what you can now do with python! You have earned the title of pythonista (21-30)
What's inside
3 grading components, 11 weekly homework milestones, 6 rubric categories with point ranges
Change this for your project
- Replace
biof309/project_spring_2020with your own project template repository - Replace
BIOF-309, Spring 2020with your course name and term - Replace
2020-02-13through2020-04-23with your own schedule dates - Replace
python programmerand its URL with your chosen Datacamp track
Where it goes
Save in docs/ or the repository root. Gives agents and new contributors a map of the codebase.
Worth borrowing
- Rubric categories that reward gradual progress and testing, not just final output
- Using a fork-and-pull-request workflow for student project submission
Related Documents
PCB Design Sources for Industry-Scale Testing
Lists GitHub repos and communities where you can download real PCB designs for testing optimization at scale.
Design Document: BharatSeva AI
Describes a 10-agent AWS system that helps India's informal workers access government schemes via voice-first, serverless architecture.
OpenClaw Enterprise Transformation Plan
Transforms a single-user AI agent into a dual-mode platform supporting both viral open-source and Fortune 500 enterprise deployments through phased security, IAM, audit, multi-tenancy, and Kubernetes features.
Qwen Image and Edit: Open-sourcing and Local GGUF Generations with Lightning
Documents the Qwen-Image and Qwen-Image-Edit models, covering architecture, training, benchmarks, ComfyUI setup, and prompting techniques for local GGUF deployment.