|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> As you probably all know by now, I hold an honours degree in Computer
> Science. (Upper-second class, no less.)
Yay!
> 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.
"Welcome to the desert of the real." ;)
> 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.
You forgot computer graphics. :)
Anyway, those are niches. 90% of IT (which is not the same as compsci)
is about COBOLs.
> Also... I really ought to get a job where all this stuff is useful! I
> wonder if such a thing exists?
It only exists within firms providing the infrastructure and research
everybody else employs to do their things. I'm talking about Microsoft,
Adobe, Sun, Autodesk, open source projects etc...
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
nemesis wrote:
> "Welcome to the desert of the real." ;)
How apt those words suddenly seem...
>> 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.
>
> You forgot computer graphics. :)
I pretty much figured computer games subsumed that - but sure, people
also use graphics itself for movie special effects and previs,
scientific visualisation, mathematical modelling, etc.
> Anyway, those are niches. 90% of IT (which is not the same as compsci)
> is about COBOLs.
Hmm. Between the global telecommunications network (with its custom
hardware and the recent craze for mobile phones), the
multi-billion-dollar games industry, the presumably large industry
making computer components (most of which require drives of some kind),
the ever-increasing sea of consumer goods that need firmware to
function, the financial institutions that build and run huge complex
financial simulations, and the endless array of applications of DSP...
those look like some pretty ****ing big niches to me! ;-)
I believe it was Djikstra who wrote "The use of COBOL cripples the mind;
its teaching should therefore be considered a criminal act."
>> Also... I really ought to get a job where all this stuff is useful! I
>> wonder if such a thing exists?
>
> It only exists within firms providing the infrastructure and research
> everybody else employs to do their things. I'm talking about Microsoft,
> Adobe, Sun, Autodesk, open source projects etc...
Yeah - maybe I should get said to write open source software?
Oh, wait...
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> (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?)
It seemed during my degree (Engineering) that they expected everyone was
going to go out there and design a finite element analysis software package
(note I said design, not code), or come up with some new standards for
building bridges, or use some exotic material for some new purpose. Nobody
seemed to imagine that some people might want to actually go and work on
more mundane things that most Engineers do, hence nobody taught us how to
make a complete 2D Engineering drawing (either by hand or on the computer),
or how to use a modern 3D CAD package, or how to use any software to help
with electronic circuit design.
> During my course, I recall seeing exactly one equation.
Haha, I recall seeing equations in my dreams (or should that be
nightmares?). Seriously, I think I did the most theoretical Engineering
course in existence.
> So anyway, that's what *I* did during my degree. Anybody out there do
> anything more interesting?
I really enjoyed my University course, for me most subjects were really
interesting. The only one I really got bored with was Thermofluid Mechanics
(all about steam cycles, heat cycles etc, I think we just had a bad
lecturer).
Here's a list of the 1st and 2nd year courses that everyone had to do: (3rd
and 4th year you could choose from a much longer list, but basically just
specialisations of the below subjects)
Kinematics and Dynamics in 2D
Dynamics of Rigid Bodies in 3D
Mechanical Vibrations
Thermofluid Mechanics I & II
Structural Mechanics I & II
Materials I & II
Physical Principles of Electronics and Electromagnetics
Linear Circuits and Devices I & II
Electrical Power
Electromagnetic Fields and Waves
Linear Systems and Control
Comms Fourier Transforms & Signal & Data Analysis
Digital Circuits and Information Processing
Mathematics
Vector Calculus
Linear Algebra
Computing
Dimensional Analysis
Engineering in Society
Product Design
Structural Design Project (ie building a bridge!)
The best part was the robot design project. We were put into teams of 6 and
told to make a robot that drove around a track marked by white lines on a
black board and picked up containers. The containers would either be empty
or full, and we had to move the containers to the appropriate bin. In most
teams 2 people actually made the robot mechanics, 2 did the electronics
(motor drive control, interface to PC, etc) and 2 did the software. Was
really good fun, especially as the quicker your robot completed the task the
more points you got.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
> It seemed during my degree (Engineering) that they expected everyone was
> going to go out there and design a finite element analysis software
> package (note I said design, not code), or come up with some new
> standards for building bridges, or use some exotic material for some new
> purpose. Nobody seemed to imagine that some people might want to
> actually go and work on more mundane things that most Engineers do,
> hence nobody taught us how to make a complete 2D Engineering drawing
> (either by hand or on the computer), or how to use a modern 3D CAD
> package, or how to use any software to help with electronic circuit design.
Heh. Well there *are* a lot of people out there working on novel
materials these days. (Organic semiconductors?! Whatever next!)
>> During my course, I recall seeing exactly one equation.
>
> Haha, I recall seeing equations in my dreams (or should that be
> nightmares?). Seriously, I think I did the most theoretical Engineering
> course in existence.
Theoretical... engineering... LMAO!
Ah, but did you implement a 9D Hypercardigan? ;-)
> I really enjoyed my University course, for me most subjects were really
> interesting. The only one I really got bored with was Thermofluid
> Mechanics (all about steam cycles, heat cycles etc, I think we just had
> a bad lecturer).
I mostly enjoyed mine.
9 AM on Monday morning of my very first day at university and we had a
lecture about Smalltalk. The guy giving the lecture was a seriously
smart guy. Like, every lecture or lab lession, after everybody had gone
home, me and him are still standing there arguing about the merits of
multiple inheritance or something!
OTOH, the whole module on report writing bored the HELL out of me! >_<
> Kinematics and Dynamics in 2D
Kinematics is a word?
> Mechanical Vibrations
That sounds pretty complicated. o_O
Any idea what a "resonant mode" is?
> Thermofluid Mechanics I & II
Ouch. AFAIK, anything involving fluids or gasses = highly complex.
> Materials I & II
Now that *sounds* quite simple... but I bet it isn't.
(I'm presuming this is about elastic vs plastic deformation and so forth.)
> Physical Principles of Electronics and Electromagnetics
...so, Lorenz forces and so on?
> Electrical Power
OK, I have *got* to be missing something here. ;-)
> Comms Fourier Transforms & Signal & Data Analysis
What a title! o_O
> Mathematics
Oh... so that's specific then!
> Vector Calculus
> Linear Algebra
More like it. ;-)
> Computing
Interesting?
> Engineering in Society
Not interesting??
> Structural Design Project (ie building a bridge!)
LOL!
> The best part was the robot design project. We were put into teams of 6
> and told to make a robot that drove around a track marked by white lines
> on a black board and picked up containers. The containers would either
> be empty or full, and we had to move the containers to the appropriate
> bin. In most teams 2 people actually made the robot mechanics, 2 did
> the electronics (motor drive control, interface to PC, etc) and 2 did
> the software. Was really good fun, especially as the quicker your robot
> completed the task the more points you got.
That *is* pretty neat.
The... uh... no, I can't remember the name of it. But there *is* a
programming contest that's a bit like the IRTC. They set a challenge,
and you have so many days to write a program that solves it. One of them
was where your program accepts a track description as input, and
produces a series of driving commands as output. The car that gets round
the track fastest wins. (But the car simulation part is an external
program, with limits on acceleration, cornering, etc.)
One day, maybe I will be skilled enough to complete... but I doubt it.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>> Kinematics and Dynamics in 2D
>
> Kinematics is a word?
Yes, it's basically about movements of objects without considering the
forces that cause the movements. eg if one part is fixed to move at 5000rpm
what happens to the rest of the connected system. Quite a lot of geometry
and resolving velocities, instantaneous centres of rotation etc.
> Any idea what a "resonant mode" is?
One particular way something can vibrate, that can't be split up further. A
bit like splitting a signal into sine waves. eg take a 30cm ruler, you can
bend it in the middle, that's the 1st mode. The 2nd mode is to force it
into a complete sine wave shape (ie two bends in the length). Of course in
3D you get many more modes, like twisting, bending in the other direction
etc. It's easier to analyse the system if you can split it down into the
resonant modes. Each resonant mode will also have a natural frequency.
> Ouch. AFAIK, anything involving fluids or gasses = highly complex.
Yep this was my worst course, working out the states of steam and water
vapour as it goes through a cycle, using huge look-up-tables because there
are no formulae for these highly complex things, etc. Although learning
exactly how a jet engine works and calculating the exit speed and
temperature of the exhaust gases was pretty cool.
>> Materials I & II
>
> Now that *sounds* quite simple... but I bet it isn't.
>
> (I'm presuming this is about elastic vs plastic deformation and so forth.)
Yeh, and how stress and cracks propagate, phase diagrams of mixtures of
materials, particularly on the iron-carbon one (there are like 100 different
states of iron depending how quickly it is cooled and what proportion of
carbon you have in there). Also hardness of materials, statistical analysis
of ceramics, that sort of thing.
> ...so, Lorenz forces and so on?
Yep, starting with how semiconductors work (very physicsy) then going on to
diodes and transistors, the 2nd part of the course did the same for
magnetics, really a base lecture course for other ones.
>> Electrical Power
>
> OK, I have *got* to be missing something here. ;-)
Well from the previous course we already learnt that resistance is complex,
so that helps you understand the generators and motors here, then 3-phase
power, power transmission, transformers, power factor correction, that sort
of stuff.
>> Comms Fourier Transforms & Signal & Data Analysis
>
> What a title! o_O
Got very hairy at stages with things like cross-correlation and
auto-correlation, also with things like z-transforms and FIR and IIR filters
etc.
>> Mathematics
>
> Oh... so that's specific then!
There were 2 courses here, both were optional depending on how much maths
you had done at A level. Most people sat the "fast" course just as a
refresher, just to relearn the basics like how to solve differential
equations, how matrices work, stuff like that.
>> Computing
> Interesting?
Not really, software life cycle, structured programming, numerical precision
errors, algorithm complexity, search&sort algorithms, very vague and
general, clearly aimed at writing some small code block to solve an
Engineering problem rather than any huge software project.
>> Structural Design Project (ie building a bridge!)
> LOL!
They applied prices to each bit of metal you could use, then you had a
budget to build a bridge to span a certain gap (about 1 metre) and support a
certain weight (about 150kg). Of course the cheapest one that could
withstand 150kg won. Mine buckled and collapsed spectacularly at about 70kg
due to me not actually putting it together very squarely. I still have this
twisted lump of rusting metal in the attic at home!
> The... uh... no, I can't remember the name of it. But there *is* a
> programming contest that's a bit like the IRTC. They set a challenge, and
> you have so many days to write a program that solves it. One of them was
> where your program accepts a track description as input, and produces a
> series of driving commands as output. The car that gets round the track
> fastest wins. (But the car simulation part is an external program, with
> limits on acceleration, cornering, etc.)
Oh that sounds cool, one of our practicals was a bit like that, we had to
write a program to control some factory that was producing several different
parts according to demand. It got quite complex and remember writing a 6 or
8 dimensional optimisation algorithm to see when was best to switch
production lines from one product to another!
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
>>> Kinematics and Dynamics in 2D
>>
>> Kinematics is a word?
>
> Yes, it's basically about movements of objects without considering the
> forces that cause the movements. eg if one part is fixed to move at
> 5000rpm what happens to the rest of the connected system. Quite a lot
> of geometry and resolving velocities, instantaneous centres of rotation
> etc.
So if you wanted to describe the motion of a complex arrangement of
rigid components (e.g., a car gearbox), you'd use kinematics?
>> Any idea what a "resonant mode" is?
>
> One particular way something can vibrate, that can't be split up
> further. A bit like splitting a signal into sine waves. eg take a 30cm
> ruler, you can bend it in the middle, that's the 1st mode. The 2nd mode
> is to force it into a complete sine wave shape (ie two bends in the
> length). Of course in 3D you get many more modes, like twisting,
> bending in the other direction etc. It's easier to analyse the system
> if you can split it down into the resonant modes. Each resonant mode
> will also have a natural frequency.
So... the resonant modes of a effectively 1D system (a string, a
gas-filled pipe, etc.) would just be harmonics of the main resonant
frequency?
>> Ouch. AFAIK, anything involving fluids or gasses = highly complex.
>
> Yep this was my worst course, working out the states of steam and water
> vapour as it goes through a cycle, using huge look-up-tables because
> there are no formulae for these highly complex things, etc. Although
> learning exactly how a jet engine works and calculating the exit speed
> and temperature of the exhaust gases was pretty cool.
Heh. So you know how an ideal gas is different from a real gas then? ;-)
>>> Materials I & II
>>
>> Now that *sounds* quite simple... but I bet it isn't.
>>
>> (I'm presuming this is about elastic vs plastic deformation and so
>> forth.)
>
> Yeh, and how stress and cracks propagate, phase diagrams of mixtures of
> materials, particularly on the iron-carbon one (there are like 100
> different states of iron depending how quickly it is cooled and what
> proportion of carbon you have in there). Also hardness of materials,
> statistical analysis of ceramics, that sort of thing.
Perhaps you could explain something to me then:
If I take a piece of paper and hold it horisontal, it flops under its
own weight. But if I fold it down the middle, now it *can* stand up
under its own weight. (But only if you hold it the right way.)
At the same time, a straight metal rod is very strong, but once bent it
becomes drastically weaker, and it seems that nothing will restore it to
its original condition.
>>> Comms Fourier Transforms & Signal & Data Analysis
>>
>> What a title! o_O
>
> Got very hairy at stages with things like cross-correlation and
> auto-correlation, also with things like z-transforms and FIR and IIR
> filters etc.
Now that really does sound interesting! Heh.
I still have trouble getting the fine technical details of DSP straight
in my head. The basic principles are quite simple - once somebody
explains them properly - but minor details can make all the difference.
(Is this a normalised or an un-normalised sinc function?)
>>> Mathematics
>>
>> Oh... so that's specific then!
>
> There were 2 courses here, both were optional depending on how much
> maths you had done at A level. Most people sat the "fast" course just
> as a refresher, just to relearn the basics like how to solve
> differential equations, how matrices work, stuff like that.
Wait - there's a way to *solve* differential equations?? o_O
I thought you just guess formulas at random until you happen upon one
that has the desired properties - or more likely, use numerical
simulation instead.
>>> Computing
>> Interesting?
>
> Not really, software life cycle, structured programming, numerical
> precision errors, algorithm complexity, search&sort algorithms, very
> vague and general, clearly aimed at writing some small code block to
> solve an Engineering problem rather than any huge software project.
Floating-point arithmetic is a non-associative algebra. Isn't that sad? :'(
>>> Structural Design Project (ie building a bridge!)
>> LOL!
>
> They applied prices to each bit of metal you could use, then you had a
> budget to build a bridge to span a certain gap (about 1 metre) and
> support a certain weight (about 150kg). Of course the cheapest one that
> could withstand 150kg won. Mine buckled and collapsed spectacularly at
> about 70kg due to me not actually putting it together very squarely. I
> still have this twisted lump of rusting metal in the attic at home!
Niiiice...
I wonder - can I find it on YouTube? Hold on a sec...
...yep, I found it:
http://uk.youtube.com/watch?v=-fE5ZE4Pj5w
PROPPER JOB!!
OMG, the first time I watched this on TV, I killed myself laughing. All
those hours to build, and it ****ed itself to pieces in seconds! :-D
>> The... uh... no, I can't remember the name of it. But there *is* a
>> programming contest that's a bit like the IRTC. They set a challenge,
>> and you have so many days to write a program that solves it. One of
>> them was where your program accepts a track description as input, and
>> produces a series of driving commands as output. The car that gets
>> round the track fastest wins. (But the car simulation part is an
>> external program, with limits on acceleration, cornering, etc.)
>
> Oh that sounds cool, one of our practicals was a bit like that, we had
> to write a program to control some factory that was producing several
> different parts according to demand. It got quite complex and remember
> writing a 6 or 8 dimensional optimisation algorithm to see when was best
> to switch production lines from one product to another!
...I DID THE WRONG DEGREE! >_<
AND I'M IN THE WRONG JOB NOW... :'{
By the way... how much of the stuff you learnt do you actually *use* now
anyway? ;-)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> 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.
log is kind of a neat function.
One cool trick is ln(x)/ln(n) will compute the base n log of x. Then you
can use it to solve x in 2^x = 128 ;)
Its sort of the inverse of exponentiation.
Anyway .... you have all this CS background and are not a programmer...
get out there and get a programming job already! :)
My last job had me using a ton of trig, vector and matrix arithmetic.
This one, not so much, I'm basically basically n-tier hell. But, it pays
the bills.
--
~Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mike Raiford wrote:
> log is kind of a neat function.
It's certainly a very useful thing.
Logarithmic decay, the complex-valued log and antilog functions (Euler's
relation and all that), the discrete logarithm problem...
> Its sort of the inverse of exponentiation.
Indeed - although I think "antilogarithm" sounds so much cooler than
"exponent". ;-)
> Anyway .... you have all this CS background and are not a programmer...
> get out there and get a programming job already! :)
Apparently there's a global economic crisis of some kind happening... I
don't really pay much attention... But apparently this is a bad time to
get hired.
FWIW, I applied to about 7 jobs on Saturday. (Before I got dragged to
Watford and made to dance in public.) The soul-destroying thing is, you
apply to all these jobs AND NEVER GET A REPLY. x_x
> My last job had me using a ton of trig, vector and matrix arithmetic.
> This one, not so much, I'm basically basically n-tier hell. But, it pays
> the bills.
Basically basically?
So that's, what, tier-2?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
>
> Basically basically?
>
> So that's, what, tier-2?
Whoops, missed that must have duped the word when editing my post :/
--
~Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|