Assignment Brief

THE BRIEF

Introduction

The aim of this project is to apply a test driven design and development process to the generation of a tool or suite of tools for digital content creation. The focus of the project should be aimed at automating or improving an existing workflow or pipeline used in production. The area and topic of the project is to be discussed with the unit leader and agreed in advance via the GitHub classroom page here https://classroom.github.com/a/WdW-wefA instructions for setting this up will be covered in the labs.

It is envisaged that the project will be written using python however other languages and tools can be used, It is suggested that any GUI be written using PySide / PyQt however standalone command line / headless solutions for batch processing may also be used.

Intended Learning Outcomes

This assignment will allow you to demonstrate your ability in the following learning outcomes.

  1. understand and apply Test Driven Development / Design to a chosen software development project.
  2. demonstrate an understanding of the architecture and techniques used by digital content creation tools.
  3. select, apply and evaluate the correct programming / scripting language and approach to solve a chosen problem.

Assessment Criteria and Weightings

  1. Use of test driven design and development for the project 20 marks.
  2. Selection, use and understanding of appropriate DCC API’s - 25 marks
  3. Application of appropriate software engineering techniques to the project - 10 marks
  4. Use of GitHub classroom for ongoing code development and review – 15 marks
  5. Following appropriate coding standards (i.e. PEP-8) 10 marks
  6. Project specific, Use of a GUI, efficiency ease of deployment - 20 marks

Rubric

The following rubric gives and outline of the areas we will consider when grading the work.

GradeDescription
FailUnable to adequately write or develop a solution to the proposed problem. Submitted an incomplete or non-functional project. Used a lab tutorial or other resource to complete the assignment without modifying it. No tests. No engagement with the assignment via the GitHub classroom.
3rdDemonstrates rudimentary skill in programming / scripting, and with help can create a small aspect of the program that is at least partially functional. Uses a lab tutorial or other resource to complete the assignment with small modifications to the code and simple class structure. Minimal engagement with the assignment via the GitHub classroom. No test or simple post hoc test not really showing the use of TDD.
2.2Can demonstrate understanding of the fundamentals of Scripting for DCC and programming, design. Use appropriate APIs/ Most of the code is written by the student or extended from the Lab demos. Some test but not covering all features and added post-hoc. The code is well structured and documented, little or no extra work has been done relying on the basic techniques shown in the demos. Shows basic engagement with the assignment via the GitHub classroom.
2.1Show a good understanding of scripting for DCC, program design and implementation applying appropriate design to the problem domain. Use appropriate APIs and techniques. The code is well structured and documented, some extra features and perhaps GUI has been added, almost full test coverage and show the full use of TDD. Extensive us of the GitHub classroom for managing the project.
1stExcellent understanding of scripting for DCC and implementation applying appropriate design to the problem domain, Use of advanced features and APIs including external 3rd party tools. The code is well structured and documented with a fully working system or tool. Full test coverage and evidence of TDD being used through the lifecycle of the project. Extensive use of the GitHub classroom for managing the project, with a clear commit history and use of branches and pull requests.

SUBMISSION DETAILS

You should submit to BrightSpace :

  • A Video of the program in Action
  • A link to your GitHub repository with full source code.
  • All source code and the README.md containing your report should be placed in the GitHub repository.

You must acknowledge your source every time you refer to others’ work, using the Harvard System (Author Date Method). Failure to do so amounts to plagiarism. Please refer to www.bournemouth.ac.uk/library for the University’s guide to citation in the Harvard style. For more information please read the code citation guide here http://nccastaff.bmth.ac.uk/jmacey/NCCACodingStandard/Citation.html

In addition to this any 3rd party code used in the program must be suitably referenced. It is assumed you will use some of code or examples from the lectures, so these need not be referenced. However, your assignment must be suitably different from any examples given out in the class

Next