home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / edu / 2271 < prev    next >
Encoding:
Internet Message Format  |  1993-01-06  |  3.4 KB

  1. Xref: sparky comp.edu:2271 comp.software-eng:5207
  2. Path: sparky!uunet!cs.utexas.edu!swrinde!gatech!destroyer!cs.ubc.ca!columbia.cs.ubc.ca!not-for-mail
  3. From: manis@cs.ubc.ca (Vincent Manis)
  4. Newsgroups: comp.edu,comp.software-eng
  5. Subject: Re: Class Project For Software Engineering Course
  6. Date: 4 Jan 1993 18:20:38 -0800
  7. Organization: Institute for Pure and Applied Eschatology
  8. Lines: 50
  9. Message-ID: <1iar9mINNss7@columbia.cs.ubc.ca>
  10. References: <1i4lfqINN849@crcnis1.unl.edu> <1ia3e0INN9m5@aludra.usc.edu> <1993Jan4.162437.19108@hemlock.cray.com>
  11. NNTP-Posting-Host: columbia.cs.ubc.ca
  12.  
  13. I've had considerable success over the years with what I call a
  14. ``dumbbell'' project, namely 2 sub-projects connected by a
  15. narrow-bandwidth interface. The classic example of this (which I have
  16. used twice, and shamelessly intend to use again) is an electronic mail
  17. system, in which the 2 sub-projects are a user agent and a message
  18. transfer agent. Another similar system is a student registration system,
  19. again with a centralized data base and a student terminal agent.  News
  20. systems, airline reservation systems, and the like are other good
  21. examples.  
  22.  
  23. The protocol (interface) between these can be carefully defined (for the
  24. email project, I designed a sort of ``baby SMTP''). The importance of a
  25. clearly-specified interface becomes clear when one has to make one's
  26. user agent work with somebody else's message transfer agent. 
  27.  
  28. There are a number of virtues of this approach: first, students are all
  29. working on related projects, and thus get a good chance to interact with
  30. other students (unlike in the ``find a client, and write a program which
  31. satisfies the client's needs'' project type). Second, the program
  32. structure is realistic (server/client computing, anyone?). Students know
  33. this, and find it motivating. Third, it develops the concept of not only
  34. working within a group, but also with another group (one group has to
  35. test its user agent with another group's message transfer agent).
  36. Fourth, it mixes good software design methodology (a common ADT for
  37. messages on both the user agent and message transfer agent sides, for
  38. example) with effective use of practical tools (user interface tools and
  39. databases, for example). 
  40.  
  41. Some argue that a project should be ``useful'', in the sense that an A
  42. project can actually be put into production (with some minor
  43. modification). I strenuously object to this principle. Useful programs
  44. have a lot of ``straight-line'' code (e.g., data editing) which students
  45. will learn nothing useful by doing. (Of course I'm not arguing that
  46. students shouldn't learn to write error checking code!) As an example,
  47. the software engineering project at the University of BC one year was to
  48. write a membership system for the Canadian Information Processing
  49. Society. The best project was chosen; even then, it took a great deal of
  50. work on the resulting system to render it usable as a candidate system
  51. for CIPS. 
  52.  
  53. Given that even the best project is unlikely to be directly useful, my
  54. preference is for a project which is artfully constructed so as to
  55. concentrate the principles we're trying to teach, while still being doable
  56. in 3 credit hours.
  57.  
  58. -- 
  59. \    Vincent Manis <manis@cs.ubc.ca>      "There is no law that vulgarity and
  60.  \   Computer Science, Langara College     literary excellence cannot coexist."
  61.  /\  100 W. 49th Ave, Vancouver, BC, Canada (604) 324-5205  -- A. Trevor Hodge
  62. /  \ Co-author of ``The Schematics of Computation'', Prentice-Hall, Jan 1994
  63.