Re: Student Programming Projects
Next Semester, I am supposed to teach a short course in Haskell. Can anyone recommend interesting programming projects which can be completed in about a month? Thank you very much.
apart from "pure" programming exercise (see Haskell textbooks http://haskell.org/bookshelf/) here are a few suggestions in the area of experimental mathematics. also, check with your introductory discrete mathematics course (or equivalent). a lot of combinatorial problems on finite structures can be illustrated by finding (counter-)examples by computer. say Ramsey colorings, Monochromatic arithmetic subsequences (van der Waerden's theorem), words avoiding patterns, and so on. http://www-igm.univ-mlv.fr/~berstel/Lothaire/ChapitresACW/C3.ps next, perhaps some game theory? nim (and variants), other take-and-break games (octal games). you can safely ignore all of the Sprague-Grundy theory, and just define the game, and ask for some method to determine quickly who wins. or graph theory: finding hamiltonian paths (knights tours on a x b chessboards, for instance) if the students alreay took some computability theory, then a nice topic is Posts Correspondence Problem, see http://www.cs.ualberta.ca/~zhao/PCP/intro.htm http://www.informatik.uni-leipzig.de/~pcp/pcpcontest_en.html also string rewriting: finding/avoiding loops. this (open!) problem is easily stated: http://www.lri.fr/~rtaloop/95.html hope this helps. I'm happy to provide more detail. -- -- Johannes Waldmann ---- http://www.informatik.uni-leipzig.de/~joe/ -- -- joe@informatik.uni-leipzig.de -- phone/fax (+49) 341 9732 204/252 --
Next Semester, I am supposed to teach a short course in Haskell. Can anyone recommend interesting programming projects which can be completed in about a month? Thank you very much.
This doesn't come from direct experience and you don't specify what the students will already know, whether they're all `good' programmers,etc but... Maybe some sort of simulation/control type problem, something like say managing a supply depot under requests for products from ultimate consumers and issuing requests for more stock from the ultimate manufacturers (which may be filled unreliably.) The key reason for suggesting this is it avoids being so mathematical that computer science students who dislike maths will be turned off (at least as much :-) ), it has a natural usage of infinite lists (consumer demand, manufacturer responses) and has lots of opportunities for smart-alecks to show off whilst not being impossible for a weaker student to complete usefully (and in an extreme case you could write an overall framework into which really weak students can write components to be plugged in, thus allowing them to demonstrate some `micro' grasp of haskell when the haven't got a macro grasp.) (The weaker students bit is more from a belief that a 40% student should be able to get a 40% mark on some coursework, rather than it being impossible to get less than about 80% because the project leads to programs which either work almost perfectly or not at all. I'm not suggesting making it ridiculously easy.) ___cheers,_dave________________________________________________________ www.cs.bris.ac.uk/~tweed/pi.htm |tweed's law: however many computers email: tweed@cs.bris.ac.uk | you have, half your time is spent work tel: (0117) 954-5250 | waiting for compilations to finish.
A standard program I usually write to test out a new language is a simple ray-tracer, the algorithms and theory are pretty easy, and you can provide them with the low level vector manipulation code. I imagine students also will enjoy the oprotunity to create pretty pictures. John On Fri, Sep 21, 2001 at 11:03:22AM +0100, D. Tweed wrote:
Next Semester, I am supposed to teach a short course in Haskell. Can anyone recommend interesting programming projects which can be completed in about a month? Thank you very much.
-- --------------------------------------------------------------------------- John Meacham - California Institute of Technology, Alum. - john@repetae.net ---------------------------------------------------------------------------
participants (3)
-
D. Tweed -
Johannes Waldmann -
John Meacham