POV-Ray : Newsgroups : povray.off-topic : Luniversity studies : Luniversity studies Server Time
6 Sep 2024 19:18:18 EDT (-0400)
  Luniversity studies  
From: Invisible
Date: 11 Nov 2008 06:09:38
Message: <491967f2$1@news.povray.org>
As you probably all know by now, I hold an honours degree in Computer 
Science. (Upper-second class, no less.)

As far as I can tell, whoever created this cause was of the opinion that 
"software" is a construct for storing, processing and retreiving 
business data. In other words, you have a UI at the front (possibly 
web-based), a large database at the back, and some complex business 
logic in the middle.

The idea that there might exist "software" which doesn't fit this model 
appears to have not occurred to anybody here. For example:

- Embedded software.
- Device drivers.
- Computer games.
- Mathematical moddeling.
- Signal processing.
- Artificial intelligence.

None of these really fit the world-view described above. Most of them 
don't usually involve any kind of database. Device drivers usually don't 
have a *user* interface of any kind. Computer games might be 3-tier, but 
it's a hell of a lot different to a stock control system! And DSP and AI 
are 90% mathematics.

Given the world-view above, it should come as no surprise that we 
learned about things like project management, object-oriented analysis 
and design, UML, CASE tools, relational databases, SQL, HTML, CSS, Java, 
JavaScript, XSLT, TCP/IP, double-entry book keeping (I'm not making this 
up), a little bit of management theory (Taylor, Maslow, etc.), and 
systems testing.

There were also two modules taught by Mr Apathy. Mr Apathy was tasked 
with teaching us about computer hardware, and later about operating 
systems. In Mr Apathy's opinion, knowing about binary is "pointless" 
because "the computer will do it all for you anyway". He believed that 
"20 years ago it might have been necessary to know this stuff, but in 
the modern world you're really never going to need this information. But 
it *is* in the exam, so I have to teach it to you." I cannot tell you 
what an inspirational motivation for learning this was.

(Basically his idea was that we'd all go out into the world and become 
either computer consultants, or maybe Java programmers, and at that 
level of abstraction, petty details like what addressing modes your CPU 
supports or which IRQ services the serial port are irrelevant because 
your compiler / OS will handle all that for you. I mean, it's not like 
any of us are going to develop device drivers or anything, right?)



During my course, I recall seeing exactly one equation. I forget the 
exact technical term, but it's basically Shannon's formula for 
determining how much data you can theoretically shove down a noisy 
communications channel. (This was during a networking lecture.)

When the lecturer wrote the formula on the whiteboard, everybody freaks 
out and starts going "what the hell does 'log' mean?" And the lecturer 
is all "oh, I'm sorry, I just *assumed* that 3rd year degree students 
would know what a logarithm is". It turns out that actually, only two 
people in the room knew about logarithms.

Obviously, one of them was me. Astonishingly, the other one was the 
loud-mouthed, beer-drinking rugby hooligan from Manchester. O_O (And he 
actually *did* know what he was talking about too.) I remember feeling 
somewhat guilty for assuming the guy was an idiot just because he always 
acted like one...



Actually, I say only one formula... some of the final year optional 
modules I did also had a little more math in them than that.

The first one was Computer Graphics. This certainly involved lots of 
*calculations*, but not all that much mathematics. There was a tiny bit 
of vector and matrix arithmetic (which apparently scared the hell out of 
everybody). I think the word "cosine" might have been mentioned in 
relation to the vector dot product - useful for surface illumination, 
not to mention backface-cull.

Our first CG assignment was to utilise Bresenham's algorithm to draw a 
straight line. (Some people thought the guy was joking when he said 
that!) We also looked at things like low-level clipping and filling 
operations, but for the most part our work was conceptual. Certainly 
there wasn't much exotic mathematics.

It was a nice module though. The guy lecturing it sounded like a 
university professor. He talked very slowly and precisely, but without 
overuse of jargon. He seemed actually good at explaining things in 
simple terms.



The second one was a module entitled "Genetic Algorithms and Artificial 
Neural Networks" (GAANN for short). Actually it seemed to basically 
consist of all things AI-related. The lecturer for this had the weakest 
grasp of English, and his speach was barely intelligable. If somebody 
said they didn't understand something, he would repeat almost exactly 
what he said the first time, but this time shouting. It was *very* 
irritating.

(Also, for some reason his classification problems *always* involved a 
man evaluating potential wives to decide which one to marry - and he 
gave the ladies creepy looks while telling this example. Brrrgh!)

This module did involve some non-trivial math. It was so badly-explained 
that I couldn't possibly tell you how advanced it was. Much of the 
module revolved around feed-forward ANNs trained by back-propogation, 
which is a kind of "grædiɛnt æsɛnt miθæd". For back-propogation to work, 
the transfer function needs to be non-linear. And there was something 
about a "næbl" operator.

IIRC, the part about generic algorithms lasted about an hour.

It's a pitty really, because it seems like a really interesting subject...



So anyway, that's what *I* did during my degree. Anybody out there do 
anything more interesting?



My mum keeps telling me I should do a mathematics course. Personally, 
I'm not sure where the hell I'd get the time or the money from. (It's 
not exactly cheap.) I guess it *is* kind of amazing that I know about 
the Laplace transform, given that I have never at any point in my life 
been "taught" anything beyond simple arithmetic.

Similarly, I know about how to wire logic gates together to make 
interesting devices. And I know about Dijkstra's shunting algorithm. 
(Unfortunately, I'm never sure exactly how to spell the name though!)

Also... I really ought to get a job where all this stuff is useful! I 
wonder if such a thing exists?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.