Assignment 3 (30%)
You need to extend the ??? package to include:
S3 methods (e.g., print and plot methods) for an appropriate class in the package.
A custom vctrs class for an appropriate data structure in the package.
- Create and document a function for creating your vector.
- Define appropriate methods for using your vector, including
format(),vec_ptype2(), andvec_cast(). - Create generic function(s) for identifying/extracting useful things from your vector
- Create methods for your custom generic function(s), including suitable defaults.
Integration of C++ code via Rcpp for an appropriate function in your package.
You can also consider adding some element of metaprogramming if you think it is appropriate.
There should be at least two vignettes: one describing how to use the package; and one explaining the design choices you have made such as function names, arguments, user workflow, use of internal modular functions, use of non-standard evaluation if appropriate, etc.
Marks will be awarded for clean and efficient code, and for good design.
Notes
The package will be developed on GitHub Classroom. Each team will be given a private repository for the assignment. The state of the repository at the time of the deadline will be counted as your submission. Commits after the deadline will be ignored.
Each team member must contribute at least four substantive commits across multiple days. If the team mark is x, but a team member has not contributed adequately, that team member will receive a mark of 0 (for 0 commits), 0.25x (for 1 commit), 0.5x (for 2 commits), 0.75x (for 3 commits). A maximum of 3 commits on any day will count in this calculation.
Generative AI tools may be used in guided ways in this assessment, but you must explain how it was used, including prompts where relevant. Each assignment must include an AI statement. Evidence of AI use that is not mentioned in the statement will result in penalties being applied. Any work submitted for a mark must:
- represent a sincere demonstration of your human efforts, skills and subject knowledge that you will be accountable for;
- adhere to the guidelines for AI use set for the assessment task;
- reflect the University’s commitment to academic integrity and ethical behaviour.
Inappropriate AI use and/or AI use without acknowledgement will be considered a breach of academic integrity. See Learn HQ for more information.
Due: 2 June 2026
Join GitHub Classroom