Game Dev Graduate Degree - TA Course Coverage Input

I’ve picked up an assistant teaching gig once a week in the evenings at an academy that offers graduate degrees in art, programming, and production in game development.
Though Technical Art is not a offered as a degree, it can be a area of focus for students in the art or programming track.

I’m looking for input on what ya’ll would expect to be covered in such a course over 3 semesters(45 * 1.5 h classes).

This is what I’ve scribbled down so far.

Game Dev
	Game Maker
		useful for into to programming?		
	Unity
		C# 
			Custom Controllers
			Batch processors
		Shaders / Materials
	Unreal
		Cascade (Particles)
		Kismet or Blueprint
		Materials / Shaders
		Matinee ?
		
Content Dev
	Maya
		Maya APIs
			Mel
			Python using maya.cmds
			Python using maya.OpenMaya
			C++
			Maya .NET C#
			Pymel
		Maya 2015 Shader Authoring
		Using HLSL / CGFX in view port
	3ds Max APIs
		MAXScript
		API (C++)
	Houdini APIs
		Script (Python)
		VEX (C)
		HDK (C++)
	Math
		Vectors
		Matrix
		Transforms
		Lighting
	FX Composer
	Marmoset
		Toolbag
		Skylab
	Allegorithmic Substance
	Xnormal

Exercises
	Given a functional tool
		Modify a feature (maybe to use externalized data)
		Add a feature.
		Create Documention
			User docs, for artists
			Developer docs
	Given a broken piece of code, find and fix issue.
	Write a tool with UI that exports or imports files and performs some checks on the data.



Notes to self: What is a TAs duties? Is that what's being covered.
	Be a good problem-solver.
	Artist support, advocacy, and open involvement in their processes. 
	Some experience in each of the major art disciplines.
	Continually seek to improve the art pipeline.
	Proactively find and address issues.
	Keep artist and engineering informed, keeping lines of communication open and easy.
	Optimization & Performance
	Know under the hood how content is used in engine.
	Review content, provide helpfull feedback for issues and improvements.
	Document and teach work flows and best practices.
	Work with engineering, design, directors, leads, and management to realize features.

Very good tool coverage, but I feel a focus on basic project management and basic software engineering is missing.

A good amount of TA work is generated because of legacy and hackish solutions which eventually break down. Yet as pipelines become more complex we, as TAs, have a responsibility to do things better and construct more robust pipelines. If you need inspiration regarding this, Rob’s (Galanakis) blog is a great source of inspiration!
But I think if you’re a TA who does programming, you should be aware of some software engineering basics: like OOP, unit testing, logging, programming in a maintenance friendly manner that promotes readability.

Imho there is an analogy to production art. Picking up new 3D tools is easy, picking up techniques and best practices is hard. That’s why schools who just turn you into button pushers are frowned upon. You should take this as a guide: If you know one programming language, you can pick up others on your own pace. But picking up good programming and work habits is much, much harder. If there’s no space for this, remove some of the lesser used programming topics, like Houdini. Instead focus on giving TAs a solid foundation in creating robust, reliable and maintainable tools and workflows. Knowing a dozen languages is useless if you don’t know the basics of creating good tools.

Some basic project management and software development lifecycle skills would be useful. Why? TA’s often work independently and have to schedule their own work. They also talk to programmers and producers - not just artists - and should understand their concerns. Understanding the basic SDLC of waterfall and Agile would be useful to know, and common project phases and issues, like risk management and QA management. In the last 7 years QA played a big part in my work, by establishing procedures, tools and workflow which promote technical quality throughout the pipeline. Quality is a big issue for pretty much every studio, and quality must happen within your production pipeline, not just at the end. The person responsible right during asset creation is the TA!

I would also introduce some class that deals with people issues. A lot of TA work is talking to people, making people talk to each other, facilitating communication and building bridges. In project manager speak this is called “stakeholder management”. Not everyone is a people person, but there are tools and strategies you can use to ensure that communication happens.