c***@wmin.ac.uk
2005-09-19 09:34:42 UTC
Hi everyone. I'm told that this is a good place to discuss university
level programming modules.
Over the next year I'll be teaching a module on "Audio Application
Development" using Java and JSyn. JSyn is a package for electronic
music synthesis (native code) in Java. The students will mostly not
have programmed before. Hence I have to teach a basis in Java before I
start showing them how to do the electronic music bits. I have a
lecture schedule prepared that I believe balances these two aims, and
gives them sufficient grounding before we start on basic beeps, buzzes,
and whooshes (to use the technical terms :-) ).
Here's my question. One thing that concerns me about programming
modules nowdays is that sometimes at least there's a lack of coverage
of issues such as good program design and algorithm efficiency. I hope
to at least mention such issues such as top down or bottom up program
design in the more advanced sections of the course in the context of
sample applications. However, program efficiency is where it's more
difficult to create an example. In my current notes, I have a single
lecture on sorting, which describes bubblesort, and then mergesort. I
then show (more in an arm-waving way than a general proof) that
bubblesort is O(n^2) but mergesort is O(n log n ). I then mention
heapsort as being O(n log n) without requiring additional space and
talk about time and space efficiency.
To include this lecture in the module, naturally other things are not
included. At present my default action is to leave the efficiency
lecture in, and perhaps create "additional" unexamined notes for
"ghost" lectures that won't be given (I do this quite frequently in my
modules) covering the material that I'm missing out. If I kicked out
the efficiency lecture, the notes would still be made available to the
students.
I'd like to hear people's comments on the importance on including at
least a mention of algorithm efficiency in special purpose programming
modules.
Cheers,
Ross -c
level programming modules.
Over the next year I'll be teaching a module on "Audio Application
Development" using Java and JSyn. JSyn is a package for electronic
music synthesis (native code) in Java. The students will mostly not
have programmed before. Hence I have to teach a basis in Java before I
start showing them how to do the electronic music bits. I have a
lecture schedule prepared that I believe balances these two aims, and
gives them sufficient grounding before we start on basic beeps, buzzes,
and whooshes (to use the technical terms :-) ).
Here's my question. One thing that concerns me about programming
modules nowdays is that sometimes at least there's a lack of coverage
of issues such as good program design and algorithm efficiency. I hope
to at least mention such issues such as top down or bottom up program
design in the more advanced sections of the course in the context of
sample applications. However, program efficiency is where it's more
difficult to create an example. In my current notes, I have a single
lecture on sorting, which describes bubblesort, and then mergesort. I
then show (more in an arm-waving way than a general proof) that
bubblesort is O(n^2) but mergesort is O(n log n ). I then mention
heapsort as being O(n log n) without requiring additional space and
talk about time and space efficiency.
To include this lecture in the module, naturally other things are not
included. At present my default action is to leave the efficiency
lecture in, and perhaps create "additional" unexamined notes for
"ghost" lectures that won't be given (I do this quite frequently in my
modules) covering the material that I'm missing out. If I kicked out
the efficiency lecture, the notes would still be made available to the
students.
I'd like to hear people's comments on the importance on including at
least a mention of algorithm efficiency in special purpose programming
modules.
Cheers,
Ross -c