Animation Software Engineering
AIMS
The purpose of the unit is to ensure that students are equipped with the technical computing skills necessary in the design and implementation of computer graphics tools and pipelines. The unit aims to equip the students with the knowledge to select the correct programming languages, application programming interfaces and techniques to solve computer generated imagery problems using a Test Driven approach. Further to this the application of standard software engineering techniques are encouraged to enable the student to work as part of a development team solving complex technical issues in modern computer animation.
INTENDED LEARNING OUTCOMES
Having completed this unit the student is expected to:
- Demonstrate an ability to write complex programs using a high-level programming language and a computer graphics application programming interfaces (API)
- Apply Test Driven Development to the design and implementation of a major software artefact informed by industry best practice.
- Display proficiency in applying modern software engineering techniques to computer generated image production
Learning and teaching methods
This unit will use a combination of Theory lectures and supporting practical workshops to introduce the concepts of Test Driven Development as applied to animation systems.
The workshops both complement and mirror the corresponding lectures with practical programming examples and exercises. Students are exposed to various strategies for designing, implementing, testing and documenting programs.
Students are also encouraged to develop a personal approach to solving computer graphics related problems based upon recognised practices of software engineering.
Indicative unit content
- Test Driven Design and Development of software
- Version control and Software Engineering practice.
- Procedural programming and design.
- Object Oriented Programming , Design Patterns, OO Analysis.
- Real-time Graphics programming using a suitable API (OpenGL)
- Management of complex data for CGI production
- Algorithm design and implementation for computer graphics tools and techniques
INDICATIVE KEY LEARNING RESOURCES
Steve McConnel. 2004. Code Complete Second Edition Microsoft Press USA.
Harry Percival. 2017. Test-Driven Development with Python 2nd Edition O’‘Reily
Recommended Reading
Reddy, M., 2011. API Design for C++. 1st Edition. San Francisco: Morgan Kaufmann Publishers Inc.
Wolff, D. 2011. OpenGL 4.0 Shading Language Cookbook. Birmingham [England]: Packt Publishing.
Foley, J., Van Dam, A., et al., 1996. Computer Graphics: Principles and Practice. 2nd Edition. Addison-Wesley.
Journals
https://www.siggraph.org/ ACCU overload https://accu.org/index.php/journals/c78/
Websites
https://gameprogrammingpatterns.com/ https://opengl.org/ https://en.cppreference.com/w/ https://github.com/isocpp/CppCoreGuidelines