Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!ncar!midway!iitmax!draughn From: draughn@iitmax.IIT.EDU (Mark Draughn) Newsgroups: comp.edu Subject: Re: ALGORITHMS ANYBODY? Message-ID: <4147@iitmax.IIT.EDU> Date: 23 Aug 90 02:36:39 GMT References: <90Aug22.090345edt.9450@neat.cs.toronto.edu> Reply-To: draughn@iitmax.iit.edu (Mark Draughn) Organization: Illinois Institute of Technology Lines: 50 In article <90Aug22.090345edt.9450@neat.cs.toronto.edu> mgreen@cs.toronto.edu (Marc Green) writes: [...] >I've decided to center the course of the view that computer languages >are a way to formally specify algorithms. I'd like the students to >program the same 3-4 algorithms in several languages, to get a feel >for the differences. [...] >I have in mind algorithms like bubble-sort, merge-sort, tree-search >and problems like the Tower of Hanoi. Any others? I always start learning a language by writing a program that prints "Hello world." It's short and simple in most languages. Seriously, maybe I'm misunderstanding you, but this plan of yours sounds a bit boring. These algorithms look about the same in almost all languages. Sure, LISP recursions and FORTRAN loops look different, but what do you do after that? Let me suggest a test. Before assigning the "do bubble sort in three different languages" problem, do it yourself. Be sure to do everything you would expect the students to do: Input/output, comments, documentation, and maybe input verification. Be sure to test your programs, since the students would test theirs before turning them in. If your students would have to prepare floppies or hardcopy, you should do the same. If this seems like a lot of work for no purpose or if you are tempted to quit once you have proved to yourself that you can do the first one, it is likely that your students will feel the same way. This is just My Humble Opinion, but I find some fault with the usual thinking about large v.s. small programming assignments. Many people think that a group of several small assignments is more interesting than one big assignment because the big assignment probably has a lot more non-concept-related code than the small one. I often find, however, that if the concepts are too closely related, the overhead of preparing the resulting code (testing, printing copies, making floppies, checking documentation) seems too wasteful. (If you want to tell a friend 5 different things, would you rather send one long letter discussing all five things, or five short letters?) Although excitement is not the primary criterion for judging the value of homework assignments, it seems to me that by requiring several programs that do exactly the same thing, you are making the process more boring than it has to be. -- Mark Draughn | or on BITNET ----------------+ Academic Computing Center, Illinois Institute of Technology +1 312 567 5962 | 10 W. 31st Street, Chicago, Illinois 60616