From cse505-request Wed Sep 28 13:41:01 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id NAA28753; Wed, 28 Sep 1994 13:40:43 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id NAA08826; Wed, 28 Sep 1994 13:40:43 -0700 Date: Wed, 28 Sep 1994 13:40:43 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199409282040.NAA08826@geoduck.cs.washington.edu> To: zmason@june CC: cse505@june In-reply-to: Zachary Mason's message of Wed, 28 Sep 1994 13:37:18 -0700 <199409282037.NAA28131@june.cs.washington.edu> Subject: re: 505:problem 2 Status: RO oops - this got garbled with something from last year's assigment. Sorry. The correct problem is just: Write a Miranda function "average" that computes the average of a list of numbers. It is an error to give this function an empty list. From cse505-request Wed Sep 28 17:16:49 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id RAA29215 for ; Wed, 28 Sep 1994 17:16:45 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id RAA10643; Wed, 28 Sep 1994 17:16:45 -0700 Date: Wed, 28 Sep 1994 17:16:45 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199409290016.RAA10643@geoduck.cs.washington.edu> To: cse505@cs Subject: supplementary reading material Status: RO I started a 505 drawer in the 4th floor filing cabinets (it's the one nearest the microwave oven). I'll put optional reading material and such there during the quarter. To start things off, I put a copy of the original paper by Robin Milner on the type system and type checker for ML in the drawer (this is basically the type system used in Miranda). Read this if you would like a more formal treatment of the topic than we will discuss in class. Also I put a couple of copies of the SIGPLAN special issue on Haskell -- there is a tutorial and a reference manual. Haskell is a more recent, complex, slower, and powerful functional language than Miranda. Also, if you would like a more basic introduction to Miranda's type system, I have a couple of books you can borrow. A. From cse505-request Fri Sep 30 14:18:53 1994 Received: from sculpin.cs.washington.edu (sculpin.cs.washington.edu [128.95.2.177]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id OAA28350 for ; Fri, 30 Sep 1994 14:18:44 -0700 Received: (brd@localhost) by sculpin.cs.washington.edu (8.6.8/7.2ws+) id OAA26907 for cse505; Fri, 30 Sep 1994 14:18:37 -0700 Date: Fri, 30 Sep 1994 14:18:37 -0700 From: brd@sculpin Message-Id: <199409302118.OAA26907@sculpin.cs.washington.edu> To: cse505@sculpin Subject: Office Hours Status: RO Hi everyone, My office hours are going to happen Monday 2:30 - 3:20 and Tuesday 11:30 - 12:20 these are of course subject to change if no one can make them... Also, since I've been slack about figuring these out, I'll have an extra hour this coming monday, 3:30 - 4:20 I can give a lisp tutorial/help session, if people are still trying to catch up on this stuff. --ben From cse505-request Fri Sep 30 14:24:41 1994 Received: from sculpin.cs.washington.edu (sculpin.cs.washington.edu [128.95.2.177]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id OAA29536 for ; Fri, 30 Sep 1994 14:24:30 -0700 Received: (brd@localhost) by sculpin.cs.washington.edu (8.6.8/7.2ws+) id OAA26933 for cse505; Fri, 30 Sep 1994 14:24:22 -0700 Date: Fri, 30 Sep 1994 14:24:22 -0700 From: brd@sculpin Message-Id: <199409302124.OAA26933@sculpin.cs.washington.edu> To: cse505@sculpin Subject: Office Hour Location Status: RO Sorry, I forgot to mention the fact that I'm going to hold my hours in the cubes on the fourth floor. The reason for this is that the TA office schedule for 326 is pretty heavily booked and because I don't anticipate the kind of mob scenes that you get in undergrad classes. Anyway, I'll see how this works -- if there are a lot of objections, I'll change things. ben From cse505-request Sat Oct 1 21:21:01 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id VAA07822 for ; Sat, 1 Oct 1994 21:20:57 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id VAA02356; Sat, 1 Oct 1994 21:20:59 -0700 Date: Sat, 1 Oct 1994 21:20:59 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410020420.VAA02356@geoduck.cs.washington.edu> To: cse505@geoduck Subject: strictness Status: RO On Friday the question arose whether a function is strict in an argument (say a list argument) if it always needs to access part of the list, but not necessarily all of it. The answer is no. Formally, a function is strict in an argument if, when applied to a nonterminating expression, it also fails to terminate. So for "member" to be strict, it would need to not terminate when applied to an infinite list, but this isn't necesarily the case. The notion of being strict applies to languages both with and without currying. Let's work through an example with currying. Consider my_if: my_if True x y = x my_if False x y = y my_if is strict in its (single) argument. If the argument is True, my_if returns a function that is strict in its argument, and that returns yet another function that isn't strict in its argument. If the argument is False, it returns a function that isn't strict in its argument, and that finally returns a function that is strict in its argument. From cse505-request Mon Oct 3 16:57:06 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id QAA05808 for ; Mon, 3 Oct 1994 16:56:59 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id QAA13673; Mon, 3 Oct 1994 16:57:03 -0700 Date: Mon, 3 Oct 1994 16:57:03 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410032357.QAA13673@geoduck.cs.washington.edu> To: cse505@geoduck Subject: notetaker needed Status: RO We have a student with a disability in this class who needs assistance with notetaking. The Office of Disabled Student Services has asked me to request a volunteer, as they have not found a notetaker yet. We are looking for 2 notetakers, a primary and an alternate, who are able to copy their notes once a week. DSS pays for the photocopying and will provide a letter of recommendation for your volunteer hours. Please contact DSS if you are interested. They are located in Schmitz Hall room 448, 543-8925. Thanks. From cse505-request Mon Oct 3 22:27:52 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id WAA01229 for ; Mon, 3 Oct 1994 22:27:47 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id WAA15121; Mon, 3 Oct 1994 22:27:50 -0700 Date: Mon, 3 Oct 1994 22:27:50 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410040527.WAA15121@geoduck.cs.washington.edu> To: cse505@geoduck Subject: due date postponed Status: RO I'm going to postpone the due date for assignment 1 to Friday Oct 7, since we haven't finished covering the material on infinite data structures yet. A. From cse505-request Thu Oct 6 16:54:05 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id QAA18846; Thu, 6 Oct 1994 16:53:55 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id QAA05206; Thu, 6 Oct 1994 16:53:54 -0700 Date: Thu, 6 Oct 1994 16:53:54 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410062353.QAA05206@geoduck.cs.washington.edu> To: glinden@june CC: cse505@geoduck In-reply-to: Greg Linden's message of Thu, 6 Oct 1994 16:41:05 -0700 (PDT) <199410062341.QAA17445@june.cs.washington.edu> Subject: re: Questions on Assignment #2 Status: RO From: glinden@june (Greg Linden) Subject: Questions on Assignment #2 To: borning@june (Alan BORNING) Date: Thu, 6 Oct 1994 16:41:05 -0700 (PDT) X-Mailer: ELM [version 2.4 PL23] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 673 I'm a little confused about assignment #2. Could you answer the following questions for me? Sure. I'm cc'ing the class list, since other students will likely have similar questions. Does the remove function remove all matching elements from the list or just the first element found? Just the first element. If just the first element, can we just use -- or should we take advantage of the sorted format of the list. The list should be stored sorted; take advantage of this -- if you go past where the element would be you can stop. Similarly for member. Can we just sort the list after the fact? For example, insert would just cons the element on then call quicksort on the resulting list. No, store it sorted -- insert a new element in the right place. Likewise, can sorted_map just call map, then quicksort on the result? This is ok -- although a better style would be to use "insert" to insert each new element produced into the sorted result. I already implemented it without using "--" or qsort, but I'm thinking of rewriting it using those operators to be more concise. Thanks. -Greg From cse505-request Thu Oct 6 17:05:41 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id RAA20731 for cse505; Thu, 6 Oct 1994 17:05:30 -0700 Date: Thu, 6 Oct 1994 17:05:30 -0700 From: brd (Benedict Dugan) Message-Id: <199410070005.RAA20731@june.cs.washington.edu> To: cse505 Subject: Confusion Status: RO Sorry for not being clear: when i say i want a script of your program running, I mean that i want you to use the unix script command to "record" your interaction with miranda. use script to do this, and then print the resulting file (called typescript by default i believe). do a man on script if you're still confused. ben From cse505-request Sat Oct 8 05:28:22 1994 Received: from wolf.cs.washington.edu (wolf.cs.washington.edu [128.95.8.37]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id FAA07747 for ; Sat, 8 Oct 1994 05:28:17 -0700 Received: (ctkwok@localhost) by wolf.cs.washington.edu (8.6.8/7.2ws+) id FAA00566; Sat, 8 Oct 1994 05:28:16 -0700 Date: Sat, 8 Oct 1994 05:28:16 -0700 From: ctkwok@wolf ((Cody C.T. Kwok)) Message-Id: <199410081228.FAA00566@wolf.cs.washington.edu> To: cse505@cs Subject: printing abstype Status: RO If anyone has trouble printing your sorted_list, you can use /man item 21. Basically you define a function showsorted_list and the miranda read-eval-print loop will automatically use this function to print your sorted_list. Please refer to the man page for details. --Cody. From cse505-request Sat Oct 8 11:12:09 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id LAA18003 for ; Sat, 8 Oct 1994 11:12:05 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id LAA16031; Sat, 8 Oct 1994 11:12:03 -0700 Date: Sat, 8 Oct 1994 11:12:03 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410081812.LAA16031@geoduck.cs.washington.edu> To: ctkwok@wolf CC: cse505@cs In-reply-to: (Cody C.T. Kwok)'s message of Sat, 8 Oct 1994 05:28:16 -0700 <199410081228.FAA00566@wolf.cs.washington.edu> Subject: re: printing abstype Status: RO Right - there are also examples of using show in the files ~borning/miranda/queues.m and ~borning/miranda/sorted_tree.m on lynx. This is, incidentally, a good example of the limitations of universal polymorphism without overloading. The situation is crying out for an overloaded "show" function, with different function definitions for the different types -- or better, an object-oriented approach, as we'll talk about later. Turner chose to kludge this particular case, rather than complicate the type system and allow overloading for any function. From cse505-request Mon Oct 10 22:14:39 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id WAA05401; Mon, 10 Oct 1994 22:14:34 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.8/7.2ws+) id WAA01845; Mon, 10 Oct 1994 22:14:34 -0700 Date: Mon, 10 Oct 1994 22:14:34 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410110514.WAA01845@geoduck.cs.washington.edu> To: shade@june.cs.washington.edu CC: cse505@cs In-reply-to: Jonathan Shade's message of Mon, 10 Oct 1994 21:48:43 -0700 (PDT) Subject: re: question 1 of 2nd homework Status: RO > When you said to give the optimized form for square > ( using the additional B and C combinators ), did you > mean _only_ use the B and C combinators, or did you mean > use the optimization rules on page 35 of the Turner paper, > which happen to include the B and C combinators. The latter -- your answer doesn't necesarily have to use the B and C combinators -- just follow the optimization rules. Sorry this wasn't stated right. A. From cse505-request Tue Oct 11 14:35:42 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id OAA07574 for cse505; Tue, 11 Oct 1994 14:35:35 -0700 Date: Tue, 11 Oct 1994 14:35:35 -0700 From: brd (Benedict Dugan) Message-Id: <199410112135.OAA07574@june.cs.washington.edu> To: cse505 Subject: What to turn in... Status: RO Yes, electronic turnin is working, but no, we're not going to use it for this assignment. Why you ask? Well there are a number of reasons, and here are some of them: (1) as i see it, elec turnin will only mean that i need to spend *more* time grading the assignments (yes, some stuff can be done via script, but not on this assignment -- the interface to your abstype, for instance, is somewhat underspecified, and there are probably a variety of different interfaces out there). (2) i am trying to minimize the amount of time i spend typing -- to give a damaged elbow a chance to heal (i'll have to type comments, grades, and mail them to you... etc.) so, in short, i think it is ridiculous to use a technology when it doesn't really add anything to your daily existence. until i hear a very good case for using it (and there are some, but they don't really apply to this assignment, i think) I'm not going to. so, what do I want handed in? (1) the code (2) the written part and (3) a script showing your abstype in action on AT LEAST TWO different types (say nums and strings)... use your imagination and make sure you exercise your abstype throroughly. --Ben From cse505-request Thu Oct 13 14:00:07 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id NAA28305 for cse505; Thu, 13 Oct 1994 13:59:57 -0700 Date: Thu, 13 Oct 1994 13:59:57 -0700 From: brd (Benedict Dugan) Message-Id: <199410132059.NAA28305@june.cs.washington.edu> To: cse505 Subject: Assignments Status: RO Hey all, They are graded and will be available for pickup after class tomorrow. Assignment 1 was graded out of 30, the average score being 29.5 point breakdown: (2) = 2 pts (3) = 2 pts (4) = 10 pts (5) = 16 pts poiints were deducted for severe cases of under-commenting (as in zero comments), not sorting your polynomials for output, poor decomposition of the polynomial problem, and not putting much effort into the inf. data struct problem.... ... as you can see, everyone did really well. Assignment 2 was graded out of 10, the average score being 9.8 point breakdown: (1) 6 points (2) 4 points everyone did fine except for a few cases where people didn't take advantage of the "sortedness" of the list... --Ben From cse505-request Thu Oct 13 14:08:02 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id OAA29523 for cse505; Thu, 13 Oct 1994 14:07:55 -0700 Date: Thu, 13 Oct 1994 14:07:55 -0700 From: brd (Benedict Dugan) Message-Id: <199410132107.OAA29523@june.cs.washington.edu> To: cse505 Subject: Infinite Data Structs Status: RO There were a lot of interesting and some not-so examples of inf. data struct ideas: here's a summary -- Life (5 people did this) Fractals (3 people did this) URL hunting on the web Cryptosystems Monte Carlo simulation newton's method palindromes random numerical (Ramanujan, perfect #s, pythagorean triples, primes) devolution (sort of like life, i suppose) random list processing game show probability --ben From cse505-request Fri Oct 14 14:04:44 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id OAA01958 for ; Fri, 14 Oct 1994 14:04:38 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id OAA02281; Fri, 14 Oct 1994 14:04:37 -0700 Date: Fri, 14 Oct 1994 14:04:37 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410142104.OAA02281@geoduck.cs.washington.edu> To: cse505@cs Subject: typo in assignment #3 Status: RO Sorry ... on question 5, the procedure call should be to "whale" rather than "test" in the line if n<5 then whale (n+1,squid); This is fixed on the online version in the course web. A. From cse505-request Fri Oct 14 15:05:08 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id PAA10285 for cse505; Fri, 14 Oct 1994 15:04:52 -0700 Date: Fri, 14 Oct 1994 15:04:52 -0700 From: brd (Benedict Dugan) Message-Id: <199410142204.PAA10285@june.cs.washington.edu> To: cse505 Subject: Parameter Passing Status: RO If you found any of the parm. passing material confusing, or just want to learn more about seafood, I'm considering offering a tutorial about such issues. The last tutorial (lisp) was a raging success. I'm considering offering this sometime between 2:30 and 4:20 on monday. If that really doesn't suit your sched, and you're interested in coming please let me know. --ben From cse505-request Mon Oct 17 09:34:01 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id JAA29211 for cse505; Mon, 17 Oct 1994 09:33:55 -0700 Date: Mon, 17 Oct 1994 09:33:55 -0700 From: brd (Benedict Dugan) Message-Id: <199410171633.JAA29211@june.cs.washington.edu> To: cse505 Subject: Parameter Passing Status: RO Because my office hours commonly suffer from "under-crowding," I'm just going to use them for a parm passing tutorial. If you have questions about parm. passing, just show up (preferrably towards the beginning of the hour) and we'll work through them together. the office hours are, as usual, M 2:30-3:20 and T 11:30-12:20 in the cubes... --ben From cse505-request Mon Oct 17 14:25:29 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id OAA11298 for ; Mon, 17 Oct 1994 14:25:02 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id OAA21330; Mon, 17 Oct 1994 14:25:01 -0700 Date: Mon, 17 Oct 1994 14:25:01 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410172125.OAA21330@geoduck.cs.washington.edu> To: cse505@geoduck Subject: Ada lecture notes ready ... Status: RO They are in the 505 Web. The notes include some additional topics we didn't discuss in class, in particular exception handling and concurrency. For exception handling, I plan to discuss this when we come to Smalltalk and have an implementation we can use conveniently. We won't discuss concurrency in Ada -- go to 590L this quarter if you want to know more about languages for parallelism! From cse505-request Tue Oct 18 08:59:19 1994 Received: from meitner.cs.washington.edu (meitner.cs.washington.edu [128.95.2.104]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id IAA18841 for ; Tue, 18 Oct 1994 08:59:13 -0700 Received: from localhost (localhost [127.0.0.1]) by meitner.cs.washington.edu (8.6.9/7.2ws+) with SMTP id IAA26965 for ; Tue, 18 Oct 1994 08:59:12 -0700 Message-Id: <199410181559.IAA26965@meitner.cs.washington.edu> To: cse505@meitner.cs.washington.edu Subject: [rec.humor.funny] Quote of the Year Date: Tue, 18 Oct 1994 08:59:12 PDT From: Erik Selberg Status: RO heh.. ------- Forwarded Message Date: Mon, 17 Oct 94 19:30:03 EDT Newsgroups: rec.humor.funny From: Mark.Maimone@vacation.venari.cs.cmu.edu Subject: Quote of the Year Keywords: chuckle, computers Approved: funny@clarinet.com Lines: 11 From the May/June'94 IEEE Institute, an article about John Backus receiving the Draper Prize for having developed Fortran: "Another of Fortran's breakthroughs was the GOTO statement, which was a uniquely simple and understandable means of structuring and modularizing programs." - -- Selected by Maddi Hausmann Sojourner. MAIL your joke to funny@clarinet.com. Attribute the joke's source if at all possible. A Daemon will auto-reply. Remember: Only ONE joke per submission. Extra jokes may be rejected. ------- End of Forwarded Message From cse505-request Tue Oct 18 10:45:11 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id KAA02531 for ; Tue, 18 Oct 1994 10:44:59 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id KAA27426; Tue, 18 Oct 1994 10:44:58 -0700 Date: Tue, 18 Oct 1994 10:44:58 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410181744.KAA27426@geoduck.cs.washington.edu> To: cse505@geoduck Subject: papers in file cabinet Status: RO I put some more papers in the 4th floor filing cabinet. Most of the old papers have disappeared -- so I'd like to try a new system. There are several copies of the papers. The last one is marked "LAST COPY". Rather than taking this, please make a photocopy of it -- or ask Ben or me to get some more. By the way, does somebody have one of my copies of the SIGPLAN Notices special issue on Haskell? Also there are two copies of the Smalltalk-80 manual. (We'll be looking at this language next.) These are pretty thick, so there are signout sheets. Please use these only in Sieg or the trailer court. If you want your own copy, we've left a master copy at the copy center in the communications building -- they'll make you one on request. (Ben - how much does it cost?) Finally, we changed the Mosaic 505 home page to point to a list of papers distributed in class, and also to optional papers left in the filing cabinet -- so you can check if you're missing anything. (The handout list was getting out of date and was redundant with the subpages, so we deleted that.) A. From cse505-request Wed Oct 19 13:31:58 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id NAA02446 for ; Wed, 19 Oct 1994 13:31:52 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id NAA09143; Wed, 19 Oct 1994 13:31:51 -0700 Date: Wed, 19 Oct 1994 13:31:51 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410192031.NAA09143@geoduck.cs.washington.edu> To: cse505@cs Subject: project suggestions; office hours Status: RO I put some suggestions for the course project in the CSE 505 web. (We'll probably add to this over the next week or two as we think of additional ideas.) Also I am changing my office hours on Wednesdays to 1:30-2:20 (today only, just to 2:00). Still the same time on Mondays, 4:30-5:20. From cse505-request Sun Oct 23 18:39:43 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id SAA24833 for cse505; Sun, 23 Oct 1994 18:39:38 -0700 Date: Sun, 23 Oct 1994 18:39:38 -0700 From: brd (Benedict Dugan) Message-Id: <199410240139.SAA24833@june.cs.washington.edu> To: cse505 Subject: Smalltalk tutorials? Status: RO If people are interested in such a thing, they should show up at my office hours. I will be devoting the second half of each office hour to some "hands-on" help (meaning that I will not be in the cubes at this time). So, if you have general questions, come early. If you want to go sit in front of a computer and get a less-than-expert introduction to smalltalk, come during the second half of the hour... --ben From cse505-request Tue Oct 25 10:13:33 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id KAA26939 for cse505; Tue, 25 Oct 1994 10:13:25 -0700 Date: Tue, 25 Oct 1994 10:13:25 -0700 From: brd (Benedict Dugan) Message-Id: <199410251713.KAA26939@june.cs.washington.edu> To: cse505 Subject: printOn confusion Status: RO A lot of people have asked about this. printOn is a standard print message that objects understand (it expects a stream to print on). so: Mytree printOn: SomeStream So what is printOn actually supposed to print? Well, I'm not really sure, but the right thing to do in this case is probably printing out the elements of the binary tree that receives the printOn message (using one of your traversals might be a good idea here). Note that when you issue the menu command "print it" from the workspace, what is really happening is the printOn method is being sent to the evaluation of the highlighted expression. So if you have a tree, T, with some things in it, and you highlight it, and select "print it", you'll be testing your printOn method... happy smalltalking, ben From cse505-request Tue Oct 25 20:47:02 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id UAA08264 for ; Tue, 25 Oct 1994 20:46:57 -0700 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id UAA24802; Tue, 25 Oct 1994 20:46:57 -0700 Date: Tue, 25 Oct 1994 20:46:57 -0700 From: borning@geoduck (Alan Borning) Message-Id: <199410260346.UAA24802@geoduck.cs.washington.edu> To: cse505@cs Subject: assignment 4 due date postponed to 10/31 Status: RO Greetings from Portland. Since the class this year is so lively and we may not get through Smalltalk control structures by Wednesday, I'm postponing the due date of the Smalltalk assignment to Monday 10/31. Alan From cse505-request Wed Oct 26 10:50:33 1994 Received: from sculpin.cs.washington.edu (sculpin.cs.washington.edu [128.95.2.177]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id KAA22259 for ; Wed, 26 Oct 1994 10:50:26 -0700 Received: (brd@localhost) by sculpin.cs.washington.edu (8.6.9/7.2ws+) id KAA22249 for cse505; Wed, 26 Oct 1994 10:50:24 -0700 Date: Wed, 26 Oct 1994 10:50:24 -0700 From: brd@sculpin Message-Id: <199410261750.KAA22249@sculpin.cs.washington.edu> To: cse505@sculpin Subject: Problem sets done. Status: RO Hi everyone, The problem sets are graded. The average was 18.6 (out of 20). As usual, everyone did pretty well. Answers which are to the point were greatly appreciated. Remember, I was weaned on grading CSE 142, so I have a pretty decent bullshit detector. One person's answers consumed a whopping 18 pages, whereas another's consumed just a smidgen over one. *** Comments: #1 - There was a lot of B.S. flung on this one. I did not grade this problem on volume -- short, concise, correct answers are always preferrable to pages of half-truths. The most common comparison was block structure in C and block structure in Algol. I did not take kindly to answers like "They're pretty much the same," or "In C you can't declare variables inside of an arbitrary block." These kinds of wrong answers suprised me a great deal, especially because it's pretty easy to test this out. Another common misconception that some people have is that C has pass by reference. C has exactly one passing mode: pass by value. With pointers, the programmer can achieve the same effect, but that doesn't mean the language "has" pass by reference. Look at the following two interesting programs, one in C and the other in Fortran. In the fortran program, the fact that p is a pointer and it is being de-referenced is totally transparent to the programmer, whereas this is clearly not the case in the C program. /* I am a C program. */ void foo (int * p) { *p = 32 + *p; } main () { int i = 10; foo (&i); printf("the answer is %d\n", i); } C23456789 I am a fortran program. subroutine foo (p) integer p p = 32 + p end program bar external foo integer i i = 10 call foo(i) print *, "the answer is", i end #3 - Some people said the call by ref example wouldn't compile. This is wrong. Write a little Fortran program and compile it, and you'll see that it is perfectly legal to pass an expression by reference (and even to assign into it). #4 - Both answers were accepted here, as long as it looked as if people thought about it. *** Point breakdown: 1 [3 pts] 2 [4 pts] 3 [3 pts] 4 [2 pts] 5 [3 pts] 6 [2 pts] 7 [3 pts] ________ Total = 20 --ben From cse505-request Fri Oct 28 10:11:24 1994 Received: from meitner.cs.washington.edu (meitner.cs.washington.edu [128.95.2.104]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id KAA07526 for ; Fri, 28 Oct 1994 10:11:12 -0700 Received: from localhost (localhost [127.0.0.1]) by meitner.cs.washington.edu (8.6.9/7.2ws+) with SMTP id KAA17196 for ; Fri, 28 Oct 1994 10:11:11 -0700 Message-Id: <199410281711.KAA17196@meitner.cs.washington.edu> To: cse505@meitner.cs.washington.edu Subject: aaaaaaaaaaaarrrrrrrrrrrgggggggggggggghhhhhhhhhhhhhh!!!!!!!!!!! Date: Fri, 28 Oct 1994 10:11:10 PDT From: Erik Selberg Status: RO OK. It isn't enough that I'm being dragged kicking and screaming from nice, friendly emacs into this sick, sado-masochist GUI which takes all the worst features of NeXT, Macintosh, and Windows. It isn't enough that I have to drag Cody down here to explain to me how to find the damn internal editor and how to evaluate stupid things. But when I go to try and figure out where the two manuals are, everyone except Cody has crossed out their name, and Cody said he couldn't find a pen when he returned them. So sign your name out! Otherwise I'll come and bombard you with nerf weaponry when I find you. -Erik (who now hates Smalltalk more than Lisp. {oh, if Oren could hear me now...}). work: (206) 543-7798 Erik Selberg play: (206) 517-3039 speed@cs.washington.edu I get by with a little help from my friends... From cse505-request Sun Oct 30 15:26:23 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id PAA01013 for ; Sun, 30 Oct 1994 15:26:18 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id PAA26372; Sun, 30 Oct 1994 15:26:16 -0800 Date: Sun, 30 Oct 1994 15:26:16 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410302326.PAA26372@geoduck.cs.washington.edu> To: arcos@u.washington.edu CC: cse505@cs.washington.edu In-reply-to: Aaron Arcos's message of Sun, 30 Oct 94 14:40:19 -0800 <9410302240.AA04641@hardy.u.washington.edu> Subject: re: turtle drawing Status: RO Date: Sun, 30 Oct 94 14:40:19 -0800 Are we supposed to show in the screen a kind of icon that represents the turtle's position and direction? No, you just need to draw the lines. If so, how can I xor bits when copying or drawing in the screen? If you want to do this, you will get a nicer effect if you use double buffering rather than xor. To see how to do double buffering, see the last two examples in graphics-tests.txt (in the class web). The examples show how to exchange two rectangles (for instance if you were animating a sort program). The second uses double buffering. Again, this is only if you are interested; you don't need to do this. From borning@geoduck Sun Oct 30 15:28:12 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id PAA01293 for ; Sun, 30 Oct 1994 15:28:11 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id PAA26385; Sun, 30 Oct 1994 15:28:11 -0800 Date: Sun, 30 Oct 1994 15:28:11 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410302328.PAA26385@geoduck.cs.washington.edu> To: brd@geoduck Subject: [rusa@research.microsoft.com: Emerald WWW pages] Status: RO To: borning@cs.washington.edu Cc: eric@diku.dk, Ewan.Tempero@vuw.ac.nz Subject: Emerald WWW pages Date: Thu, 27 Oct 1994 16:09:41 -0700 From: Bjarne Steensgaard http://www.research.microsoft.com/research/analysts/rusa/emerald.html Greetings from Eric Jul! --Bjarne From borning@geoduck Sun Oct 30 15:28:54 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id PAA01344 for ; Sun, 30 Oct 1994 15:28:53 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id PAA26392; Sun, 30 Oct 1994 15:28:53 -0800 Date: Sun, 30 Oct 1994 15:28:53 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410302328.PAA26392@geoduck.cs.washington.edu> To: brd@geoduck Subject: another one ... Status: RO From: Ewan Tempero To: Bjarne Steensgaard cc: borning@cs.washington.edu, eric@diku.dk Subject: Re: Emerald WWW pages In-reply-to: Your message of "Thu, 27 Oct 1994 16:09:41 PDT." <9410272309.AA16794@palnu.research.microsoft.com> X-Mailer: exmh version 1.4 6/24/94 Date: Mon, 31 Oct 1994 12:25:19 +1300 Thanks. Here's another one I found http://info.gte.com/ftp/doc/activities/x3h7/components/by_model.html It's part of the X3H7 Object Model features Matrix - whatever that is. --ewan From cse505-request Sun Oct 30 15:37:14 1994 Received: from manastash.cs.washington.edu (manastash.cs.washington.edu [128.95.1.15]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id PAA01980 for ; Sun, 30 Oct 1994 15:37:08 -0800 Received: (speed@localhost) by manastash.cs.washington.edu (8.6.8/7.2ws+) id PAA01317 for cse505; Sun, 30 Oct 1994 15:37:07 -0800 Date: Sun, 30 Oct 1994 15:37:07 -0800 From: speed@manastash (Erik Selberg) Message-Id: <199410302337.PAA01317@manastash.cs.washington.edu> To: cse505@manastash Subject: stupid block structures Status: RO I figure I'd share the results of my hour ordeal in getting short-circuit evaluation to work. Now, as we all know, a binary tree includes an item if (val = item) or ((item < val and left ~= nil and left includes: item)) or (item > val and right ~= nil and right includes: item). of course, you have to put everything in the proper parenthesis and brackets. the base case is: (x < y) or: [block goes here]. if you have two or three nestings, things get messy, but it goes like so: (x = y) or: [(x < y) and: [(l ~= nil) and: [l includes: y]]] it just gets messier from there. I think I've found my project: "A Survey of Annoying Features of Programming Languages" From cse505-request Sun Oct 30 18:08:22 1994 Received: from trout.cs.washington.edu (trout.cs.washington.edu [128.95.1.178]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id SAA01679 for ; Sun, 30 Oct 1994 18:08:08 -0800 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by trout.cs.washington.edu (8.6.9/7.1ws+) with ESMTP id RAA06372 for ; Sun, 30 Oct 1994 17:00:23 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id QAA26728; Sun, 30 Oct 1994 16:57:51 -0800 Date: Sun, 30 Oct 1994 16:57:51 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410310057.QAA26728@geoduck.cs.washington.edu> To: savage@spinoza.cs.washington.edu CC: cse505@cs In-reply-to: savage@spinoza.cs.washington.edu's message of Sun, 30 Oct 94 16:13:22 -0800 <1953.783562402@spinoza.cs.washington.edu> Subject: re: Minor questions; become Status: RO 1) in the BinaryTree classes is the remove method responsible for removing all the items in the tree which match "item" or just one? You can do it either way; just say in your comments what you did. 2) does printOn have to try to draw the tree (indenting etc...) or can we just print an inorder list of the values? printOn should just print a simple string representing the tree -- include some parentheses or something though to indicate the tree's structure. ---------------------------------------- Regarding become: you shouldn't use it for this assignment. However, what a become: b does is swap the objects referred to by a and b. Suppose you evaluate: a := 3@2. b := 10@20. a become: b a now refers to the point 10@20, and b to 3@2. From cse505-request Sun Oct 30 18:08:05 1994 Received: from trout.cs.washington.edu (trout.cs.washington.edu [128.95.1.178]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id SAA01526 for ; Sun, 30 Oct 1994 18:07:48 -0800 Received: from meitner.cs.washington.edu (meitner.cs.washington.edu [128.95.2.104]) by trout.cs.washington.edu (8.6.9/7.1ws+) with ESMTP id QAA06228 for ; Sun, 30 Oct 1994 16:40:55 -0800 Received: from localhost (localhost [127.0.0.1]) by meitner.cs.washington.edu (8.6.9/7.2ws+) with SMTP id QAA24644 for ; Sun, 30 Oct 1994 16:38:24 -0800 Message-Id: <199410310038.QAA24644@meitner.cs.washington.edu> To: cse505@meitner.cs.washington.edu Subject: dislike using quit? Date: Sun, 30 Oct 1994 16:38:23 PST From: Erik Selberg Status: RO | a | a := BinaryTree new. a become: nil. be sure to save before you do this. chalk up another paragraph in "Annoying Features..." work: (206) 543-7798 Erik Selberg play: (206) 517-3039 speed@cs.washington.edu I get by with a little help from my friends... From cse505-request Sun Oct 30 21:37:17 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id VAA09988 for ; Sun, 30 Oct 1994 21:37:11 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id VAA27854; Sun, 30 Oct 1994 21:37:10 -0800 Date: Sun, 30 Oct 1994 21:37:10 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410310537.VAA27854@geoduck.cs.washington.edu> To: cse505@geoduck Subject: strings Status: RO To answer the last two messages: The string comparison messages <= and >= ignore case differences, but = doesn't. (This is inconsistent for sure.) If you want to test for equality but ignoring case, use sameAs: You can ignore this problem for the assignment if you want. To print a space on a stream without any quotes or anything say aStream nextPut: ' ' From cse505-request Sun Oct 30 21:38:20 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id VAA10233 for ; Sun, 30 Oct 1994 21:38:16 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id VAA27871; Sun, 30 Oct 1994 21:38:15 -0800 Date: Sun, 30 Oct 1994 21:38:15 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199410310538.VAA27871@geoduck.cs.washington.edu> To: cse505@geoduck In-reply-to: Alan Borning's message of Sun, 30 Oct 1994 21:37:10 -0800 <199410310537.VAA27854@geoduck.cs.washington.edu> Subject: re: strings Status: RO Oops, I meant aStream nextPutAll: as Evan said. From cse505-request Wed Nov 2 12:42:01 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id MAA01258 for ; Wed, 2 Nov 1994 12:41:54 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id MAA20061; Wed, 2 Nov 1994 12:41:53 -0800 Date: Wed, 2 Nov 1994 12:41:53 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411022041.MAA20061@geoduck.cs.washington.edu> To: cse505@geoduck Subject: midterm; missing variable names Status: RO In case you didn't hear this in class - the midterm is open notes and papers. In Smalltalk, if you end up seeing methods with your temporary variable names changed to t1, t2, etc., this means that Smalltalk somehow doesn't know about your changes file and so doesn't have access to the source code -- so it is decompiling the compiled code. Make sure you are saving your image and starting it up, and that it knows about your changes file. From cse505-request Thu Nov 3 10:08:27 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id KAA04656 for ; Thu, 3 Nov 1994 10:08:18 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id KAA28676; Thu, 3 Nov 1994 10:08:18 -0800 Date: Thu, 3 Nov 1994 10:08:18 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411031808.KAA28676@geoduck.cs.washington.edu> To: cse505@cs Subject: assignment 5 clarifications Status: RO Here are a couple of clarifications on assignment 5, based on some questions I got. I've revised the assignment in the course web accordingly to reflect these clarifications. If you haven't started the assignment, you could just print a new copy and ignore the rest of this message. Otherwise, here goes: For the clock, your clock should keep updating until you interrupt it. To do this, just make a simple loop that repeatedly finds the current time and redraws the hands. You can include a delay statement to avoid an excessive number of updates: (Delay forSeconds: 10) wait If you want to be fancy, use double buffering to avoid flickering when redrawing the clock (see the graphics-tests.txt file in the course web for an example of using double buffering). For the exception handling question, it may not have been clear what I was looking for in the "pop" portion. The idea is that if you pop an empty stack without doing anything special, you will evaluate store at: top when top=0. This will cause the array to raise a subscript out of bounds exception. Just propagating this to the outside world exposes the internal representation of the stack (as using an array). Instead, in the interests of encapsulation it may be better to raise a different kind of exception that describes what happened in the stack's terms. Let's change the question a bit to define a new kind of exception, namely a "popped empty stack" exception. If you do try to pop an empty stack, the stack should raise this exception. (This is a characteristic example of how to properly integrate exceptions with abstract data types.) To illustrate the new, improved stack, suppose you evaluate the following: | s | s := Stack new. s pop. Here we popped an empty stack, and so it should raise the "popped empty stack" exception. Since there isn't a handler for this, it will just bring up an error notifier. Instead, if we evaluate | s | Stack poppedEmptyStackSignal handle: [:ex | Transcript cr; show: 'tut tut ... cannot pop an empty stack'. ex return] do: [s := Stack new. s pop] then the handler will handle this exception, and print 'tut tut ... cannot pop an empty stack' to the transcript. To define the new signal, add a class variable PoppedEmptyStackSignal to your class stack. Add a class message initialize, as follows, and send it to initialize this variable: initialize PopEmptyStackSignal := NotFoundSignal newSignal notifierString: 'popped an empty stack'; nameClass: self message: #poppedEmptyStackSignal Also add this class message: poppedEmptyStackSignal ^ PoppedEmptyStackSignal You should be able to take it from here. Finally, on the loop question, don't bother to implement "restart" -- I tried playing with a bit and this isn't that useful a message; and if you do "exit" you'll learn what there is to be learned about this. From cse505-request Fri Nov 4 14:50:23 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id OAA03625 for cse505; Fri, 4 Nov 1994 14:50:18 -0800 Date: Fri, 4 Nov 1994 14:50:18 -0800 From: brd (Benedict Dugan) Message-Id: <199411042250.OAA03625@june.cs.washington.edu> To: cse505 Subject: Optional Papers Status: RO There are some more (very much worth reading) optional papers in the filing cabinet on the 4th floor: Borning and O'Shea -- DeltaTalk Borning -- Classes vs. Prototypes Lieberman -- Prototypes Panel Discussion from OOPSLA 94 on Prototype based languages enjoy, Ben (ps. remember not to take the copy marked "master copy" except to make your own copy) From cse505-request Mon Nov 7 11:00:58 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id LAA15965 for cse505; Mon, 7 Nov 1994 11:00:41 -0800 Date: Mon, 7 Nov 1994 11:00:41 -0800 From: brd (Benedict Dugan) Message-Id: <199411071900.LAA15965@june.cs.washington.edu> To: cse505 Subject: HW4 graded Status: RO Hi everyone, HW4 is graded. General comments: there seemed to be three approaches to solving the tree problem (1) use TreeNode as a data structure definition and then have BinaryTree manipulate that data structure. This is not very object oriente. (2) use BinaryTree as a wrapper for TreeNode, where the bulk of the work gets done. most people did it this way. (3) use only a single class. This works ok, except that the empty tree is represented by a node with left=right=value=nil, rather than just a nil pointer. a complication here is that without adding extra instance vars, you can't add "nil" to the binary tree (not that you would want to do this, but I'm sure you can think of a case where this might be plausible) ... anyway, all three of these solutions were fine, although 2 and 3 are maybe "better" from an object oriented style point of view (in solution 1, the BinaryNode doesn't really have any behavior, just data -- it is up to the BinaryTree to operate *on* the binary nodes.... Turtles one problem people had was not being able to reuse the go: code from Turtle in ColorTurtle. the reason for this is if every time you draw a line you get a new graphics context (rather than using one you've saved away in an instance var) from the window, all changes you made (like changing color or line thickness) to an old graphics context are not passed on to this new graphics context. the reason for this is apparently that because multiple processes might be doing stuff to a window, the smalltalk people decided that it would be bad to have a single, global graphics context that could be messed up by various "other" processes. consequently, every time you ask for a graphicsContext, you get a new one, which is a clean slate. if you want to maintain changes you made to that GC, it is up to you to keep it around. --ben From cse505-request Mon Nov 7 14:34:04 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id OAA14209 for cse505; Mon, 7 Nov 1994 14:33:44 -0800 Date: Mon, 7 Nov 1994 14:33:44 -0800 From: brd (Benedict Dugan) Message-Id: <199411072233.OAA14209@june.cs.washington.edu> To: cse505 Subject: Haikus Status: R I forgot to mention: everyone did very well on their haikus, they have been compiled and can be found in the course web, under object oriented languages... ... for those few of you who didn't turn any in, please get me one, ASAP. also, I think I may have forgotten to add some to the list, so if yours isn't on there (and you want it to be), mail it to me, and I'll add it. the url is http://www.cs.washington.edu/education/courses/505/fall94/oo/haiku.html (quite a mouthful) --ben From cse505-request Wed Nov 9 11:25:00 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id LAA29280 for cse505; Wed, 9 Nov 1994 11:24:46 -0800 Date: Wed, 9 Nov 1994 11:24:46 -0800 From: brd (Benedict Dugan) Message-Id: <199411091924.LAA29280@june.cs.washington.edu> To: cse505 Subject: exams grades Status: RO The midterms are graded. The average was 98.5. (out of 110) Most people missed number 7 (Smalltalk blocks) -- mostly the explanation was ok, but the final answer was wrong -- so partial credit was given. Voting: In keeping with the conservative trends we witnessed last night at the national, state, and local levels, people decided to go with the original name for the "temporary" building next to sieg hall -- The Chateau. It is signifigant to note, however, that there were more write-in responses than any other category, but these didn't indicate any organized movement... Here are the tallies: The Chateau = 8 The Trailer Court = 2 The Projects = 2 Lazowskaville = 6 Others = 10 (Write ins: Trailer park Recycled Beer Cans ? Sieg Annex Bungalow CS Homeless Shelter TMA-2 Le Chateau Da Ghetto Weaverville) --ben From cse505-request Thu Nov 10 17:39:33 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id RAA11586 for ; Thu, 10 Nov 1994 17:39:27 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id RAA23899; Thu, 10 Nov 1994 17:39:27 -0800 Date: Thu, 10 Nov 1994 17:39:27 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411110139.RAA23899@geoduck.cs.washington.edu> To: cse505@cs Subject: [anderson@whistler.cs.washington.edu: 2 3 5 7 11 13 17 19] Status: R Here is an application for those infinite data structure programs you wrote in Miranda ... shockingly, though, the sequence identifier didn't know about the Hamming numbers! To: theory-group@cs, faculty@whistler Subject: 2 3 5 7 11 13 17 19 Date: Thu, 10 Nov 1994 11:00:34 PST From: Richard Anderson Did you ever run across an interesting sequence that you wanted identified, or are you just looking for a new way to kill time on the internet? In addition to running most of the countries long distance service, ATT also provides a free sequence identification service. Send a note to sequences@research.att.com of the form lookup 1 2 3 5 8 13 21 lookup 2 3 5 7 11 13 17 and you promptly get a list of famous sequences which match your sequence. (In case your wondering, the first is a prefix of the famous "dying rabbits" sequence + 3 others, and the second is the the sequence of cardinalities of simple groups + 2 others.) For more info on the sequence encyclopedia, there is a short article in the Electronic Journal of Combinatorics, on the WWW at http://ejc.math.gatech.edu:8080/Journal/journalhome.html From cse505-request Tue Nov 15 15:30:50 1994 Received: (brd@localhost) by june.cs.washington.edu (8.6.9/7.2ju) id PAA23176 for cse505; Tue, 15 Nov 1994 15:30:36 -0800 Date: Tue, 15 Nov 1994 15:30:36 -0800 From: brd (Benedict Dugan) Message-Id: <199411152330.PAA23176@june.cs.washington.edu> To: cse505 Subject: Generality Questions Status: R Poking around the number classes in ST80 is somewhat informative, and here's what Alan has to say: >From borning@geoduck Tue Nov 15 13:20:34 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id NAA07064 for ; Tue, 15 Nov 1994 13:20:33 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id NAA25016; Tue, 15 Nov 1994 13:20:31 -0800 Date: Tue, 15 Nov 1994 13:20:31 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411152120.NAA25016@geoduck.cs.washington.edu> To: brd@june In-reply-to: Benedict Dugan's message of Tue, 15 Nov 1994 13:02:18 -0800 <199411152102.NAA04866@june.cs.washington.edu> Subject: re: generality Status: R Consider Float +. The "generality" message gets sent when the primitive fails -- which would be because the other argument isn't a Float. (If the primitive works, it won't get sent.) To integrate a new class, yes, you need to provide a generality message. From cse505-request Fri Nov 18 14:34:10 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id OAA20202 for ; Fri, 18 Nov 1994 14:33:44 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id OAA15564; Fri, 18 Nov 1994 14:33:40 -0800 Date: Fri, 18 Nov 1994 14:33:40 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411182233.OAA15564@geoduck.cs.washington.edu> To: cse505@cs Subject: papers on types Status: R Our object-oriented type fest has now come to an end (and probably not a moment too soon), except for an assignment. I updated the list of assigned papers on the web. Also I put copies of two optional papers in the filing cabinet and in the list: William Cook, Walter Hill, and Peter Canning, "Inheritance is Not Subtyping", POPL (ACM Principles of Programming Languages Conference), 1990. Craig Chambers and Gary Leavens, "Typechecking and Modules for Multi-Methods", OOPSLA'94. From cse505-request Mon Nov 21 13:49:24 1994 Received: from curie.cs.washington.edu (curie.cs.washington.edu [128.95.1.158]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id NAA11144 for ; Mon, 21 Nov 1994 13:49:14 -0800 Received: (brd@localhost) by curie.cs.washington.edu (8.6.9/7.2ws+) id NAA16929 for cse505; Mon, 21 Nov 1994 13:49:13 -0800 Date: Mon, 21 Nov 1994 13:49:13 -0800 From: brd@curie (Benedict Dugan) Message-Id: <199411212149.NAA16929@curie.cs.washington.edu> To: cse505@curie Subject: problem sets Status: RO Problem set 5 was out of 25 points. Ave = 22.9 Problem set 6 was out of 20 points. Ave = 19.1 As usual, people did well. Most people tripped up on PS5 (in either a major or minor way) on the problem about "super new" Some people intimated that it worked by magic, which is probably the model we *should* have, but didn't really answer the question. Others thought the lookup went off the deep end, so to speak (that is, the lookup went "north" from meta stack to class class, meta mumble, behavior, class description, etc). A lot of people also didn't realize that "super" is a pseudo variable, like self, and that super refers to the super of the object which was the original message receiver.... also, an amazing number of people either didn't read or pay attention to the SELF paper, and didn't answer the question about SELF stacks appropriately. answers like "I'd make a prototype stack and clone it," didn't get full credit. --ben From cse505-request Wed Nov 30 12:53:31 1994 Received: from geoduck.cs.washington.edu (geoduck.cs.washington.edu [128.95.2.181]) by june.cs.washington.edu (8.6.9/7.2ju) with ESMTP id MAA27793 for ; Wed, 30 Nov 1994 12:53:24 -0800 Received: (borning@localhost) by geoduck.cs.washington.edu (8.6.9/7.2ws+) id MAA22625; Wed, 30 Nov 1994 12:53:21 -0800 Date: Wed, 30 Nov 1994 12:53:21 -0800 From: borning@geoduck (Alan Borning) Message-Id: <199411302053.MAA22625@geoduck.cs.washington.edu> To: cse505@cs Subject: assignment 7 sample solution Status: R A sample solution is now in the course web. Also, preliminary lecture notes on prolog are under the logic-programming heading (although I may fix them up a bit before printing copies to hand out on Friday).