- Added short for McCool's talk
[mspang/www.git] / events.xml
1 <eventdefs>
2
3 <!-- Winter 2003 -->
4
5 <eventitem date="2003-03-25" time="4:30 PM" room="MC 2065" 
6 title="Stream Processing">
7 <short>Stream Processing</short>
8 <abstract>
9
10 <p>Speaker: Michael McCool</p>
11
12 <p>Stream processing is an enhanced version of SIMD processing that permits 
13 efficient execution of conditionals and iteration.  Stream processors have 
14 many similarities to GPUs, and a hardware prototype, the Imagine processor, 
15 has been used to implement both OpenGL and Renderman.   It is possible that 
16 GPUs will acquire certain properties of stream processors in the future, 
17 which should make them much easier to use and more efficient for 
18 general-purpose computation that includes data-dependent iteration and 
19 conditionals.</p>
20
21 </abstract>
22 </eventitem>
23
24 <eventitem date="2003-03-26" time="6:00 PM" room="MC 2065"
25 title="Abusing The C++ Compiler">
26
27 <short>Abusing template metaprogramming in C++; aka. writing a
28 Mandelbrot generator that runs at compile time</short>
29
30 <abstract>
31 <p>Templates are a useful feature in C++ when it comes to writing
32 type-independent data structures and algorithms. But that's not all
33 they can be used for. Essentially it is possible to write certain
34 programs in C++ that execute completely at compile-time rather than
35 run-time. Combined with some optimisations this is an interesting
36 twist on regular C++ programming. </p>
37
38 <p>This talk will give a short overview of the features of templates and
39 then go on to describe how to "abuse" templates to perform complex
40 computations at compile time. The speaker will present three programs
41 that execute at compile time. First a factorial listing program, then
42 a prime listing program will be presented. Finally the talk will
43 conclude with the presentation of a Mandelbrot generator running at
44 compile-time.</p>
45
46 <p>Some basic knowledge of C++ will be assumed.</p>
47 </abstract>
48 </eventitem>
49
50   <eventitem date="2003-02-04" time="4:30 PM" room="MC2037"
51    title="Unix 101 Tutorial">
52   <short>Learn Unix and be the envy of your friends!</short>
53   <abstract> 
54
55   <p>This is the first in a series of seminars that cover the use of the
56   UNIX Operating System.  UNIX is used in a variety of applications, both
57   in academia and industy. We will provide you with hands-on experience
58   with the Math Faculty's UNIX environment in this seminar.</p> 
59
60   <p>Topics that will be discussed include:</p>
61
62   <ul>
63   <li> Navigating the UNIX environment</li>
64   <li> Using common UNIX commands</li>
65   <li>Using the PICO text editor</li>
66   <li>Reading electronic mail and news with PINE</li>
67   </ul>
68
69   <p>If you do not have a Math computer account, don't panic; one will be lent
70   to you for the duration of this class.</p>  
71
72   </abstract>
73   </eventitem>
74
75   <eventitem date="2003-02-11" time="4:30 PM" room="MC2037"
76    title="Unix 102 Tutorial">
77   <short>Learn more Unix and be the envy of your friends!</short>
78   <abstract> 
79
80   <p>Abstract to come soon.</p>
81
82   </abstract>
83   </eventitem>
84
85   <eventitem date="2003-02-18" time="4:30 PM" room="MC2037"
86    title="Unix 103 Tutorial">
87   <short>Learn more Unix and be the envy of your friends!</short>
88   <abstract> 
89
90   <p>Abstract to come soon. </p>
91
92   </abstract>
93   </eventitem>
94
95   <eventitem date="2003-01-13" time="6:00 PM" room="MC3001"
96     title="W03 Elections">
97     <short>Come out and vote for the new exec!</short>
98    <abstract>
99
100 <p>This term's elections will take place on Monday, January 13 at 6:00 PM in the
101 MC "comfy lounge" (MC3001). Nominations are open from now on (Thursday,
102 January 2) until 4:30 PM of the day before elections (Sunday, January 12).
103 In order to nominate someone you can either e-mail me directly, by depositing
104 a form with the required information in the CSC mailbox in the Mathsoc office
105 or by writing the nomination and clearly marking it as such on the large
106 whiteboard in the CSC office. E-mail is probably the best choice.
107 Please include the name of the person to be nominated as well as the position
108 you wish to nominate them for.</p>
109
110 <p>Candidates must be full members of the club. This means they must have paid
111 their membership for the given term and (due to recent changes in the
112 constitution) must be full-time undergraduate math students.
113 The same requirements hold for those voting. Please bring your Watcard to
114 the elections so that I can verify this. I will have a list of members with
115 me also.</p>
116
117 <p>The positions open are:</p>
118
119 <p><b>President</b> -- appoints all commitees of the club, calls and presides at all
120 meetings of the club and audits the club's financial records. Really, this
121 is the person in charge.</p>
122
123 <p><b>Vice President</b> -- assumes President's duties in case he/she is absent,
124 plans and coordinates events with the programmes committee and assumes any
125 other duties delegated by the President.
126 This is a really fun job if you enjoy coordinating events!</p>
127
128 <p><b>Secretary</b> -- keeps minutes of the meetings and cares for any correspondence.
129 A fairly light job, good choice if you just want to see what being an exec
130 is all about.</p>
131
132 <p><b>Treasurer</b> -- maintains all the finances of the club.
133 If you like money and keeping records, this is the job for you!</p>
134
135 <p>Additionally a Systems Administrator will be picked by the new executive.</p>
136
137 <p>Last term was a great term for the CSC -- many events, some office renovations
138 and a much improved image were all part of it. I hope to see the next term's
139 exec continue this. If you're interested in seeing this happen, do consider
140 going for a position, or helping out as office staff or on one of the
141 committees.</p>
142
143 <p>Anyways, hopefully I'll see many of you at the elections.
144 Remember: Monday, January 13, 6:00 PM, MC3001/Comfy Lounge.</p>
145
146 <p>If you have any further questions don't hesitate to contact the CRO,
147       Stefanus Du Toit <a href="mailto:sjdutoit@uwaterloo.ca">by e-mail</a>.</p>
148     </abstract>
149   </eventitem>
150
151   <eventitem date="2003-01-23" time="6:30 PM" room="MC1085"
152     title="Regular Expressions">
153     <short>Find your perfect match</short>
154     <abstract>
155
156     <p>Stephen Kleene developed regular expressions to describe what he
157     called <q>the algebra of regular sets.</q>  Since he was a pioneering
158     theorist in computer science, Kleene's regular expressions soon made
159     it into searching algorithms and from there to everyday tools.</p>
160
161     <p>Regular expressions can be powerful tools to manipulate text.
162     You will be introduced to them in this talk.  As well, we will go
163     further than the rigid mathematical definition of regular
164     expressions, and delve into POSIX regular expressions which are
165     typically available in most Unix tools.</p>
166
167     </abstract>
168   </eventitem>
169
170   <eventitem date="2003-01-30" time="6:30 PM" room="MC1085"
171     title="sed &amp; awk">
172     <short>Unix text editing</short>
173     <abstract>
174
175     <p><i>sed</i> is the Unix stream editor.  A powerful way to
176     automatically edit a large batch of text.  <i>awk</i> is a
177     programming language that allows you to manipulate structured data
178     into formatted reports.</p>
179
180     <p>Both of these tools come from early Unix, and both are still
181     useful today.  Although modern programming languages such as Perl,
182     Python, and Ruby have largely replaced the humble <i>sed</i> and
183     <i>awk</i>, they still have their place in every Unix user's
184     toolkit.</p>
185
186     </abstract>
187   </eventitem>
188
189   <eventitem date="2003-02-06" time="6:30 PM" room="MC1085"
190     title="LaTeX: A Document Processor">
191     <short>Typesetting beautiful text</short>
192     <abstract>
193
194     <p>Unix was one of the first electronic typesetting platforms.  The
195     innovative AT&amp;T <i>troff</i> system allowed researches at Bell
196     Labs to generate high quality camera-ready proofs for their papers.
197     Later, Donald Knuth invented a typesetting system called
198     T<small>E</small>X, which was far superior to other typesetting
199     systems in the 1980s.  However, it was still a typesetting language,
200     where one had to specify exactly how text was to be set.</p>
201
202     <p>L<sup><small>A</small></sup>T<small>E</small>X is a macro package
203     for the T<small>E</small>X system that allows an author to describe
204     his document's function, thereby typesetting the text in an
205     attractive and correct way.  In addition, one can define semantic
206     tags to a document, in order to describe the meaning of the
207     document; rather than the layout.</p>
208
209     </abstract>
210   </eventitem>
211
212   <eventitem date="2003-02-13" time="6:30 PM" room="MC1085"
213     title="LaTeX: Reports">
214     <short>Writing reports that look good.</short>
215     <abstract>
216
217     <p>Work term reports, papers, and other technical documents can be
218     typeset in L<sup><small>A</small></sup>T<small>E</small>X to great
219     effect.  In this session, I will provide examples on how to typeset
220     tables, figures, and references.  You will also learn how to make
221     tables of contents, bibliographics, and how to create footnotes.</p>
222
223     <p> I will also examine various packages of 
224     L<sup><small>A</small></sup>T<small>E</small>X that can help you 
225     meet requirements set by users of inferior typesetting systems.  
226     These include double-spacing, hyphenation and specific margin 
227     sizes.</p>
228
229     </abstract>
230   </eventitem>
231
232   <eventitem date="2003-02-20" time="6:30 PM" room="MC1085"
233     title="LaTeX: Beautiful Mathematics">
234     <short>LaTeX =&gt; fun</short>
235     <abstract>
236
237     <p>It is widely acknowledged that the best system by which to
238     typeset beautiful mathematics is through the T<small>E</small>
239     typesetting system, written by Donald Knuth in the early 1980s.</p>
240
241     <p>In this talk, I will demonstrate
242     L<sup><small>A</small></sup>T<small>E</small>X and how to typeset
243     elegant mathematical expressions.</p>
244
245     </abstract>
246   </eventitem>
247
248   <eventitem date="2003-02-27" time="6:00 PM" room="MC1085"
249     title="The BSD License Family">
250     <short>Free for all</short>
251     <abstract>
252
253     <p>Before the GNU project ever existed, before the phrase
254     "Free Software" was ever coined, students and researchers
255     at the University of California, Berkeley were already
256     practising it.  They had acquired the source cdoe to a
257     little-known operating system developed at AT&amp;T
258     Bell Laboratories, and were creating improvments at a
259     ferocious rate.</p>
260
261     <p>These improvements were sent back to Bell Labs, and
262     shared to other Universities.  Each of them were licensed
263     under what is now known as the "Original BSD license".  Find
264     out what this license means, its implications, and what are
265     its decendents by attending this short talk.</p>
266
267     </abstract>
268   </eventitem>
269
270   <eventitem date="2003-02-27" time="6:30 PM" room="MC1085"
271     title="The GNU General Public License">
272     <short>The teeth of Free Software</short>
273     <abstract>
274
275     <div style="font-style: italic"><blockquote>
276       The licenses for most software are designed to take away your
277       freedom to share and change it. By contrast, the GNU General
278       Public License is intended to guarantee your freedom to share and
279       change free software---to make sure the software is free for all
280       its users.
281       <br />
282       <div style="text-align:right">--- Excerpt from the GNU GPL</div>
283     </blockquote></div>
284     
285     <p> The GNU General Public License is one of the most influencial
286     software licenses in this day.  Written by Richard Stallman for the
287     GNU Project, it is used by software developers around the world to
288     protect their work.</p>
289
290     <p>Unfortunately, software developers do not read licenses
291     thoroughly, nor well.  In this talk, we will read the entire GNU GPL
292     and explain the implications of its passages.  Along the way, we
293     will debunk some myths and clarify common misunderstandings.</p>
294
295     <p>After this session, you ought to understand what the GNU GPL
296     means, how to use it, and when you cannot use it.  This session
297     should also give you some insight into the social implications of
298     this work.</p>
299
300     </abstract>
301   </eventitem>
302
303   <eventitem date="2003-03-13" time="6:30 PM" room="MC1085"
304     title="XML">
305     <short>Give your documents more markup</short>
306     <abstract>
307
308     <p>XML is the <q>eXtensible Markup Language,</q> a standard
309     maintained by the World Wide Web Consortium.  A descendant of IBM's
310     SGML.  It is a metalanguage which can be used to define markup
311     languages for semantically describing a document.</p>
312
313     <p>This talk will describe how to generate correct XML documents,
314     and auxillary technologies that work with XML.</p>
315
316     </abstract>
317   </eventitem>
318
319   <eventitem date="2003-03-20" time="6:30 PM" room="MC1085"
320     title="XSLT">
321     <short>Transforming your documents</short>
322     <abstract>
323
324     <p>XSLT is the <q>eXtended Stylesheet Language Transformations,</q>
325     a language for transforming XML documents into other XML
326     documents.</p>
327
328     <p>XSLT is used to manipulate XML documents into other forms: a sort
329     of glue between data formats.  It can turn an XML document into an
330     XHTML document, or even an HTML document.  With a little bit of
331     hackery, it can even be convinced to spit out non-XML conforming
332     documents.</p>
333
334     </abstract>
335   </eventitem>
336
337   <eventitem date="2003-03-24" time="8:00 PM" 
338     room="Humanities Theatre, Hagey Hall"
339     title="Judy, or What Is It Like To Be A Robot?">
340     <short>Held in co-operation with the UW Cognitive Science Club</short>
341     <abstract>
342
343     <p>A lot of claims have been made lately about the intelligence of 
344     computers.  Some researchers say that computers will eventually attain 
345     super-human intelligence.  Others call thse claims... um, poppycock.  
346     Oddly enough, in the search for the truth of the matter, both camps 
347     have overlooked an obvious strategy: interviewing a computer and asking 
348     her opinion.</p>
349
350     <p>"Judy is as much fun as a barrel of wind-up cymbal-monkeys, and 
351     lots more entertaining." --- Bill Rodriguez, <i>Providence Phoenix</i></p>
352
353     <p>"Tom Sgouros's witty play, co-starring the charming robot Judy, is an
354     imagination stretcher that delights while it exercises your mind.  If you
355     think you can't imagine a conscious robot, you're wrong---you can,
356     especially once you've met Judy." --- Daniel C. Dennett,
357     author of <i>Consciousness Explained</i>, <i>Brainchildren</i>,
358     &amp;c.</p>
359
360     <p>"...an engrossing evening...  Real questions about 
361     consciousness, freedom to act, the relationship between the creator 
362     and the created are woven into a bravura performance." --- Will 
363     Stackman, <i>Aislesay.com</i></p>
364
365     <p>Sponsored by the Mathematics Society, the Federation of Students, the
366     Arts Student Union, the Graduate Student Association, and the Department of
367     Philosophy. Tickets available at the Humanities box office (888-4908) and
368     the offices of the Psychology Society and the Computer Science Club for
369     $5.50.  For
370     more information: <a
371     href="http://www.csclub.uwaterloo.ca/cogsci/">http://www.csclub.uwaterloo.ca/cogsci</a>.</p>
372
373     </abstract>
374   </eventitem>
375
376   <eventitem date="2003-03-25" time="4:30 PM" room="MC2065"
377     title="Stream Processing">
378     <short>A talk by Assistant Professor Michael McCool</short>
379     <abstract>
380
381     <p>Stream processing is an enhanced version of SIMD processing that
382     permits efficient execution of conditionals and iteration.  Stream
383     processors have many similarities to GPUs, and a hardware prototype,
384     the Imagine processor, has been used to implement both OpenGL and
385     Renderman.</p>
386
387     <p>It is possible that GPUs will acquire certain properties
388     of stream processors in the future, which should make them easier
389     to use and more efficient for general-purpose computation that includes
390     data-dependent iteration and conditionals.</p>
391
392     </abstract>
393   </eventitem>
394
395   <eventitem date="2003-03-26" time="6:00 PM" room="MC2065"
396     title="Abusing the C++ Compiler">
397     <short>Abusing template metaprogramming in C++</short>
398     <abstract>
399
400     <p>Templates are a useful feature in C++ when it comes to writing
401     type-independent data structures and algorithms.  But that's not all
402     they can be used for.  Essentially, it is possible to write certain
403     programs in C++ that execute completely at compile-time rather
404     than run-time.  Combined with some optimisations this is an interesting
405     twist on regular C++ programming.</p>
406
407     <p>This talk will give a short overview of the features of templates
408     and then go on to describe how to "abuse" templates to perform complex
409     computations at compile time. The speaker will present three programs of
410     increasing complexity which execute at compile time. First a factorial
411     listing program, then a prime listing program will be presented. Finally
412     the talk will conclude with the presentation of a <i>Mandelbrot
413     generator running at compile time.</i></p>
414
415     <p>Some basic knowledge of C++ will be assumed.</p>
416
417     </abstract>
418   </eventitem>
419
420   <eventitem date="2003-03-27" time="6:30 PM" room="MC1085"
421     title="SSH and Networks">
422     <short>Once more into the breach</short>
423     <abstract>
424
425     <p>The Secure Shell (SSH) has now replaced traditional remote login
426     tools such as <i>rsh</i>, <i>rlogin</i>, <i>rexec</i> and
427     <i>telnet</i>.  It is used to provide secure, authenticated,
428     encrypted communications between remote systems.  However, the SSH
429     protocol provides for much more than this.</p>
430
431     <p>In this talk, we will discuss using SSH to its full extent.  Topics
432     to be covered include:</p>
433     <ul>
434       <li>Remote logins</li>
435       <li>Remote execution</li>
436       <li>Password-free authentication</li>
437       <li>X11 forwarding</li>
438       <li>TCP forwarding</li>
439       <li>SOCKS tunnelling</li>
440     </ul>
441
442     </abstract>
443   </eventitem>
444
445   <!-- Fall 1994 -->
446         <eventitem
447          date="1994-09-13" time="9:00 PM"
448          room="Princess Cinema"
449          title="Movie Outing: Brainstorm">
450                 <short>
451                         No description available.
452                 </short>
453                 <abstract>
454                         <p>
455                         The first of this term's CSC social events, we will be going to see
456                         the movie ``Brainstorm'' at the Princess Cinema. This outing is
457                         intended primarily for the new first-year students.
458                         </p>
459                         <p>
460                         The Princess Cinema is Waterloo's repertoire theatre. This month
461                         and next, they are featuring a ``Cyber Film Festival''. Upcoming
462                         films include:
463                         </p>
464                         <ul>
465                                 <li>Brazil</li>
466                                 <li>Bladerunner (director's cut)</li>
467                                 <li>2001: A Space Odyssey</li>
468                                 <li>Naked Lunch</li>
469                         </ul>
470                         <p>
471                         Admission is $4.25 for a Princess member, $7.50 for a non-member.
472                         Membership to the Princess is $7.00 per year. 
473                         </p>
474                 </abstract>
475         </eventitem>
476         <eventitem
477          date="1994-09-16" time="4:30 PM"
478          room="MC 4040"
479          title="CSC Elections">
480                 <short>No description available</short>
481                 <abstract>No abstract available</abstract>
482         </eventitem>
483         <eventitem
484          date="1994-09-19" time="4:30 PM"
485          room="MC 3022"
486          title="UNIX I Tutorial">
487                 <short>No description available</short>
488                 <abstract>No abstract available</abstract>
489         </eventitem>
490         <eventitem
491          date="1994-09-21" time="6:30 PM"
492          room="DC 1302"
493          title="SIGGRAPH Video Night">
494                 <short>No description available</short>
495                 <abstract>No abstract available</abstract>
496         </eventitem>
497         <eventitem
498          date="1994-09-22" time="4:30 PM"
499          room="MC 3022"
500          title="UNIX I Tutorial">
501                 <short>No description available</short>
502                 <abstract>No abstract available</abstract>
503         </eventitem>
504         <eventitem
505          date="1994-09-26" time="4:30 PM"
506          room="MC 3022"
507          title="UNIX II Tutorial">
508                 <short>No description available</short>
509                 <abstract>No abstract available</abstract>
510         </eventitem>
511         <eventitem
512          date="1994-10-13" time="5:00 PM"
513          room="DC 1302"
514          title="Prograph: Picture the Future">
515                 <short>No description available</short>
516                 <abstract>
517                         <p>
518                         What is the next step in the evolution of computer languages?
519                         Intelligent agents? Distributed objects? or visual languages?
520                         </p>
521                         <p>
522                         Visual languages overcome many of the drawbacks and limitations
523                         of the textual languages that software development is based on
524                         today. Do you think about programming in a linear fashion? Or do
525                         you draw a mental picture of your algorithm and then linearize it
526                         for the benefit of your compiler? Wouldn't it be nice if you could
527                         code the same way you think?
528                         </p>
529                         <p>
530                         Visual C++ and Visual BASIC aren't visual languages, but Prograph
531                         is. Prograph is a commercially available, visual, object-oriented,
532                         data-flow language. It is well suited to graphical user interface
533                         development, but is as powerful for general-purpose programming as
534                         any textual language.
535                         </p>
536                         <p>
537                         The talk will comprise a discussion of the problems of textual
538                         languages that visual languages solve, a live demonstration of
539                         Prograph, and some of my observations of the applications of
540                         Prograph to software development.
541                         </p>
542                 </abstract>
543         </eventitem>
544         <eventitem
545          date="1994-10-15" time="10:00 AM"
546          room="MC 3022"
547          title="ACM-Style Programming Contest">
548                 <short>No description available</short>
549                 <abstract>
550                         <h3>Big Money and Prizes!</h3>
551                         <p>
552                         So you think you're a pretty good programmer? Pit your skills
553                         against others on campus in this triannual event! Contestants will
554                         have three hours to solve five programming problems in either C or
555                         Pascal.
556                         </p>
557                         <p>
558                         Last fall's winners went on to the International Finals and came
559                         first overall! You could be there, too!
560                         </p>
561                 </abstract>
562         </eventitem>
563         <eventitem
564          date="1994-10-20" time="4:30 PM"
565          room="MC 3009"
566          title="Exploring the Internet">
567                 <short>No description available</short>
568                 <abstract>
569                         <h3>Need something to do between assignments/beers?</h3>
570                         <p>
571                          Did you know that your undergrad account at Waterloo gives you
572                          access tothe world's largest computer network? With thousands
573                          of discussion groups, gigabytes of files to download, multimedia
574                          information browsers, even on-line entertainment?
575                         </p>
576                         <p>
577                         The resources available on the Internet are vast and wondrous, but
578                         the tools for navigating it are sometimes confusing and arcane. In
579                         this hands-on tutorial you will get the chance to get your feet wet
580                         with the world's most mind-bogglingly big computer network, the
581                         protocols and programs used, and how to use them responsibly and
582                         effectively. 
583                         </p>
584                 </abstract>
585         </eventitem>
586         <eventitem
587          date="1994-11-02" time="4:30 PM"
588          room="MC 2038"
589          title="Game Theory">
590                 <short>No description available</short>
591                 <abstract>
592                         <h3>From the Minimax Theorem, through Alpha-Beta, and beyond...</h3>
593                         <p>
594                          This will be a descussion of the pitfalls of using mathematics and
595                          algorithms to play classical board games. Thorough descriptions
596                          shall be presented of the simple techniques used as the building
597                          blocks that make all modern computer game players. I will use
598                          tic-tac-toe as a control for my arguements. Other games such as
599                          Chess, Othello and Go shall be the be a greater measure of progress;
600                          and more importantly the targets of our dreams.
601                          </p>
602                         <p>
603                          To enhance the discussion of the future, Barney Pell's Metagamer
604                          shall be introduced. His work in define classes of games is
605                          important in identifying the features necessary for analysis. 
606                          </p>
607                 </abstract>
608         </eventitem>
609
610   <!-- Fall 1999 -->
611
612   <eventitem date="1999-10-18" time="2:30 PM" room="DC1304"
613   title="Living Laboratories: The Future Computing Environments at
614   Georgia Tech">
615     <short>By Blair MacIntyre and Elizabeth Mynatt</short>
616     <abstract>
617       <p>by   Blair MacIntyre and Elizabeth Mynatt</p>
618       <p>The Future Computing Environments (FCE) Group at Georgia Tech
619         is a collection of faculty and students that share a desire to
620         understand the partnership between humans and technology that
621         arises as computation and sensing become ubiquitous.  With
622         expertise covering the breadth of Computer Science, but
623         focusing on HCI, Computational Perception, and Machine
624         Learning, the individual research agendas of the FCE faculty
625         are grounded in a number of shared "living laboratories" where
626         their research is applied to everyday life in the classroom
627         (Classroom 2000), the home (the Aware Home), the office
628         (Augmented Offices), and on one's person.  Professors
629         MacIntyre and Mynatt will discuss a variety of these projects,
630         with an emphasis on the HCI and Computer Science aspects of
631         the FCE work.
632       </p>
633       <p>
634         In addition to their affiliation with the FCE group,
635         Professors Mynatt and MacIntyre are both members of the
636         Graphics, Visualization and Usability Center (GVU) at Georgia
637         Tech.  This interdisciplinary center brings together research
638         in computer science, psychology, industrial engineering,
639         architecture and media design by examining the role of
640         computation in our everyday lives.  During the talk, they will
641         touch on some of the research and educational opportunities
642         available at both GVU and the College of Computing.
643       </p>
644     </abstract>
645   </eventitem>
646
647   <eventitem date="1999-10-19" time="4:30 PM" room="DC1304"
648   title="GDB, Purify Tutorial">
649     <short>No description available.</short>
650     <abstract>
651       <p>
652        Debugging can be the most difficult and time consuming part of
653        any program's life-cycle. Far from an exact science, it's more
654        of an art ... and close to some kind of dark magic. Cryptic
655        error messages, lousy error checking, and icky things like
656        implicit casts can make it nearly impossible toknow what's
657        going on inside your program.
658       </p>
659       <p>
660          Several tools are available to help automate your
661          debuggin. GDB and Purify are among the most powerful
662          debugging tools available in a UNIX environment. GDB is an
663          interactive debugger, allowing you to `step' through
664          aprogram, examine function calls, variable contents, stack
665          traces and let you look at the state of a program after it
666          crashes. Purify is a commercial program designed to help find
667          and remove memory leaks from programs written inlanguages
668          without automatic garbage collection.
669       </p>
670       <p>
671         This talk will cover how to compile your C and C++ programs
672         for use with GDB and Purify, as well as how to use the
673         available X interfaces. If a purify license is available on
674         undergrad at the time of the talk, we will cover how to use it
675         during runtime.
676       </p>
677     </abstract>
678   </eventitem>
679
680   <eventitem date="1999-12-01" time="4:30 PM" room="MC2066"
681     title="Homebrew Processors and Integrated Systems in FPGAs">
682     <short>By Jan Gray</short>
683     <abstract>
684       <p>by Jan Gray</p>
685       
686       <p> With the advent of large inexpensive field-programmable gate
687       arrays and tools it is now practical for anyone to design and
688       build custom processors and systems-on-a-chip. Jan will discuss
689       designing with FPGAs, and present the design and implementation
690       of xr16, yet another FPGA-based RISC computer system with
691       integrated peripherals.</p>
692
693       <p> Jan is a past CSC pres., B.Math. CS/EEE '87, and wrote
694       compilers, tools, and middleware at Microsoft from 1987-1998. He
695       built the first 32-bit FPGA CPU and system-on-a-chip in
696       1995. </p>
697     </abstract>
698   </eventitem>
699
700   <eventitem date="1999-12-01" time="7:00 PM" room="Golf's Steakhouse"
701     title="Ctrl-D">
702     <short>End-of-term dinner</short> 
703     <abstract>
704       No abstract available.
705     </abstract>
706   </eventitem>
707
708   <eventitem date="1999-12-02" time="1:30 PM" room="DC1302"
709     title="Calculational Mathematics">
710     <short>By Edgar Dijkstra</short>
711     <abstract>
712       <p> By Edgar Dijkstra</p>
713
714       <p> This  talk will use  partial orders, lattice theory,  and, if
715       time permits,  the Galois  connection as carriers  to illustrate
716       the use of  calculi in mathematics. We hope  to show the brevity
717       of  many calculations  (in order  tofight the  superstition that
718       formal  proofs  are  necessarily  unpractically long),  and  the
719       strong   heuristic  guidance   that  is   available   for  their
720       design. </p>
721
722       <p> Dijkstra is known for early graph-theoretical algorithms,
723       the first implementation of ALGOL 60, the first operating system
724       composed of explicitly synchronized processes, the invention of
725       guarded commands and of predicate transformers as a means for
726       defining semantics, and programming methodology in the broadest
727       sense of the word. </p>
728
729       <p> His current research interests focus on the formal
730       derivation of proofs and programs, and the streamlining of the
731       mathematical argument in general.</p>
732      
733       <p> Dijkstra held the Schlumberger Centennial Chair in Computer
734       Sciences at The University of Texas at Austin until retiring in
735       October. </p>
736
737     </abstract>
738   </eventitem>
739
740   <eventitem date="1999-12-03" time="10:00 AM" room="Siegfried Hall,
741   St Jerome's" title="Proofs and Programs">
742     <short>By Edsger Dijkstra</short>
743     <abstract>
744       <p> This talk will show the use of programs for the proving of
745       theorems. Its purpose is to show how our experience gained in
746       the derivations of programs might be transferred to the
747       derivation of proofs in general. The examples will go beyond the
748       (traditional) existence theorems. </p>
749
750       <p> Dijkstra is known for early graph-theoretical algorithms,
751       the first implementation of ALGOL 60, the first operating system
752       composed of explicitly synchronized processes, the invention of
753       guarded commands and of predicate transformers as a means for
754       defining semantics, and programming methodology in the broadest
755       sense of the word. </p>
756
757       <p> His current research interests focus on the formal
758       derivation of proofs and programs, and the streamlining of the
759       mathematical argument in general.</p>
760      
761       <p> Dijkstra held the Schlumberger Centennial Chair in Computer
762       Sciences at The University of Texas at Austin until retiring in
763       October. </p>
764
765     </abstract>
766   </eventitem>
767
768   <eventitem date="1999-12-03" time="3:00 PM" room="DC1351"
769     title="Open Q&amp;A session">
770     <short>By Edsger Dijkstra</short>
771     <abstract>No description available.</abstract>
772   </eventitem>
773
774   <!-- Winter 2000 -->
775
776   <eventitem date="2000-03-24" time="4:30 PM" room="DC1304"
777   title="Enterprise Java APIs and Implementing a Web Portal">
778     <short>No description available.</short>
779     <abstract>
780       <h3>by Floyd Marinescu
781       </h3>
782       
783       <p>
784         The first talk will be an introduction to the Enterprise Java
785         API's: Servlets, JSP, EJB, and how to use them to build
786         eCommerce sites.
787       </p>
788
789       <p>
790         The second talk will be about how these technologies were used
791         to implement a real world portal.  The talk will include an
792         overview of the design patterns used and will feature
793         architectural information about the yet to be release portal
794         (which I am one of the developers) called theserverside.com.
795       </p>
796     </abstract>
797   </eventitem>
798
799   <eventitem date="2000-03-30" time="4:30 PM" room="DC1304"
800     title="Enterprise Java APIs and Implementing a Web Portal (1)">
801     <short>No description available.</short>
802     <abstract>
803       <p>Real World J2EE - Design Patterns and architecture behind the
804         yet to be released J2EE portal: theserverside.com</p>
805
806       <p>This talk will feature an exclusive look at the architecture
807         behind the new J2EE portal: theserverside.com.  Join Floyd
808         Marinescu in a walk-through ofthe back-end of the portal,
809         while learning about J2EE and its real world patterns,
810         applications, problems and benefits.</p>
811     </abstract>
812   </eventitem>
813
814   <!-- Spring 2000 -->
815
816   <eventitem date="2000-07-20" time="7:00 PM" room="Ali Babas Steak
817   House, 130 King Street S, Waterloo" title="Ctrl-D">
818     <short>End-of-term dinner</short>
819     <abstract>No abstract available.</abstract>
820   </eventitem>
821
822   <!-- Fall 2000 -->
823
824   <eventitem date="2000-09-14" time="6:00 PM" room="DC1302"
825     title="CSC Elections">
826     <short>Fall 2000 Elections for the CSC.</short>
827     <abstract>
828       <p>
829         Would you like to get involved in the CSC? Would you like to have a
830         say in what the CSC does this term?  Come out to the CSC Elections!
831         In addition to electing the executive for the Fall term, we will be
832         appointing office staff and other positions.  Look for details in
833         uw.csc.
834       </p>
835
836       <p>Nominations for all positions are being taken in the CSC office, MC
837         3036.</p>
838     </abstract>
839   </eventitem>
840
841   <eventitem date="2000-09-14" time="7:00 PM" room="DC1302"
842     title="SIGGraph Video Night">
843     <short> SIGGraph Video Night Featuring some truly awesome computer
844     animations from Siggraph '99. </short>
845     <abstract>
846       <p> Interested in Computer Graphics?
847       </p>
848       
849       <p> Enjoy watching state-of-the-art Animation?
850       </p>
851       
852       <p> Looking for a cheap place to take a date?
853       </p>
854       
855       <p> SIGGraph Video Night -
856         Featuring some truly awesome computer animations from Siggraph '99.
857       </p>
858
859       <p>Come out for the Computer Science Club general elections at 6:00
860         pm, right before SIGGraph!</p>
861       </abstract>
862   </eventitem>
863
864  <eventitem date="2000-09-25" time="2:30 PM" room="DC1302"
865     title="Realising the Next Generation Internet">
866     <short>By Frank Clegg of Microsoft Canada</short>
867     <abstract>
868 <h3>Vitals</h3>
869 <dl>
870 <dt>By</dt>
871 <dd>Frank Clegg</dd>
872 <dd>President, Microsoft Canada</dd>
873 <dt>Date</dt>
874
875 <dd>Monday, September 25, 2000</dd>
876 <dt>Time</dt>
877 <dd>14:30 - 16:00</dd>
878 <dt>Place</dt>
879 <dd>DC 1302</dd>
880 <dd>(Davis Centre, Room 1302, University of Waterloo)</dd>
881
882 <dt>Cost</dt>
883 <dd>$0.00</dd>
884 <dt>Pre-registration</dt>
885 <dd>Recommended</dd>
886 <dd><a HREF="http://infranet.uwaterloo.ca:81/infranet/semform.htm">http://infranet.uwaterloo.ca:81/infranet/semform.htm</a></dd>
887 <dd>(519) 888-4004</dd>
888
889 </dl>
890
891 <h3>Abstract</h3>
892 <p>The Internet and the Web have revolutionized our communications, our access
893 to information and our business methods. However, there is still much room 
894 for improvement. Frank Clegg will discuss Microsoft's vision for what is 
895 beyond browsing and the dotcom. Microsoft .NET (pronounced "dot-net") is a 
896 new platform, user experience and set of advanced software services planned 
897 to make all devices work together and connect seamlessly. With this next 
898 generation of software, Microsoft's goal is to make Internet-based 
899 computing and communications easier to use, more personalized, and more 
900 productive for businesses and consumers. In his new position of president 
901 of Microsoft Canada Co., Frank Clegg will be responsible for leading the 
902 organization toward the delivery of Microsoft .NET. He will speak about 
903 this new platform and the next generation Internet, how software developers 
904 and businesses will be able to take advantage of it, and what the .NET 
905 experience will look like for consumers and business users.</p>
906
907 <h3>The Speaker</h3>
908 <p>Frank Clegg was appointed president of Microsoft Canada Co. this month. 
909 Prior to his new position, Mr. Clegg was vice-president, Central Region, 
910 Microsoft Corp. from 1996 to 2000. In this capacity, he was responsible for 
911 sales, support and marketing activities in 15 U.S. states. Mr. Clegg joined 
912 Microsoft Corp. in 1991 and headed the Canadian subsidiary until 1996. 
913 During that time, Mr. Clegg was instrumental in introducing several key 
914 initiatives to improve company efficiency, growth and market share. Mr. 
915 Clegg graduated from the University of Waterloo in 1977 with a B. Math.</p>
916
917 <h3>For More Information</h3>
918 <address>
919 Shirley Fenton<br />
920 The infraNET Project<br />
921 University of Waterloo<br />
922 519-888-4567 ext. 5611<br />
923 <a HREF="http://infranet.uwaterloo.ca/">http://infranet.uwaterloo.ca/</a>
924 </address>
925       </abstract>
926   </eventitem>
927
928
929  <!-- Winter 2001 -->
930
931  <eventitem date="2001-01-15" time="4:30 PM" room="MC3036"
932     title="Executive elections">
933   <short>Winter 2001 CSC Elections.</short>
934   <abstract>
935       <p>Would you like to get involved in the CSC? Would you like to
936         have a say in what the CSC does this term? Come out to the CSC
937         Elections! In addition to electing the executive for the
938         Winter term, we will be appointing office staff and other
939         positions. Look for details in uw.csc.
940       </p>
941       <p>
942         Nominations for all positions are being taken in the CSC
943         office, MC 3036.
944       </p>
945     </abstract>
946  </eventitem>
947   <eventitem date="2001-01-22" time="3:30 PM" room="MC3036"
948     title="Meeting #2">
949     <short>Second CSC meeting for Winter 2001.</short>
950     <abstract>
951       <h3>Proposed agenda</h3>
952       <dl>
953         <dt>Book purchases</dt>
954         <dd>
955           <p>They haven't been done in 2 terms.
956             We have an old list of books to buy.
957             Any suggestions from uw.csc are welcome.</p>
958         </dd>
959         <dt>CD Burner</dt>
960         
961         <dd>
962           <p>For doing linux burns. It was allocated money on the budget
963             request - about $300. We should be able to get a decent 12x
964             burner with that (8x rewrite).</p>
965           <p>The obvious things to sell are Linux Distros and BSD variants.
966             Are there any other software that we can legally burn and sell
967             to students?</p>
968         </dd>
969         <dt>Unix talks</dt>
970         <dd>
971           <p>Just a talk of the topics to be covered, when, where, whatnot.
972             Mike was right on this one, this should have been done earlier
973      in the term.  Oh well, maybe we can fix this for next fall term.</p>
974           
975         </dd>
976         <dt>Game Contest</dt>
977         <dd>
978           <p>We already put a bit of work into planning the Othello contest
979             before I read Mike's post. I still think it's viable. I've got
980             at least 2 people interested in writing entries for it. This
981             will be talked about more on monday. Hopefully, Rory and I will
982             be able to present a basic outline of how the contest is going
983             to be run at that time.</p>
984         </dd>
985         <dt>Peri's closet cleaning</dt>
986         <dd>
987           
988           <p>Current sysadmin (jmbeverl) and I (kvijayan) and
989             President (geduggan) had a nice conversation about this 2
990             days ago, having to do with completely erasing all of
991             peri, installing a clean stable potato debian on it, and
992             priming it for being a gradual replacement to calum. We'll
993             probably discuss how much we want to get done on this
994             front on Monday.</p>
995         </dd>
996       </dl>
997       
998       <p>Any <a HREF="nntp://news.math.uwaterloo.ca/uw.csc/8305">comments</a> from <a HREF="news:uw.csc">the newsgroup</a> are welcome.</p>
999     </abstract>
1000   </eventitem>
1001
1002   <eventitem date="2001-01-27" time="10:30 AM" room="MC3006"
1003     title="ACM-Style programming contest">
1004     <short>Practice for the ACM international programming
1005     contest</short>
1006     <abstract>
1007 <p>Our ACM-Style practice  contests involve answering five questions in three
1008 hours.   Solutions are written  in Pascal, C  or C++.   Seven years in  a row,
1009 Waterloo's teams  have been in  the top ten  at the world  finals.
1010 For more information, see
1011 <a HREF="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
1012
1013 <h3>Easy Question:</h3>
1014 <p>A palindrome is a sequence of letters that reads the same backwards and
1015 forwards, such as ``Madam, I'm Adam'' (note that case doesn't matter and
1016 only letters are important). Your task is to find the longest palindrome in
1017 a line of text (if there is a tie, print the leftmost one).</p>
1018 <pre>
1019 Input:                              Output:
1020
1021 asfgjh12dsfgg kj0ab12321BA wdDwkj   abBA
1022 abcbabCdcbaqwerewq                  abCdcba
1023 </pre>
1024
1025 <h3>Hard Question:</h3>
1026 <p>An anagram is a word formed by reordering the letters of another word.
1027 Find all sets of anagrams that exist within a large dictionary.  The
1028 input will be a sorted list of words (up to 4000 words), one per line.
1029 Output each set of anagrams on a separate line.  Each set should be
1030 in alphabetical order, and all lines of sets should be in alphabetical
1031 order.  A word with no anagrams is a set of anagrams itself, and should
1032 be displayed with no modifications.</p>
1033
1034 <pre>
1035 Input:      Output:
1036
1037 post        post pots stop
1038 pots        start
1039 start
1040 stop
1041 </pre>
1042     </abstract>
1043   </eventitem>
1044
1045   <eventitem date="2001-01-29" time="02:39 PM" room="MC3036"
1046     title="Meeting #3">
1047     <short>No description available.</short>
1048     <abstract>No abstract available.</abstract>
1049   </eventitem>
1050
1051   <eventitem date="2001-02-05" time="03:30 PM" room="MC3036"
1052     title="Meeting #4">
1053     <short>No description available.</short>
1054     <abstract>No abstract available.</abstract>
1055   </eventitem>
1056
1057   <eventitem date="2001-02-12" time="03:30 PM" room="MC3036"
1058     title="Meeting #5">
1059     <short>No description available.</short>
1060     <abstract>No abstract available.</abstract>
1061   </eventitem>
1062
1063   <!-- Spring 2001 -->
1064
1065   <eventitem date="2001-06-02" time="10:30 AM" room="MC3006"
1066     title="ACM-Style programming contest">
1067     <short>Practice for the ACM international programming
1068     contest</short>
1069     <abstract>
1070 <p>Our ACM-Style practice  contests involve answering five questions in three
1071 hours.   Solutions are written  in Pascal, C  or C++.   Seven years in  a row,
1072 Waterloo's teams  have been in  the top ten  at the world  finals.
1073 For more information, see
1074 <a HREF="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
1075
1076 <h3>Easy Question:</h3>
1077 <p>A palindrome is a sequence of letters that reads the same backwards and
1078 forwards, such as ``Madam, I'm Adam'' (note that case doesn't matter and
1079 only letters are important). Your task is to find the longest palindrome in
1080 a line of text (if there is a tie, print the leftmost one).</p>
1081 <pre>
1082 Input:                              Output:
1083
1084 asfgjh12dsfgg kj0ab12321BA wdDwkj   abBA
1085 abcbabCdcbaqwerewq                  abCdcba
1086 </pre>
1087
1088 <h3>Hard Question:</h3>
1089 <p>An anagram is a word formed by reordering the letters of another word.
1090 Find all sets of anagrams that exist within a large dictionary.  The
1091 input will be a sorted list of words (up to 4000 words), one per line.
1092 Output each set of anagrams on a separate line.  Each set should be
1093 in alphabetical order, and all lines of sets should be in alphabetical
1094 order.  A word with no anagrams is a set of anagrams itself, and should
1095 be displayed with no modifications.</p>
1096
1097 <pre>
1098 Input:      Output:
1099
1100 post        post pots stop
1101 pots        start
1102 start
1103 stop
1104 </pre>
1105     </abstract>
1106   </eventitem>
1107
1108
1109  <!-- Winter 2002 -->
1110
1111  <eventitem date="2002-01-26" time="2:00 PM"
1112   room="Comfy Lounge MC3001" 
1113   title="An Introduction to GNU Hurd">
1114   <short>Bored of GNU/Linux? Try this experimental operating
1115   system!</short>
1116   <abstract>
1117 <p>GNU Hurd is an operating system kernel based on the microkernel
1118 architecture design. It was the original GNU kernel, predating Linux,
1119 and is still being actively developed by many volunteers.</p>
1120 <p>The Toronto-area Hurd Users Group, in co-operation with the Computer
1121 Science Club, is hosting an afternoon to show the Hurd to anyone
1122 interested. Jeff Bailey, a Hurd developer, will give a presentation on
1123 the Hurd, followed by a GnuPG/PGP keysigning party. To finish it off,
1124 James Morrison, also a Hurd developer, will be hosting a Debian
1125 GNU/Hurd installation session.</p>
1126 <p>All interested are invited to attend. Bring your GnuPG/PGP fingerprint
1127 and mail your key to sjdutoit@uwaterloo.ca with the subject
1128 ``keysigning'' (see separate announcement).</p>
1129 <p>Questions? Suggestions? Contact <a
1130 href="ja2morri@uwaterloo.ca">James Morrison</a>.</p>
1131   </abstract>
1132  </eventitem>
1133  <eventitem date="2002-01-26" time="2:30 PM"
1134   room="Comfy Lounge MC3001" 
1135   title="GnuPG/PGP Keysigning Party">
1136   <short>Get more signatures on your key!</short>
1137   <abstract>
1138   <p>
1139    GnuPG and PGP provide public-key based encryption for e-mail and
1140    other electronic communication. In addition to preventing others
1141    from reading your private e-mail, this allows you to verify that an
1142    e-mail or file was indeed written by its perceived author.
1143   </p>
1144   <p>
1145    In order to make sure a GnuPG/PGP key belongs to the respective
1146    person, the key must be signed by someone who has checked the
1147    user's key fingerprint and verified the user's identification.
1148   </p>
1149   <p>
1150    A keysigning party is an ideal occasion to have your key signed by
1151    many people, thus strengthening the authority of your key. Everyone
1152    showing up exchanges key signatures after verifying ID and
1153    fingerprints. The Computer Science Club will be hosting such a
1154    keysigning party together with the Hurd presentation by THUG (see
1155    separate announcement). See
1156    <a href="http://www.student.math.uwaterloo.ca/~sjdutoit/"> the
1157    keysigning party homepage</a> for more information.
1158   </p>
1159   <p>
1160    Before attending it is important that you mail your key to
1161    sjdutoit@uwaterloo.ca with the subject ``keysigning.'' Also make
1162    sure to bring photo ID and a copy of your GnuPG/PGP fingerprint on
1163    a sheet of paper to the event.
1164   </p>
1165   </abstract>
1166  </eventitem>
1167  <eventitem date="2002-01-31" time="6:00 PM" room="MC2037"
1168   title="UNIX 101: First Steps With UNIX">
1169   <abstract>
1170     This is the first in a series of seminars that cover the use of
1171     the UNIX Operating System. UNIX is used in a variety of
1172     applications, both in academia and industy. We will be covering
1173     the basics of the UNIX environment, as well as the use of PINE, an
1174     electronic mail and news reader.
1175   </abstract>
1176  </eventitem>
1177  <eventitem date="2002-02-13" time="4:00 PM" room="MC4060"
1178   title="DVD-Video Under Linux">
1179   <short>Billy Biggs will be holding a talk on DVD technology
1180   (in particular, CSS and playback issues) under Linux, giving some
1181   technical details as well as an overview of the current status of
1182   Free Software efforts. All are welcome.</short>
1183   <abstract>
1184    <p>DVD copy protection: Content Scrambling System (CSS)</p>
1185    <ul>
1186     <li>A technical introduction to CSS and an overview of the ongoing
1187     legal battle to allow distribution of non-commercial DVD
1188     players</li>
1189     <li>The current Linux software efforts and open issues</li>
1190     <li>How applications and Linux distributions are handling the
1191     legal issues involved</li>
1192    </ul>
1193    <p>DVD-Video specifics: Menus and navigation</p>
1194    <ul>
1195     <li>An overview of the DVD-Video standard</li>
1196     <li>Reverse engineering efforts and their implementation status</li>
1197     <li>Progress of integration into Linux media players</li>
1198    </ul>
1199   </abstract>
1200  </eventitem>
1201  <eventitem date="2002-02-07" time="6:00 PM" room="MC2037"
1202   title="Unix 102: Fun With UNIX">
1203   <short>This the second in a series of UNIX tutorials. Simon Law and
1204   James Perry will be presenting some more advanced UNIX
1205   techniques. All are welcome. Accounts will be provided for those
1206   needing them.</short>
1207   <abstract>
1208    <p>
1209     This is the second in a series of seminars that cover the use of
1210     the UNIX Operating System. UNIX is used in a variety of
1211     applications, both in academia and industry. We will provide you
1212     with hands-on experience with the Math Faculty's UNIX environment
1213     in this tutorial.
1214    </p>
1215    <p>Topics that will be discussed include:</p>
1216    <ul>
1217     <li>Interacting with Bourne and C shells</li>
1218     <li>Editing text using the vi text editor</li>
1219     <li>Editing text using the Emacs display editor</li>
1220     <li>Multi-tasking and the screen multiplexer</li>
1221    </ul>
1222    <p>
1223      If you do not have a Math computer account, don't panic; one will
1224      be lent to you for the duration of this class.
1225    </p>
1226   </abstract>
1227  </eventitem>
1228  <eventitem date="2002-03-01" time="5:00 PM" room="MC4060"
1229   title="Computer Go, The Ultimate">
1230   <short>Thomas Wolf from Brock University will be holding a talk on
1231   the asian game of Go. All are welcome.</short>
1232   <abstract>
1233    <p>
1234     The asian game go is unique in a number of ways. It is the oldest
1235     board game known. It is a strategy game with very simple
1236     rules. Computer programs are very weak despite huge efforts and
1237     prizes of US$ &gt; 1.5M for a program beating professional
1238     players. The talk will quickly explain the rules of go, compare go
1239     and chess, mention various attempts to program go and describe our
1240     own efforts in this field. Students will have an opportunity to
1241     solve computer generated go problems. Prizes will be available.
1242    </p>
1243   </abstract>
1244  </eventitem>
1245
1246   <!-- Spring 2002 -->
1247
1248   <eventitem date="2002-05-11" time="7:00 PM" room="MC3036" title="S02
1249     elections">
1250     <short>Come and vote for this term's exec</short>
1251     <abstract>
1252       <p>
1253         Vote for the exec this term. Meet at the CSC office.
1254       </p>
1255     </abstract>
1256   </eventitem>
1257
1258
1259   <!-- Fall 2002 -->
1260
1261   <eventitem date="2002-09-16" time="5:30 PM" room="Comfy lounge"
1262   title="F02 elections">
1263     <short>Come and vote for this term's exec</short>
1264     <abstract>
1265       <p>
1266         Vote for the exec this term. Meet at the comfy
1267         lounge. There will be an opportunity to obtain or renew
1268         memberships. This term's CRO is Siyan Li
1269         (s8li@csclub.uwaterloo.ca).
1270       </p>
1271     </abstract>
1272   </eventitem>
1273
1274   <eventitem date="2002-09-30" time="6:30 PM" room="Comfy lounge, MC3001"
1275   title="Business Meeting">
1276     <short>Vote on a constitutional change.</short>
1277     <abstract>
1278       <p>
1279          The executive has unanimously decided to try to change our
1280 constitution to comply with MathSoc policy.  The clause we are trying
1281 to change is the membership clause.  The following is the proposed new
1282 reading of the clause.
1283       </p>
1284       <p><i>
1285         In compliance with MathSoc regulations and in recognition of
1286 the club being primarily targeted at undergraduate students, full
1287 membership is open to all undergraduate students in the Faculty of
1288 Mathematics and restricted to the same.</i>
1289       </p>
1290
1291       <p>
1292         The proposed change is illustrated <a
1293         href="http://www.csclub.uwaterloo.ca/docs/constitution-change-20020920.html">on
1294         a web page</a>.
1295       </p>
1296
1297       <p>
1298         There will be a business meeting on 30 Sept 2002 at 18:30 in
1299         the comfy lounge, MC 3001. Please come and vote
1300       </p>
1301     </abstract>
1302   </eventitem>
1303
1304   <eventitem date="2002-09-26" time="5:30 PM" room="MC3006"
1305   title="UNIX 101">
1306     <short>First Steps with UNIX</short>
1307     <abstract>
1308       <p>
1309            Get to know UNIX and be the envy of your friends!
1310       </p>
1311       <p>
1312         This is the first in a series of seminars that cover the use
1313         of the UNIX Operating System.  UNIX is used in a variety of
1314         applications, both in academia and industy. We will provide
1315         you with hands-on experience with the Math Faculty's UNIX
1316         environment in this seminar.
1317       </p>
1318       <p>
1319         Topics that will be discussed include:
1320       </p>
1321       <ul>
1322         <li>Navigating the UNIX environment</li>
1323         <li>Using common UNIX commands</li>
1324         <li>Using the PICO text editor</li>
1325         <li>Reading electronic mail and news with PINE</li>
1326       </ul>
1327       <p>
1328     If you do not have a Math computer account, don't panic; one will be 
1329 lent to you for the duration of this class.
1330       </p>
1331     </abstract>
1332   </eventitem>
1333
1334   <eventitem date="2002-10-01" time="6:30 PM-9:30 PM" room="The Bomber"
1335   title="Pints with the Profs">
1336     <short>Get to know your profs and be the envy of your friends!</short>
1337     <abstract>
1338     <p>Come out and meet your professors.  This is a great opportunity to
1339 meet professors for Undergraduate Research jobs or to find out who you might
1340 have for future courses.</p>
1341
1342     <p>Profs who have confirmed their attendance are:</p>
1343     <ul>
1344       <li>Troy Vasiga, School of Computer Science</li>
1345       <li>J.P. Pretti, St. Jerome's and School of Computer Science</li>
1346       <li>Michael McCool, School of Computer Science, CGL</li>
1347       <li>Martin Karsten, School of Computer Science, BBCR</li>
1348       <li>Gisli Hjaltason, School of Computer Science, DB</li>
1349     </ul>
1350
1351     <p>There will also be...</p>
1352     <ul>
1353       <li>Free Food</li>
1354       <li>Free Food</li>
1355       <li>Free Food</li>
1356     </ul>
1357     </abstract>
1358   </eventitem>
1359
1360   <eventitem date="2002-10-03" time="5:30 PM" room="MC3006"
1361   title="UNIX 102">
1362     <short>Talking to your UNIX can be fun and profitable.</short>
1363     <abstract>
1364 <p>This is the second in a series of seminars that cover the use of
1365 the UNIX Operating System. UNIX is used in a variety of applications,
1366 both in academia and industry. We will provide you with hands-on
1367 experience with the Math Faculty's UNIX environment in this
1368 tutorial.</p>
1369
1370 <p>Topics that will be discussed include:</p>
1371 <ul><li>Interacting with Bourne and C shells</li>
1372 <li>Editing text using the vi text editor</li>
1373 <li>Editing text using the Emacs display editor</li>
1374 <li>Multi-tasking and the screen multiplexer</li>
1375 </ul>
1376
1377 <p>If you do not have a Math computer account, don't panic; one will be
1378 lent to you for the duration of this class.</p>
1379
1380 </abstract>
1381   </eventitem>
1382
1383   <eventitem date="2002-10-08" time="4:30PM" room="MC4045"
1384   title="Video cards, Linux display drivers and the Kernel Graphics Interface (KGI)">
1385     <short>A talk by Filip Spacek, KGI developer</short>
1386     <abstract>
1387     Linux has proven itself as a reliable operating system but arguably,
1388     it still lacks in support of high performance graphics
1389     acceleration. This talk will describe basic components of a PC video
1390     card and the design and limitations the current Linux display driver
1391     architecture.  Finally a an overview of a new architecture, the Kernel
1392     Graphics Interface (KGI), will be given.  KGI attempts to solve the
1393     shortcomings of the current design, and provide a lightweight and
1394     portable interface to the display subsystem.
1395     </abstract>
1396   </eventitem>
1397
1398   <eventitem date="2002-10-10" time="5:30pm" room="MC3006"
1399   title="UNIX 103">
1400     <short></short>
1401     <abstract>No abstract available yet.</abstract>
1402   </eventitem>
1403
1404   <eventitem date="2002-11-05" time="4:30 PM" room="MC 2065"
1405   title="The Evil Side of C++">
1406     <short>Abusing template metaprogramming in C++; aka. writing a
1407     Mandelbrot generator that runs at compile time</short>
1408     <abstract>
1409       <p>Templates are a useful feature in C++ when it comes to writing
1410     type-independent data structures and algorithms. Relatively soon
1411     after their appearance it was realised that they could be used to
1412     do much more than this. Essentially it is possible to write
1413     certain programs in C++ that execute <i>completely at compile
1414     time</i> rather than run time. Combined with constant-expression
1415     optimisation this is an interesting twist on regular C++
1416     programming.</p>
1417     <p>This talk will give a short overview of the features of
1418     templates and then go on to describe how to &quot;abuse&quot;
1419     templates to perform complex computations at compile time. The
1420     speaker will present three programs of increasing complexity which
1421     execute at compile time. First a factorial listing program, then a
1422     prime listing program will be presented. Finally the talk will
1423     conclude with the presentation of a <b>Mandelbrot generator running
1424     at compile time</b>.</p>
1425
1426     <p>If you are interested in programming for the fun of it, the C++
1427     language or silly tricks to do with languages, this talk is for
1428     you. No C++ knowledge should be necessary to enjoy this talk, but
1429     programming experience will make it more worthwile for you.</p>
1430
1431     </abstract> </eventitem>
1432
1433   <eventitem date="2002-11-02" time="11:00AM-3:00PM"
1434     room="MC3002 (Math Coffee and Donut Store)"
1435     title="GNU/Linux InstallFest with KW-LUG and UW-DIG">
1436     <short>Bring over your computer and we'll help you install GNU/Linux</short>
1437     <abstract>
1438       <p>The <a href="http://www.csclub.uwaterloo.ca/">CSC</a>, the <a
1439       href="http://www.kwlug.org/">KW-Linux User Group</a>, and the <a
1440       href="http://uw-dig.uwaterloo.ca/">UW Debian Interest Group</a>
1441       are jointly hosting a GNU/Linux InstallFest.  GNU/Linux is a
1442       powerful, free operating system for your computer.  It is mostly
1443       written by talented volunteers who like to share their efforts
1444       and help each other.</p>
1445
1446       <p>Perhaps you have are you interested in installing GNU/Linux.
1447       If so, bring your computer, monitor and keyboard; and we will
1448       help you install GNU/Linux on your machine.  You can also find
1449       knowledgable people who can answer your questions about
1450       GNU/Linux.</p>
1451
1452       <hr />
1453
1454       <h3>Frequently Asked Questions</h3>
1455
1456 <p><b>Q: </b>What is GNU/Linux?<br />
1457 <b>A: </b>GNU/Linux is a free operating system for your computer.  It is mostly
1458    written by talented volunteers who like to share their efforts.
1459 </p>
1460
1461 <p><b>Q: </b>Free?<br />
1462 <b>A: </b>GNU/Linux is available for zero-cost.  As well, it allows you such
1463    freedom to share it with your friends, or to modify the software to
1464    your own needs and share that with your friends.  It's very friendly.
1465 </p>
1466
1467 <p><b>Q: </b>What is an InstallFest?<br />
1468 <b>A: </b>An InstallFest is a meeting where volunteers help people install
1469    GNU/Linux on their computers.  It's also a place to meet users, and
1470    talk to them about running GNU/Linux.
1471 </p>
1472
1473 <p><b>Q: </b>What kind of computer do I need to use GNU/Linux?<br />
1474 <b>A: </b>Almost any recent computer will do.  If you have an old machine
1475    kicking around, you can install GNU/Linux on it as well.  If it is
1476    at least 5 years old, it should be good enough.
1477 </p>
1478
1479 <p><b>Q: </b>Can I have Windows and GNU/Linux on the same computer?<br />
1480 <b>A: </b>If you can run Windows now, and you have an extra gigabyte (GB) of
1481    disk space to spare; then it should be possible.
1482 </p>
1483
1484 <p><b>Q: </b>What should I bring if I want to install GNU/Linux?<br />
1485 <b>A: </b>You will want to bring:</p>
1486 <ol>
1487 <li>Computer</li>
1488 <li>Monitor and monitor cable</li>
1489 <li>Power cords</li>
1490 <li>Keyboard and mouse</li>
1491 </ol>
1492
1493     </abstract>
1494   </eventitem>
1495
1496   <eventitem date="2002-11-07" time="5:30pm" room="MC4063"
1497   title="The GNU General Public License">
1498     <short>The teeth of Free Software</short>
1499     <abstract>
1500 <p>
1501 <blockquote>
1502 <i>
1503 The licenses for most software are designed to take away your freedom
1504 to share and change it. By contrast, the GNU General Public License
1505 is intended to guarantee your freedom to share and change free
1506 software---to make sure the software is free for all its users.
1507 </i><br/>--- Excerpt from the GNU GPL
1508 </blockquote>
1509 </p>
1510 <p>The GNU General Public License is one of the most influencial
1511 software licenses in this day.  Written by Richard Stallman for the
1512 GNU Project, it is used by software developers around the world to
1513 protect their work.
1514 </p>
1515 <p>
1516 Unfortunately, software developers do not read licenses thoroughly, nor
1517 well.  In this talk, we will read the entire GNU GPL and explain the
1518 implications of its passages.  Along the way, we will debunk some myths
1519 and clarify common misunderstandings.
1520 </p>
1521 <p>
1522 After this session, you ought to understand what the GNU GPL means, how
1523 to use it, and when you cannot use it.  This session should also give
1524 you some insight into the social implications of this work.
1525 </p>
1526     </abstract>
1527   </eventitem>
1528
1529   <eventitem date="2002-11-19" time="4:30pm" room="MC4058"
1530    title="Metaprogramming GPUs">
1531    <short>A talk by Michael McCool of the Computer Graphics Lab.</short>
1532    <abstract>
1533 <p>
1534 Modern graphics accelerators, or "GPUs", have embedded high-performance 
1535 programmable components in the form of vertex and fragment shading units. 
1536 Recently, these units have evolved from 8-bit computations to floating-point,
1537 and other operations provide array gather, scatter, and summation.
1538 These capabilities make GPUs akin to array processors of the 
1539 past, but with a difference: every PC now has one!  I am interested 
1540 in finding the best way to exploit this computational capacity for not
1541 only graphics but for general-purpose computation.
1542 </p><p>
1543 Current APIs permit specification of the programs for GPUs
1544 using an assembly-language level interface.  Compilers for high-level 
1545 shading languages are available, such as NVIDIA's Cg, and OpenGL 2.0 and 
1546 DirectX will also include standardized shading languages.  This talk will 
1547 review these.  However, compilers for these languages read in an external 
1548 string specification, which can be inconvenient.   
1549 </p><p>
1550 However, it is possible, using standard C++, to define a high-level
1551 shading language directly in the API.  Such a language can be nearly
1552 indistinguishable from a special-purpose programming language, yet  
1553 permits more direct interaction with the specification of textures 
1554 (arrays) and parameters, simplifies implementation, and enables
1555 on-the-fly generation, manipulation, and specialization of shader programs.
1556 A shading language built into the API also permits the lifting of
1557 C++ host language type, modularity, and scoping constructs into the shading
1558 language without any additional implementation effort.   Such an
1559 embedded language could be used to program other embedded processors
1560 (such as DSP chips in sound cards) or even to generate machine language
1561 on the fly for the host CPU.
1562 </p>
1563     </abstract>
1564   </eventitem>
1565
1566   <eventitem date="2002-11-16" time="1:30pm" room="York University"
1567   title="Trip to York University">
1568     <short>Going to visit the York University Computer Club</short>
1569     <abstract><p>YUCC and the UW CSC have having a join meeting at York 
1570 University.  Dave Makalsky, the President of YUCC, will be giving a talk on 
1571 Design-by-constract and Eiffel.  Stefanus Du Toit, Vice-President of the UW 
1572 CSC, will be giving a talk on the evil depths of the black art known as C++.
1573 </p><p>Schedule</p>
1574 <ul><li>1:30pm: Leave UW</li>
1575 <li>3:00pm: Arrive at York University.</li>
1576 <li>3:30pm: The Evil side of C++</li>
1577 <li>4:30pm: Design-by-Contract and Eiffel</li>
1578 <li>6:00pm: Dinner</li>
1579 <li>9:00pm: Arrive back at UW</li>
1580 </ul>
1581 </abstract>
1582   </eventitem>
1583
1584   <eventitem date="2002-11-21" time="6:00pm" room="MC2066"
1585   title="Perl 6">
1586     <short>A talk by Simon Law</short>
1587     <abstract>
1588       <p>
1589         Perl, the Practical Extraction and Reporting Language can only
1590         be described as an eclectic language, invented and refined by
1591         a deranged system administrator, who was trained as a
1592         linguist.  This man, however, has declared:
1593       </p>
1594       <blockquote>
1595         <i>
1596           Perl 5 was my rewrite of Perl.
1597           I want Perl 6 to be the community's rewrite of Perl and of the
1598           community.
1599         </i><br/>--- Larry Wall
1600       </blockquote>
1601       <p>
1602         Whenever a language is designed by a committee, it is common
1603         wisdom to avoid it.  Not so with Perl, for it cannot get
1604         worse.  However strange these Perl people seem, Perl 6 is a
1605         good thing coming.  In this talk, I will demonstrate some Perl
1606         5 programs, and talk about their Perl 6 counterparts, to show
1607         you that Perl 6 will be cleaner, friendlier, and prettier.
1608       </p>
1609     </abstract>
1610   </eventitem>
1611
1612   <eventitem date="2002-11-21" time="4:30pm" room="MC2066"
1613    title="Samba and You">
1614     <short>A talk by Dan Brovkovich, Mathsoc's Computing Director</short>
1615     <abstract><p>
1616 Samba is a free implementation of the Server Message Block (SMB)
1617 protocol. It also implements the Common Internet File System (CIFS)
1618 protocol, used by Microsoft Windows 95/98/ME/2000/XP to share files and
1619 printers. </p><p>
1620 SMB was originally developed in the early to mid-80's by IBM and was
1621 further improved by Microsoft, Intel, SCO, Network Appliances, Digital
1622 and many others over a period of 15 years. It has now morphed into CIFS,
1623 a form strongly influenced by Microsoft. </p><p>
1624 Samba is considered to be one of the key projects for the acceptance of
1625 GNU/Linux and other Free operating systems (e.g. FreeBSD) in the
1626 corporate world: a traditional Windows NT/2000 stronghold. </p><p>
1627 We will talk about interfacing Samba servers and desktops with the
1628 Windows world.  From a simple GNU/Linux desktop in your home to the
1629 corporate server that provides collaborative file/printer sharing,
1630 logons and home directories to hundreds of users a day. </p>
1631     </abstract>
1632   </eventitem>
1633
1634   <eventitem date="2002-10-26" time="1:30PM" room="MC2066"
1635   title="GNU/Linux on HPPA">
1636     <short>Carlos O'Donnell talks about &quot;the last of the legacy processors to fall before the barbarian horde&quot;</short>
1637     <abstract>
1638 <p>This whirlwind talk is aimed at providing an overview of the
1639 GNU/Linux port for the HP PARISC processor. The talk will focus on
1640 the &quot;intricacies&quot; of the processor, and in particular the
1641 implementations of the Linux kernel and GNU Libc. After the talk
1642 you should be acutely aware of how little code needs to be written
1643 to support a new architecture! Carlos has been working on the port
1644 for two years, and enjoying the fruits of his labour on a 46-node
1645 PARISC cluster.</p>
1646
1647 <hr />
1648 <p>
1649 Carlos is currently in his 5th year of study at the University
1650 of Western Ontario. This is his last year in a concurrent
1651 Computer Engineering and Computer Science degree. His research
1652 interest range from distributed and parallel systems to low
1653 level optimized hardware design. He likes playing guitar and
1654 just bought a Cort NTL-20, jumbo body, solid spurce top with
1655 a mahogany back. Carlos hacks on the PARISC Linux kernel, GNU libc,
1656 GNU Debugger, GNU Binutils and various Debian packages.
1657 </p>
1658
1659
1660 </abstract>
1661   </eventitem>
1662
1663   <eventitem date="2002-10-26" time="3:00PM" room="MC2066"
1664   title="The Hurd Interfaces">
1665     <short>Marcus Brinkmann, a GNU Hurd developer, talks about the Hurd server interfaces, at the heart of a GNU/Hurd system</short>
1666     <abstract>
1667 <p>The Hurd server interfaces are at the heart of the Hurd system.  They
1668  define the remote procedure calls (RPCs) that are used by the servers, the
1669  GNU C library and the utility programs to communicate with the Hurd system
1670  and to implement the POSIX personality of the Hurd as well as other
1671  features.</p>
1672
1673 <p>This talk is a walk through the Hurd RPCs, and will give an overview of how
1674  they are used to implement the system.  Individual RPCs will be used to
1675  illustrate important or exciting features of the Hurd system in general,
1676  and it will be shown how those features are accessible to the user at the
1677  command line, too.</p>
1678
1679  <hr />
1680
1681  <p>Marcus Brinkmann is a math student at the Ruhr-Universitaet Bochum in
1682  Germany.  He is one of maintainers of the GNU Hurd project and the
1683  initiator of the Debian GNU/Hurd binary distribution.  He designed and
1684  implemented the console subsystem of the Hurd, wrote the FAT filesystem
1685  server, and fixed a lot of bugs, thus increasing the stability and
1686  usability of the system.</p>
1687
1688     </abstract>
1689   </eventitem>
1690
1691   <eventitem date="2002-10-26" time="4:30PM" room="MC2066"
1692   title="A GNU Approach to Virtual Memory Management in a Multiserver Operating System">
1693     <short>Neal Walfield, a GNU Hurd developer, talks about a possible Virtual Memory Management subsystem for the GNU Hurd</short>
1694     <abstract>
1695 <p>Virtual memory management is one of the cornerstones of multiuser
1696 operating systems.  Most systems available today place all of the
1697 policy in a monolithic virtual memory manager, VMM, isolated from the
1698 rest of the system.  Although secure and lightweight, users have no
1699 way to communicate their anticipated memory needs and usage to the
1700 system pager.  As a result, the VMM can only implement a global paging
1701 policy (typically, an approximation of LRU) which may be good on
1702 average but is best for nobody.</p>
1703
1704 <p>With the port of Hurd to the L4 microkernel, this situation is being
1705 readdressed.  Due to its more distributed nature, a centralized
1706 resource manager is not only more difficult to implement efficiently
1707 but also contrary to the philosophy of the rest of the system.  We are
1708 currently exploring a model whereby each program is fully self-paged
1709 and all compete for memory from a physical memory server.  This talk
1710 will first discuss how paging currently works in Mach and other
1711 systems.  An argument for an external paging policy will then be
1712 presented followed by the requirements of such a design and the design
1713 itself.</p>
1714
1715 <hr />
1716
1717 <p>Neal Walfield, a GNU Hurd developer, is from the University of Massachusetts
1718 Lowell.  Neal spent the summer of 2002 at University of Karlsruhe working
1719 on porting the GNU Hurd to L4.</p>
1720
1721     </abstract>
1722   </eventitem>
1723
1724   <eventitem date="2002-10-17" time="5:30PM" room="MC2065"
1725   title="Debian in the Enterprise">
1726     <short>A talk by Simon Law</short>
1727     <abstract>
1728 <p>The Debian Project produces a &quot;Universal Operating System&quot; that is
1729 comprised entirely of Free Software.  This talk focuses on using Debian
1730 GNU/Linux in an enterprise environment.  This includes:</p>
1731 <ul>
1732   <li>Where Debian can be deployed</li>
1733   <li>Strategic advantages of Debian</li>
1734   <li>Ways for business to give back to Debian</li>
1735 </ul>
1736    </abstract>
1737   </eventitem>
1738
1739   <eventitem date="2002-11-12" time="4:30PM" room="MC4058"
1740   title="Automatic Memory Management and Garbage Collection">
1741     <short>A talk by James A. Morrison</short>
1742     <abstract>
1743 <p>
1744   Do you ever wonder what java is doing while you wait?  Have you ever used
1745 Modula-3?  Do you wonder how lazily you can Mark and Sweep?  Would you like to
1746 know how to Stop-and-Copy?
1747 </p><p>
1748  Come out to this talk and learn these things and more.  No prior knowledge of
1749 Garbage Collection or memory management is needed.
1750 </p>
1751    </abstract>
1752   </eventitem>
1753
1754 </eventdefs>
1755