I find myself censoring my posts recently. This is probably because I’ve moved from a research position into one which requires me to teach and I don’t think it’s professional to tell my students what I got up to at the weekend (It was arranging a mortgage if you’re interested ). So instead of publishing (possibly libelous) opinions about my friends I’ll do something way more dangerous…
I’ve to keep a reflective diary of my teaching for the coming year. This is a requirement of a course that I’m taking at the moment. I’ve decided to keep it on my blog. And hey, if it dosn’t work I can always stop One thing I won’t be commenting on publically is one-to-one supervision duties I have. I’ll only be commenting on my own successes or failures.
In the coming year I have responsibility for the final year Computer Graphics Algorithms and Software Testing courses. I also have input into the second year Software Engineering course and will be assisting with the first year Java Programming course. The Computer Graphics Algorithms and Software Engineering courses are in the coming term, thus my planning for them is more advanced than for the Software Testing course.
I’m not a computer graphics person. I’ve never previously had an interest in the area, however a discussion with my professor over here quickly put me straight. He explained how computer graphics is on of the few areas of practical computer science where you get all of the classic computer science problems. Low level problems with bandwidth saturation to high-level problems like the fact that graphics pipelines are difficult to test. There are also a few probems that I saw when teaching computer graphics algorightms.
The first problem is that OpenGL does a lot of the work that I want to teach. It does all the scanline rendering and z-buffering in hardware, thus depriving students of the jucy details. The second is with the propritery nature of other graphics APIs such as the Sun Java3d API which require you to accept a restrictive licence to view the code. It’s fine for me to accept the licence, but I don’t want to force my students to view source code that could discount them from future employment. The third problem was that I have no experience in implementing graphics algorithms.
The solution to all three problems was to develop my own 3d scengraph and API for Java. The results of which are in my previous post, thought I hope to get up some prettier videos before the end of the week.
It’s been going slowly. Primarly because I eschewed conventional wisdom and decided not to pay much heed to other 3d API implementations. I wanted to generate an API from first principles in order to really learn “why?”. I think that’s been a success. For instance, I’ve learned that you can get away with simple matrix mathematics for most of a 3d renderer except for the lighting which requires vector mathematics. This mightn’t sound like deep knowledge but I hope it will help me to guide students who find certain types of math difficult. The failure (If I am to use binary classification) is that I don’t have all my class notes written yet. I will get this done in the next three weeks though. I also have to find someone more experienced than I to discuss assessment with.
I should add that my understanding of computer graphics has been immensely helped by three of Prof. Arnolds research students Craig, Karina and Tudor, who (generally, if I buy them coffee) don’t mind fielding my questions on the topic.