adding bico talk shell
[www/www.git] / media / index.xml
1 <?xml version='1.0'?>
2 <!DOCTYPE cscpage SYSTEM "../csc.dtd">
3
4 <cscpage title="Media">
5 <header/>
6   <section title="CSC Media">
7     Here you will find a wide variety of audio and video recordings of past
8     CSC and other university-related talks. Some of these files are very large,
9     and we do not recommend attempting to stream them. Most of these should be
10     available upon request at the Computer Science Club office to be burnt to
11     CD or DVD should you so choose.
12     <ul class="media">
13
14 <mediaitem title="In Pursuit of the Travelling Salesman">
15   <abstract>
16     <p>
17       The traveling salesman problem is easy to state: given a number of cities
18       along with the cost of travel between each pair of them, find the cheapest
19       way to visit them all and return to your starting point.  Easy to state, but
20       difficult to solve.  Despite decades of research, in general it is not known
21       how to significantly improve upon simple brute-force checking.  It is a real
22       possibility that there may never exist an efficient method that is guaranteed
23       to solve every instance of the problem.  This is a deep mathematical question:
24       Is there an efficient solution method or not?  The topic goes to the core of
25       complexity theory concerning the limits of feasible computation and we may be
26       far from seeing its resolution. This is not to say, however, that the research
27       community has thus far come away empty-handed.  Indeed, the problem has led to
28        a large number of results and conjectures that are both beautiful and deep,
29       and on the practical side solution methods are used to compute optimal or
30       near-optimal tours for a host of applied problems on a daily basis, from
31       genome sequencing to arranging music on iPods.  In this talk we discuss the
32       history, applications, and computation of this fascinating problem.
33     </p>
34   </abstract>
35   <presentor>Bill Cook</presentor>
36  <!--
37   <thumbnail file="bico_2014_travelling_salesman-thumb-small.jpg" />
38   <mediafile file="bico_2014_travelling_salesman.mp4" type="Talk (x264)" />
39  -->
40 </mediaitem>
41
42 <mediaitem title="Building a Mobile Platform for Android and iOS">
43   <abstract>
44     <p>
45       A Google engineer gives a talk on building a mobile platform for Android
46       and iOS. Wesley Tarle has been leading development at Google in Kitchener
47       and Mountain View, and building stuff for third-party developers on
48       Android and iOS. He's contributed to Google Play services since its
49       inception and continues to produce APIs and SDKs focused on mobile
50       startups.
51     </p>
52   </abstract>
53   <presentor>Wesley Tarle</presentor>
54   <mediafile file="wtarle_mobile_platform_google.pdf" type="Talk (PDF)" />
55 </mediaitem>
56
57 <mediaitem title="Multi-processor Real-time Systems">
58   <abstract>
59     <p>
60       Programming systems that obey hard real-time constraints is difficult.
61       So is programming multiple CPUs that interact to solve a single
62       problem.
63     </p>
64
65     <p>
66       On rare occasions it is possible to mix two difficult problems to create
67       one easy problem and multi-CPU real-time is, on the face of it,
68       just such an occasion. Give each deadline its own CPU and it will
69       never be missed. This intuition is, unfortunately, incorrect, which does
70       not, however, prevent it being tried in many real-time systems.
71     </p>
72
73     <p>
74       For three decades, fourth year students have been exploring this problem
75       in CS452, using multiple tasks (virtual CPUs) running on a single CPU.
76       It is now time to consider whether modern developments in CPU
77       architecture make it possible to use multiple CPUs in CS452 given the
78       practical constraint of a twelve week semester.
79     </p>
80
81     <p>
82       This talk will describe the nature of computation typical of real-time
83       systems, architectural solutions currently employed in the course, and
84       possible architectures for multi-CPU systems.
85     </p>
86   </abstract>
87   <presentor>Bill Cowan</presentor>
88   <thumbnail file="wmcowan_multi_processor_realtime-thumb-small.jpg" />
89   <mediafile file="wmcowan_multi_processor_realtime.mp4" type="Talk (x264)" />
90   <mediafile file="wmcowan_multi_processor_realtime.mpg" type="Talk (MPG)" />
91   <flvfile   file="wmcowan_multi_processor_realtime.flv" />
92   <other>
93     <p>
94       Professor Cowan has taught CS 452, Real-Time Programming (aka The Trains Course)
95       for the last few years.
96     </p>
97   </other>
98 </mediaitem>
99
100 <mediaitem title="How Browsers Work">
101   <abstract>
102     <p>
103       Veteran Mozilla engineer Ehsan Akhgari presents a talk on the internals of web browsers.
104       The material ranges from the fundamentals of content rendering to the latest innovations in browser design.
105     </p>
106     <p>
107       Web browsers have evolved. From their humble beginnings as simple HTML
108       rendering engines they have grown and evolved into rich application
109       platforms. This talk will start with the fundamentals: how a browser
110       creates an on-screen representation of the resources downloaded from
111       the network. (Boring, right? But we have to start somewhere.) From
112       there we'll get into the really exciting stuff: the latest innovations
113       in Web browsers and how those innovations enable — even encourage —
114       developers to build more complex applications than ever before. You'll
115       see real-world examples of people building technologies on top of
116       these "simple rendering engines" that seemed impossible a short time
117       ago.
118     </p>
119   </abstract>
120   <presentor>Ehsan Akhgari</presentor>
121   <thumbnail file="how-browsers-work-thumb-small.jpg" />
122   <mediafile file="how-browsers-work.mp4" type="Talk (x264)" />
123   <mediafile file="how-browsers-work.mpg" type="Talk (MPG)" />
124   <flvfile   file="how-browsers-work.flv" />
125   <other>
126     <p>
127       Ehsan Akhgari has contributed to the Mozilla project for more than 5
128       years.  He has worked on various parts of Firefox, including the user
129       interface and the rendering engine.  He originally implemented Private
130       Browsing in Firefox.  Right now he's focusing on the editor component
131       in the Firefox engine.
132     </p>
133   </other>
134 </mediaitem>
135
136 <mediaitem title="General Purpose Computing on Graphics Cards">
137   <abstract>
138     <p>
139       GPGPU (general purpose graphics processing unit) computing is an
140       expanding area of interest, with applications in physics, chemistry,
141       applied math, finance, and other fields. nVidia has created an
142       architecture named CUDA to allow programmers to use graphics cards
143       without having to write PTX assembly or understand OpenGL. CUDA is
144       designed to allow for high-performance parallel computation controlled
145       from the CPU while granting the user fine control over the behaviour
146       and performance of the device.
147     </p>
148     <p>
149       In this talk, I'll discuss the basics of nVidia's CUDA architecture
150       (with most emphasis on the CUDA C extensions), the GPGPU programming
151       environment, optimizing code written for the graphics card, algorithms
152       with noteworthy performance on GPU, libraries and tools available to
153       the GPGPU programmer, and some applications to condensed matter
154       physics. No physics background required!
155     </p>
156   </abstract>
157   <presentor>Katie Hyatt</presentor>
158   <thumbnail file="kshyatt-gpgpu-thumb-small.jpg" />
159   <mediafile file="kshyatt-gpgpu.mp4" type="Talk (x264)" />
160   <mediafile file="kshyatt-gpgpu-480p.mp4" type="Talk (x246 480p)" />
161   <flvfile   file="kshyatt-gpgpu-480p.mp4" />
162  </mediaitem>
163
164 <!-- encoding problems
165 <mediaitem title="Analysis of randomized algorithms via the probabilistic method">
166   <abstract>
167     <p>
168       In this talk, we will give a few examples that illustrate the basic method and show  how it can be used to prove the existence of objects with desirable combinatorial  properties as well as produce them in expected polynomial time via randomized  algorithms.  Our main goal will be to present a very slick proof from 1995 due to  Spencer on the performance of a randomized greedy algorithm for a set-packing  problem.  Spencer, for seemingly no reason, introduces a time variable into his  greedy algorithm and treats set-packing as a Poisson process.  Then, like magic,  he is able to show that his greedy algorithm is very likely to produce a good  result using basic properties of expected value.
169     </p>
170     <p>
171       The probabilistic method is an extremely powerful tool in combinatorics that can be
172       used to prove many surprising results.  The idea is the following: to prove that an
173       object with a certain property exists, we define a distribution of possible objects
174       and use show that, among objects in the distribution, the property holds with
175       non-zero probability.  The key is that by using the tools and techniques of
176       probability theory, we can vastly simplify proofs that would otherwise require very
177       complicated combinatorial arguments.
178     </p>
179     <p>
180       As a technique, the probabilistic method developed rapidly during the latter half of
181       the 20th century due to the efforts of mathematicians like Paul Erdős and increasing
182       interest in the role of randomness in theoretical computer science.  In essence, the
183       probabilistic method allows us to determine how good a randomized algorithm's output
184       is likely to be.  Possibly applications range from graph property testing to
185       computational geometry, circuit complexity theory, game theory, and even statistical
186       physics.
187     </p>
188     <p>
189       In this talk, we will give a few examples that illustrate the basic method and show
190       how it can be used to prove the existence of objects with desirable combinatorial
191       properties as well as produce them in expected polynomial time via randomized
192       algorithms.  Our main goal will be to present a very slick proof from 1995 due to
193       Spencer on the performance of a randomized greedy algorithm for a set-packing
194       problem.  Spencer, for seemingly no reason, introduces a time variable into his
195       greedy algorithm and treats set-packing as a Poisson process.  Then, like magic,
196       he is able to show that his greedy algorithm is very likely to produce a good
197       result using basic properties of expected value.
198     </p>
199     <p>
200       Properties of Poisson and Binomial distributions will be applied, but I'll remind
201       everyone of the needed background for the benefit of those who might be a bit rusty.
202       Stat 230 will be more than enough. Big O notation will be used, but not excessively.
203     </p>
204   </abstract>
205   <presentor>Elyot Grant</presentor>
206   <thumbnail
207   <mediafile
208   <flvfile
209 </mediaitem>
210
211 -->
212
213 <mediaitem title="Machine learning vs human learning: will scientists become obsolete">
214   <abstract><p></p></abstract>
215   <presentor>Dr. Shai Ben-David</presentor>
216   <thumbnail file="human-vs-machine-learning-thumb-small.jpg" />
217   <mediafile file="human-vs-machine-learning.mp4" type="Talk (x264)" />
218   <mediafile file="human-vs-machine-learning.mpg" type="Talk (MPG)" />
219   <flvfile   file="human-vs-machine-learning.flv" />
220 </mediaitem>
221
222 <mediaitem title="How to build a brain: From single neurons to cognition">
223   <abstract>
224     <p>
225       Theoretical neuroscience is a new discipline focused on constructing mathematical models of brain function.  It has made significant headway in understanding aspects of the neural code.  However, past work has largely focused on small numbers of neurons, and so the underlying representations are often simple. In this talk I demonstrate how the ideas underlying these simple forms of representation can underwrite a representational hierarchy that scales to support sophisticated, structure-sensitive representations.
226     </p>
227     <p>
228       Theoretical neuroscience is a new discipline focused on constructing
229       mathematical models of brain function.  It has made significant
230       headway in understanding aspects of the neural code.  However,
231       past work has largely focused on small numbers of neurons, and
232       so the underlying representations are often simple. In this
233       talk I demonstrate how the ideas underlying these simple forms of
234       representation can underwrite a representational hierarchy that
235       scales to support sophisticated, structure-sensitive
236       representations.  I will present a general architecture, the semantic
237       pointer architecture (SPA), which is built on this hierarchy
238       and allows the manipulation, processing, and learning of structured
239       representations in neurally realistic models.  I demonstrate the
240       architecture on Progressive Raven's Matrices (RPM), a test of
241       general fluid intelligence.
242     </p>
243   </abstract>
244   <presentor>Dr. Chris Eliasmith</presentor>
245   <thumbnail file="how-to-build-a-brain-thumb-small.jpg" />
246   <mediafile file="how-to-build-a-brain.mp4" type="Talk (x264)" />
247   <mediafile file="how-to-build-a-brain.mpg" type="Talk (MPG)" />
248   <flvfile   file="how-to-build-a-brain.flv" />
249 </mediaitem>
250
251 <mediaitem title="BareMetal OS">
252   <abstract>
253     <p>
254       BareMetal is a new 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly,  while applications can be written in Assembly or C/C++.  High Performance Computing is the main target application.
255     </p>
256   </abstract>
257   <presentor>Ian Seyler, Return to Infinity</presentor>
258   <thumbnail file="bare-metal-os-thumb-small.jpg" />
259   <mediafile file="bare-metal-os.mp4" type="Talk (x264)" />
260   <mediafile file="bare-metal-os.mpg" type="Talk (MPG)" />
261   <flvfile   file="bare-metal-os.flv" />
262 </mediaitem>
263
264 <mediaitem title="A Brief Introduction to Video Encoding">
265   <abstract>
266     <p>
267       In this talk, I will go over the concepts used in video encoding (such as motion estimation/compensation, inter- and intra- frame prediction, quantization and entropy encoding), and then demonstrate these concepts and algorithms in use in the MPEG-2 and the H.264 video codecs. In addition, some clever optimization tricks using SIMD/vectorization will be covered, assuming sufficient time to cover these topics.
268     </p>
269     <p>
270       With the recent introduction of digital TV and the widespread success
271       of video sharing websites such as youtube, it is clear that the task
272       of lossily compressing video with good quality has become important.
273       Similarly, the complex algorithms involved require high amounts of
274       optimization in order to run fast, another important requirement for
275       any video codec that aims to be widely used/adopted.
276     </p>
277   </abstract>
278   <presentor>Peter Barfuss</presentor>
279   <thumbnail file="pbarfuss-video-encoding-thumb-small.jpg" />
280   <mediafile file="pbarfuss-video-encoding.mp4" type="Talk (x264)" />
281   <mediafile file="pbarfuss-video-encoding.mpg" type="Talk (MPG)" />
282   <flvfile   file="pbarfuss-video-encoding.flv" />
283 </mediaitem>
284
285 <mediaitem title="Cooking for Geeks">
286   <abstract>
287     <p>
288       The CSC is happy to be hosting Jeff Potter, author of "Cooking for Geeks" for a presentation on the finer arts of food science.
289       Jeff's book has been featured on NPR, BBC and his presentations have wowed audiences of hackers &amp; foodies alike.
290       We're happy to have Jeff joining us for a hands on demonstration.
291     </p>
292     <p>
293       But you don't have to take our word for it... here's what Jeff has to say:
294     </p>
295     <p>
296       Hi! I'm Jeff Potter, author of Cooking for Geeks (O'Reilly Media, 2010), and I'm doing a "D.I.Y. Book Tour" to talk
297       about my just-released book. I'll talk about the food science behind what makes things yummy, giving you a quick
298       primer on how to go into the kitchen and have a fun time turning out a good meal.
299       Depending upon the space, I’ll also bring along some equipment or food that we can experiment with, and give you a chance to play with stuff and pester me with questions.
300     </p>
301   </abstract>
302   <presentor>Jeff Potter</presentor>
303   <thumbnail file="cooking-for-geeks-thumb-small.jpg" />
304   <mediafile file="cooking-for-geeks.mp4" type="Talk (x264)" />
305   <mediafile file="cooking-for-geeks.mpg" type="Talk (MPG)" />
306   <flvfile   file="cooking-for-geeks.flv" />
307 </mediaitem>
308
309 <mediaitem title="The Art of the Propagator">
310   <abstract>
311     <p>
312       We develop a programming model built on the idea that the basic computational elements are autonomous machines interconnected by shared cells through which they communicate. Each machine continuously examines the cells it is interested in, and adds information to some based on deductions it can make from information from the others. This model makes it easy to smoothly combine expression-oriented and constraint-based programming; it also easily accommodates implicit incremental distributed search in ordinary programs.
313
314       This work builds on the original research of Guy Lewis Steele Jr. and was developed more recently with the help of Chris Hanson.
315     </p>
316   </abstract>
317   <presentor>Gerald Jay Sussman</presentor>
318   <thumbnail file="sussman-propagator-thumb-small.jpg" />
319   <mediafile file="sussman-propagator.mkv" type="Talk (MKV)" />
320   <mediafile file="sussman-propagator-slides.pdf" type="Slides (PDF)" />
321 </mediaitem>
322
323 <mediaitem title="Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas">
324   <abstract>
325     <p>
326       I have stolen my title from the title of a paper given by Marvin Minsky in the 1960s, because it most effectively expresses what I will try to convey in this talk.
327     </p>
328
329     <p>
330       We have been programming universal computers for about 50 years. Programming provides us with new tools to express ourselves. We now have intellectual tools to describe "how to" as well as "what is". This is a profound transformation: it is a revolution in the way we think and in the way we express what we think.
331     </p>
332
333     <p>
334       For example, one often hears a student or teacher complain that the student knows the "theory" of some subject but cannot effectively solve problems. We should not be surprised: the student has no formal way to learn technique. We expect the student to learn to solve problems by an inefficient process: the student watches the teacher solve a few problems, hoping to abstract the general procedures from the teacher's behavior on particular examples. The student is never given any instructions on how to abstract from examples, nor is the student given any language for expressing what has been learned. It is hard to learn what one cannot express. But now we can express it!
335     </p>
336
337     <p>
338       Expressing methodology in a computer language forces it to be unambiguous and computationally effective. The task of formulating a method as a computer-executable program and debugging that program is a powerful exercise in the learning process. The programmer expresses his/her poorly understood or sloppily formulated idea in a precise way, so that it becomes clear what is poorly understood or sloppily formulated. Also, once formalized procedurally, a mathematical idea becomes a tool that can be used directly to compute results.
339     </p>
340
341     <p>
342       I will defend this viewpoint with examples and demonstrations from electrical engineering and from classical mechanics.
343     </p>
344   </abstract>
345   <presentor>Gerald Jay Sussman</presentor>
346   <thumbnail file="sussman-why-programming-thumb-small.jpg" />
347   <mediafile file="sussman-why-programming.mkv" type="Talk (MKV)" />
348   <mediafile file="sussman-why-programming-slides.pdf" type="Slides (PDF)" />
349 </mediaitem>
350
351 <mediaitem title="A brief history of CS curriculum at UW">
352   <abstract>
353     <p>
354       I'll survey the evolution of our computer science curriculum over the
355       past thirty-five years to try to convey the reasons (not always entirely
356       rational) behind our current mix of courses and their division into core
357       and optional. After some remarks about constraints and opportunities in
358       the near future, I'll open the floor to discussion, and hope to hear
359       some candid comments about the state of CS at UW and how it might be
360       improved.
361     </p>
362     <p>
363       About the speaker:
364     </p>
365     <p>
366       Prabhakar Ragde is a Professor in the School of Computer Science at UW.
367       He was Associate Chair for Curricula during the period that saw the
368       creation of the Bioinformatics and Software Engineering programs, the
369       creation of the BCS degree, and the strengthening of the BMath/CS degree.
370     </p>
371   </abstract>
372   <presentor>Prabhakar Ragde</presentor>
373   <thumbnail file="prabhakar-history-of-uw-cs-thumb-small.jpg" />
374   <mediafile file="prabhakar-history-of-uw-cs.avi" type="Talk (XviD)" />
375   <mediafile file="prabhakar-history-of-uw-cs.ogg" type="Talk (Ogg/Theora)" />
376   <mediafile file="prabhakar-history-of-uw-cs.mpg" type="Talk (MPG)" />
377   <flvfile   file="prabhakar-history-of-uw-cs.flv" />
378   <other>
379     <h2>Contact</h2>
380     <p>If you would like to contact Dr. Ragde check out his <a href="http://www.cs.uwaterloo.ca/~plragde">website</a> or e-mail him at plragde at uwaterloo dot ca.</p>
381   </other>
382 </mediaitem>
383
384 <mediaitem title="The Future of Robotics and Automated Systems">
385   <abstract><p>
386     Bill Gates in his article "A Robot in every home" in the Scientific
387     American describes how the current robotics industry resembles the
388     1970's of the Personal Computer Industry. In fact it is not just
389     Microsoft which has already taken a step forward by starting the
390     Microsoft Robotics studio, but robotics researchers around the world
391     believe that robotics and automation systems are going to be
392     ubiquitous in the next 10-20 years (similar to Mark Weiser's
393     analogy of Personal Computers 20 years ago). Natural User Interfaces
394     (NUIs) are going to revolutionize the way we interact with computers,
395     cellular phones, household appliances, automated systems in our daily
396     lives. Just like the GUI made personal computing a reality, I believe
397     natural user interfaces will do the same for robotics.
398     </p><p>During the presentation I will be presenting my ongoing
399     software project on natural user interfaces as well as sharing my
400     goals for the future, one of which is to provide an NUI SDK and the
401     other to provide a common Robotics OS for every hardware vendor that
402     will enable people to make applications without worrying about
403     underlying functionality.  If time permits I would like to present a
404     demo of my software prototype.
405   </p></abstract>
406   <presentor>Sam Pasupalak</presentor>
407   <thumbnail file="sam-papusalak-future-thumb-small.jpg" />
408   <mediafile file="sam-papusalak-future.avi" type="Talk (XviD)" />
409   <mediafile file="sam-papusalak-future.ogg" type="Talk (Ogg/Theora)" />
410   <mediafile file="sam-papusalak-future.mp4" type="Talk (MP4)" />
411   <mediafile file="sam-papusalak-future.mpg" type="Talk (MPG)" />
412   <flvfile   file="sam-papusalak-future.flv" />
413 </mediaitem>
414
415 <mediaitem title="Deep Learning With Multiplicative Interactions">
416   <abstract><p>
417   Deep networks can be learned efficiently from unlabeled data. The layers of
418   representation are learned one at a time using a simple learning module,
419   called a "Restricted Boltzmann Machine" that has only one layer of latent
420   variables. The values of the latent variables of one module form the data for
421   training the next module. Although deep networks have been quite successful
422   for tasks such as object recognition, information retrieval, and modeling
423   motion capture data, the simple learning modules do not have multiplicative
424   interactions which are very useful for some types of data.
425   </p><p>
426   The talk will show how a third-order energy function can be factorized to
427   yield a simple learning module that retains advantageous properties of a
428   Restricted Boltzmann Machine such as very simple exact inference and a very
429   simple learning rule based on pair-wise statistics. The new module contains
430   multiplicative interactions that are useful for a variety of unsupervised
431   learning tasks. Researchers at the University of Toronto have been using this
432   type of module to extract oriented energy from image patches and dense flow
433   fields from image sequences. The new module can also be used to allow motions
434   of a particular style to be achieved by blending autoregressive models of
435   motion capture data.
436   </p></abstract>
437   <presentor>Dr. Geoff Hinton</presentor>
438   <thumbnail file="ghinton-deep-learning-thumb-small.jpg" />
439   <mediafile file="ghinton-deep-learning.avi" type="Talk (XviD)" />
440   <mediafile file="ghinton-deep-learning.ogg" type="Talk (Ogg/Theora)" />
441   <mediafile file="ghinton-deep-learning.mp4" type="Talk (MP4)" />
442   <mediafile file="ghinton-deep-learning.mpg" type="Talk (MPG)" />
443   <flvfile   file="ghinton-deep-learning.flv" />
444 </mediaitem>
445
446 <mediaitem title="Wilderness Programming">
447   <abstract><p>
448   Paul Lutus describes his early Apple II software development days, conducted
449   from the far end of a 1200-foot power cord, in a tiny Oregon cabin. Paul
450   describes how he wrote a best-seller (Apple Writer) in assembly language,
451   while dealing with power outages, lightning storms and the occasional curious
452   bear.
453   </p><p>
454   Paul also describes his subsequent four-year solo around-the-world sail in a
455   31-foot boat. And be ready with your inquiries -- Paul will answer your
456   questions.
457   </p><p>
458   Paul Lutus has a wide background in science and technology. He designed
459   spacecraft components for the NASA Space Shuttle and created a mathematical
460   model of the solar system used during the Viking Mars lander program. Then, at
461   the beginning of the personal computer revolution, Lutus switched career paths
462   and took up computer science. His best-known program is "Apple Writer," an
463   internationally successful word processing program for the early Apple
464   computers.
465   </p></abstract>
466
467   <presentor>Paul Lutus</presentor>
468   <thumbnail file="plutus-wilderness-programming-thumb-small.jpg" />
469   <mediafile file="plutus-wilderness-programming.avi" type="Talk (XviD)" />
470   <mediafile file="plutus-wilderness-programming.ogg" type="Talk (Ogg/Theora)" />
471   <mediafile file="plutus-wilderness-programming.mp4" type="Talk (MP4)" />
472   <mediafile file="plutus-wilderness-programming.mpg" type="Talk (MPG)" />
473   <flvfile   file="plutus-wilderness-programming.flv" />
474 </mediaitem>
475
476 <mediaitem title="The Best Algorithms are Randomized Algorithms">
477   <abstract><p>
478   For many problems, randomized algorithms are either the fastest algorithm or the
479   simplest algorithm; sometimes they even provide the only known algorithm.
480   Randomized algorithms have become so prevalent that deterministic algorithms
481   could be viewed as a curious special case. In this talk I will describe some
482   startling examples of randomized algorithms for solving some optimization
483   problems on graphs.
484   </p></abstract>
485
486   <presentor>Dr. Nick Harvey</presentor>
487   <thumbnail file="nick-harvey-random-thumb-small.jpg" />
488   <mediafile file="nick-harvey-random.avi" type="Talk (XviD)" />
489   <mediafile file="nick-harvey-random.ogg" type="Talk (Ogg/Theora)" />
490   <mediafile file="nick-harvey-random.mp4" type="Talk (MP4)" />
491   <mediafile file="nick-harvey-random.mpg" type="Talk (MPG)" />
492   <flvfile   file="nick-harvey-random.flv" />
493 </mediaitem>
494
495 <mediaitem title="QIP=PSPACE">
496   <abstract><p>
497   The interactive proof system model of computation is a cornerstone of complexity
498   theory, and its quantum computational variant has been studied in quantum
499   complexity theory for the past decade. In this talk I will discuss an exact
500   characterization of the power of quantum interactive proof systems that I
501   recently proved in collaboration with Rahul Jain, Zhengfeng Ji, and Sarvagya
502   Upadhyay. The characterization states that the collection of computational
503   problems having quantum interactive proof systems consists precisely of those
504   problems solvable with an ordinary classical computer using a polynomial amount
505   of memory (or QIP = PSPACE in complexity-theoretic terminology). This
506   characterization implies the striking fact that quantum computing does not
507   provide any increase in computational power over classical computing in the
508   context of interactive proof systems.
509
510   </p><p>I will not assume that the audience for this talk has any familiarity with
511   either quantum computing or complexity theory; and to be true to the spirit of
512   the interactive proof system model, I hope to make this talk as interactive as
513   possible -- I will be happy to explain anything related to the talk that I can
514   that people are interested in learning about.
515   </p></abstract>
516
517   <presentor>Dr. John Watrous</presentor>
518   <thumbnail file="jwatrous-qip-thumb-small.jpg" />
519   <mediafile file="jwatrous-qip.avi" type="Talk (XviD)" />
520   <mediafile file="jwatrous-qip.ogg" type="Talk (Ogg/Theora)" />
521   <mediafile file="jwatrous-qip.mp4" type="Talk (MP4)" />
522   <mediafile file="jwatrous-qip.mpg" type="Talk (MPG)" />
523   <flvfile   file="jwatrous-qip.flv" />
524 </mediaitem>
525
526 <mediaitem title="An Introduction to Vector Graphics Libraries with Cairo">
527     <abstract><p>
528     Cairo is an open source, cross platform, vector graphics library with the
529     ability to output to many kinds of surfaces, including PDF, SVG and PNG
530     surfaces, as well as X-Window, Win32 and Quartz 2D backends.
531     </p><p>
532     Unlike the raster graphics used with programmes and libraries such as The
533     Gimp and ImageMagick, vector graphics are not defined by grids of pixels,
534     but rather by a collection of drawing operations. These operations detail
535     how to draw lines, fill shapes, and even set text to create the desired
536     image. This has the advantages of being infinitely scalable, smaller in file
537     size, and simpler to express within a computer programme.
538     </p><p>
539     This talk will be an introduction to the concepts and metaphors used by
540     vector graphics libraries in general and Cairo in particular.
541     </p></abstract>
542
543   <presentor>Nathaniel Sherry</presentor>
544   <thumbnail file="nsasherr-cairo-thumb-small.jpg" />
545   <mediafile file="nsasherr-cairo.avi" type="Talk (XviD)" />
546   <mediafile file="nsasherr-cairo.ogg" type="Talk (Ogg/Theora)" />
547   <mediafile file="nsasherr-cairo.mp4" type="Talk (MP4)" />
548   <mediafile file="nsasherr-cairo.mpg" type="Talk (MPG)" />
549   <flvfile   file="nsasherr-cairo.flv" />
550 </mediaitem>
551
552 <mediaitem title="Software Transactional Memory and Haskell">
553   <abstract><p>
554     Concurrency is hard. Well maybe not hard, but it sure is annoying to get right. Even the
555     simplest of synchronization tasks are hard to implement correctly when using synchronization
556     primitives such as locks and semaphores.
557   <p></p>
558     In this talk we explore what Software Transactional Memory (STM) is, what problems STM solves,
559     and how to use STM in Haskell. We explore a number of examples that show how easy STM is to use
560     and how expressive Haskell can be. The goal of this talk is to convince attendees that STM is
561     not only a viable synchronization solution, but superior to how synchronization is typically
562     done today.
563   </p></abstract>
564
565   <presentor>Brennan Taylor</presentor>
566   <thumbnail file="b4taylor-stm-thumb-small.jpg" />
567   <mediafile file="b4taylor-stm.avi" type="Talk (XviD)" />
568   <mediafile file="b4taylor-stm.ogg" type="Talk (Ogg/Theora)" />
569   <mediafile file="b4taylor-stm.mp4" type="Talk (MP4)" />
570   <mediafile file="b4taylor-stm.mpg" type="Talk (MPG)" />
571   <flvfile file="b4taylor-stm.flv" />
572 </mediaitem>
573
574 <mediaitem title="Programming Quantum Computers">
575   <abstract><p>
576     Raymond Laflamme is the director of the Institute for Quantum Computing at the 
577     University of Waterloo and holds the Canada Research Chair in Quantum Information. 
578     He will give a brief introduction to quantum computing and why it matters, followed 
579     by a talk on programming quantum computers. This is followed by tours of IQC Labs.
580   </p></abstract>
581
582   <presentor>Dr. Raymond Laflemme and Various</presentor>
583   <thumbnail file="iqc1-thumb-small.jpg" />
584   <mediafile file="iqc1.avi" type="Talk (XviD)" />
585   <mediafile file="iqc1.ogg" type="Talk (Ogg/Theora)" />
586   <mediafile file="iqc1.mp4" type="Talk (MP4)" />
587   <mediafile file="iqc1.mpg" type="Talk (MPG)" />
588   <mediafile file="iqc2.avi" type="Quantum Key Distribution Lab (XviD)" />
589   <mediafile file="iqc2.ogg" type="Quantum Key Distribution Lab (Ogg/Theora)" />
590   <mediafile file="iqc2.mp4" type="Quantum Key Distribution Lab (MP4)" />
591   <mediafile file="iqc2.mpg" type="Quantum Key Distribution Lab (MPG)" />
592   <mediafile file="iqc3.avi" type="NMR Quantum Computer (XviD)" />
593   <mediafile file="iqc3.ogg" type="NMR Quantum Computer (Ogg/Theora)" />
594   <mediafile file="iqc3.mp4" type="NMR Quantum Computer (MP4)" />
595   <mediafile file="iqc3.mpg" type="NMR Quantum Computer (MPG)" />
596   <flvfile file="iqc1.flv" />
597 </mediaitem>
598
599 <mediaitem title="Functional Lexing and Parsing">
600   <abstract><p>
601     This talk will describe a non-traditional functional approach to the
602     classical problems of lexing (breaking a stream of characters into
603     "words" or tokens) and parsing (identifying tree structure in a stream
604     of tokens based on a grammar, e.g. for a programming language that
605     needs to be compiled or interpreted). The functional approach can
606     clarify and organize a number of algorithms that tend to be opaque in
607     their conventional imperative presentation. No prior background in
608     functional programming, lexing, or parsing is assumed.
609   </p>
610   <p>The slides for this talk can be found <a href="http://mirror.csclub.uwaterloo.ca/csclub/pr-functional-lexing-parsing-slides.pdf">here</a> as a pdf.
611   </p></abstract>
612
613   <presentor>Dr. Prabhakar Ragde</presentor>
614   <thumbnail file="pr-functional-lexing-parsing-thumb-small.jpg" />
615   <mediafile file="pr-functional-lexing-parsing.avi" type="XviD" />
616   <mediafile file="pr-functional-lexing-parsing.ogg" type="Ogg/Theora" />
617   <mediafile file="pr-functional-lexing-parsing.mp4" type="MP4" />
618   <mediafile file="pr-functional-lexing-parsing.mpg" type="MPG" />
619   <flvfile file="pr-functional-lexing-parsing.flv" />
620   <other>
621   <h2>Contact</h2>
622   <p>If you would like to contact Dr. Ragde check out his <a href="http://www.cs.uwaterloo.ca/~plragde">website</a> or e-mail him at plragde at uwaterloo dot ca.</p>
623   </other>
624 </mediaitem>
625
626
627 <mediaitem title="Rapid Prototyping and Mathematical Art">
628   <abstract><p>
629    The combination of computer graphics, geometry, and rapid
630    prototyping technology has created a wide range of exciting
631    opportunities for using the computer as a medium for creative
632    expression.  In this talk, I will describe the most popular
633    technologies for computer-aided manufacturing, discuss
634    applications of these devices in art and design, and survey
635    the work of contemporary artists working in the area (with a
636    focus on mathematical art).  The talk will be primarily
637    non-technical, but I will mention some of the mathematical
638    and computational techniques that come into play.</p>
639    <p>The slides for this talk can be found <a href="http://mirror.csclub.uwaterloo.ca/csclub/kaplan-mathematical-art-slides.pdf">here</a> as a pdf.</p>
640   </abstract>
641   <presentor>Dr. Craig Kaplan</presentor>
642   <thumbnail file="kaplan-mathematical-art-thumb-small.jpg" />
643   <mediafile file="kaplan-mathematical-art.avi" type="XviD" />
644   <mediafile file="kaplan-mathematical-art.ogg" type="Ogg/Theora" />
645   <mediafile file="kaplan-mathematical-art.mp4" type="MP4" />
646   <mediafile file="kaplan-mathematical-art.mpg" type="MPG" />
647   <flvfile file="kaplan-mathematical-art.flv" />
648   <other>
649     <h2>Contact</h2>
650     <p>If you would like to contact Dr. Kaplan check out his <a href="http://www.cgl.uwaterloo.ca/~csk/">website</a> or e-mail him at csk at uwaterloo dot ca.</p>
651     <h2>Links and credits</h2>
652
653     <p>This talk included images of the work of a large number of talented
654     artists and researchers.  I list them here and include links to
655     their work online.  Everyone is listed by order of appearance; when
656     a credit appears to be missing, it's probably because the slides
657     include photographs of my own work or joint work with collaborators.
658     Thanks to all the artists who gave me permission to use photographs
659     of their work here.</p>
660
661     <ul>
662         <li><a href="http://mathematicians.org.uk/eoh/">Edmund Harriss</a>: 
663             laser-cut business card</li>
664         <li><a href="http://www.danfunderburgh.com/">Dan Funderburgh</a>:
665             laser-cut papercuttings and laser-etched wood sculpture</li>
666         <li><a href="http://littlefactory.com/">Little Factory</a>:
667             laser-cut scarf</li>
668         <li><a href="http://www.wimdelvoye.be/gothicworks.php">Wim Delvoye</a>:
669             laser-cut gothic vehicles</li>
670         <li><a href="http://www.georgehart.com/">George Hart</a>:
671             modular kirigami, laser-cut acrylic and metal sculpture,
672             3D printed scupture</li>
673         <li><a href="http://fischer.com.au/">Fischer</a>: laser-cut
674             wooden lamp (the <a href="http://www.ponoko.com/showroom/SquirrelswithHammers/zen-table-lamp-2463">lamp</a> can be seen on <a href="http://www.ponoko.com/">ponoko.com</a>)</li>
675         <li><a href="http://graphics.stanford.edu/~georgp/">Georg Petchnigg</a>:
676             CNC sushi plate</li>
677         <li><a href="http://www.bathsheba.com/">Bathsheba Grossman</a>: 
678             3D printed metal sculpture</li>
679         <li><a href="http://www.cs.berkeley.edu/~sequin/">Carlo Sequin</a>:
680             3D mathematical sculpture</li>
681         <li><a href="http://www.helasculpt.com/">Helaman Ferguson</a>:
682             sculpture in stone and metal</li>
683         <li><a href="http://www.bulatov.org/">Vladimir Bulatov</a>:
684             3D printed metal sculpture</li>
685         <li><a href="http://www.rinusroelofs.nl/">Rinus Roelofs</a>:
686             3D geometric sculpture, printed and rendered</li>
687         <li><a href="http://www-viz.tamu.edu/faculty/ergun/">Ergun Akleman</a>:
688             Sculpture and surface design.  Note his downloadable 
689             <a href="http://www.topmod3d.org/">TopMod</a> software</li>
690         <li><a href="http://www.shapeways.com/model/24535/tight_double_moebius0_025_8_5cm.html">Emmanuel Lattes</a>: twisted toroidal sculpture</li>
691     </ul>
692
693     <h2>Resources</h2>
694
695     <p>Here are a few additional links of interest to the audience of this
696     talk.</p>
697
698     <ul>
699         <li><a href="http://hacklab.to/">hacklab.to</a>: Toronto's hackerspace.
700             The bought a disused laser cutter and refurbished it.</li>
701         <li>My knife cutter is the <a href="http://www.silhouettemachine.com/">QuicKutz Silhouette</a>.  I bought mine online from <a href="http://www.scrapbooksbydesign.ca/">Scrapbooks by design</a> in Toronto.</li>
702         <li><a href="http://www.lazerit.ca/">Lazerit</a> is a laser cutting
703             service not far from the University of Waterloo campus.</li>
704         <li><a href="http://www.ponoko.com/">ponoko.com</a> is one of a new
705             breed of CAM-meets-Web2.0 sites.  You create and upload a design,
706             and can then order fabricated copies of that design in various
707             materials.  You can also set up a shop where others can do the
708             same.</li>
709         <li>The <a href="http://www.probotix.com/FireBall_v90_cnc_router_kit/">Fireball V90</a> is an inexpensive CNC router kit that would be fun for home hobby applications.   For extra geek points, it has a mount designed to hold a dremel.</li>
710         <li>Evil Mad Scientist Laboratories created <a href="http://candyfab.org">CandyFab</a>, a (low resolution) 3D printer that produces edible candy as output.</li>
711         <li>The <a href="http://reprap.org/">reprap</a> Aims to design a 3D printer
712             capable of manufacturing a complete copy of itself.</li>
713         <li><a href="http://www.shapeways.com/">Shapeways</a> is essentially
714             a 3D version of ponoko.com-an online 3D printing service
715             bureau where you can set up a shop to sell your work.</li>
716         <li>Bathsheba Grossman has her metal sculptures printed by 
717             <a href="http://www.prometal.com/">Ex One's Prometal</a> service.</li>
718     </ul>
719   </other>
720 </mediaitem>
721  
722
723 <mediaitem title="More Haskell functional programming fun">
724   <abstract><p>
725     TODO
726   </p></abstract>
727   <presentor>Andrei Barbu</presentor>
728   <thumbnail file="abarbu2-thumb-small.jpg" />
729   <mediafile file="abarbu2.avi" type="XviD" />
730   <mediafile file="abarbu2.ogg" type="Ogg/Theora" />
731   <mediafile file="abarbu2.mp4" type="MP4" />
732   <mediafile file="abarbu2.mpg" type="MPG" />
733   <flvfile   file="abarbu2.flv" />
734 </mediaitem>
735
736 <mediaitem title="Why you should care about functional programming with Haskell">
737   <abstract><p>
738     TODO
739   </p></abstract>
740   <presentor>Andrei Barbu</presentor>
741   <thumbnail file="abarbu1-thumb-small.jpg" />
742   <mediafile file="abarbu1.avi" type="XviD" />
743   <mediafile file="abarbu1.ogg" type="Ogg/Theora" />
744   <mediafile file="abarbu1.mp4" type="MP4" />
745   <mediafile file="abarbu1.mpg" type="MPG" />
746   <flvfile   file="abarbu1.flv" />
747 </mediaitem>
748
749 <mediaitem title="Off-the-Record Messaging: Useful Security and Privacy for IM">
750   <abstract><p>
751 Instant messaging (IM) is an increasingly popular mode of communication
752 on the Internet.  Although it is used for personal and private
753 conversations, it is not at all a private medium.  Not only are all of
754 the messages unencrypted and unauthenticated, but they are all
755 routedthrough a central server, forming a convenient interception point
756 for an attacker.  Users would benefit from being able to have truly
757 private conversations over IM, combining the features of encryption,
758 authentication, deniability, and forward secrecy, while working within
759 their existing IM infrastructure.
760   </p>
761   <p>
762 In this talk, I will discuss "Off-the-Record Messaging" (OTR), a widely
763 used software tool for secure and private instant messaging.  I will
764 outline the properties of Useful Security and Privacy Technologies that
765 motivated OTR's design, compare it to other IM security mechanisms, and
766 talk about its ongoing development directions.
767   </p></abstract>
768   <presentor>Ian Goldberg</presentor>
769   <thumbnail file="ian-goldberg-otr-thumb-small.jpg" />
770   <mediafile file="ian-goldberg-otr.avi" type="XviD" />
771   <mediafile file="ian-goldberg-otr.ogg" type="Ogg/Theora" />
772   <mediafile file="ian-goldberg-otr.mp4" type="MP4" />
773   <mediafile file="ian-goldberg-otr.mpg" type="MPG" />
774   <flvfile file="ian-goldberg-otr.flv" />
775   <other>
776   <h2>Bio</h2>
777     <p>
778 Ian Goldberg is an Assistant Professor of Computer Science at the
779 University of Waterloo, where he is a founding member of the
780 Cryptography, Security, and Privacy (CrySP) research group.  He holds a
781 Ph.D. from the University of California, Berkeley, where he discovered
782 serious weaknesses in a number of widely deployed security systems,
783 including those used by cellular phones and wireless networks. He also
784 studied systems for protecting the personal privacy of Internet users,
785 which led to his role as Chief Scientist at Zero-Knowledge Systems (now
786 known as Radialpoint), where he commercialized his research as the
787 Freedom Network.
788     </p></other>
789 </mediaitem>
790
791 <mediaitem title="Privacy by Design">
792   <abstract><p>
793 Globally, issues about information privacy in the marketplace have emerged in tandem with the dramatic and escalating increase in information stored 
794 in electronic formats. Data mining, for example, can be extremely valuable for businesses, but in the absence of adequate safeguards, it can 
795 jeopradize informational privacy. Dr. Ann Cavoukian talks about how to use technology to enhance privacy. Some of the technologies discussed 
796 included instant messaging, RFID tags and Elliptical Curve Cryptography (ECC). Then Dr. Cavoukian explained the “7 Privacy – Embedded Laws” followed 
797 by a discussion on a biometrics solution to encryption.
798   </p></abstract>
799   <presentor>Dr. Ann Cavoukian</presentor>
800   <thumbnail file="privacy-thumb-small.jpg" />
801   <mediafile file="privacy.avi" type="XviD" />
802   <mediafile file="privacy.ogg" type="Ogg/Theora" />
803   <mediafile file="privacy.mp4" type="MP4" />
804   <mediafile file="privacy.mpg" type="MPG" />
805   <flvfile file="privacy.flv" />
806   <other>
807   <h2>Bio</h2>
808   <p>
809 Dr. Ann Cavoukian, as the Information and Privacy Commissioner, oversees the operations of Ontario's freedom of information and protection of 
810 privacy laws, which apply to both provincial and municipal government organizations. She serves as an officer of the legislature, independent of the 
811 government of the day. Ann joined the Information and Privacy Commission in 1987 as its first Director of Compliance and was appointed Assistant 
812 Commissioner in 1990, responsible for the protection of privacy and compliance with the Freedom of Information and Protection of Privacy Acts. Prior 
813 to her work at the Commission, Ann headed the Research Services Branch of the Ministry of the Attorney General. Ann received her M.A. and Ph.D. in 
814 Psychology from the University of Toronto, where she specialized in criminology and lectured on psychology and the criminal justice system. Ann 
815 speaks extensively on the importance of privacy around the world. Her published works include a recent book on privacy called "Who Knows: 
816 Safeguarding Your Privacy in a Networked World."
817   </p>
818   </other>
819 </mediaitem>
820
821
822 <mediaitem title="C++0x - An Overview">
823   <abstract><p>
824    A good programming language is far more than a simple collection of
825    features. My ideal is to provide a set of facilities that smoothly work
826    together to support design and programming styles of a generality beyond
827    my imagination. Here, I briefly outline rules of thumb (guidelines,
828    principles) that are being applied in the design of C++0x. Then, I
829    present the state of the standards process (we are aiming for C++09) and
830    give examples of a few of the proposals such as concepts, generalized
831    initialization, being considered in the ISO C++ standards committee.
832    Since there are far more proposals than could be presented in an hour,
833    I'll take questions.
834   </p><p>
835    Dr. Bjarne Stroustrup is the original designer and implementer of the
836    C++ Programming Language.
837   </p></abstract>
838   <presentor>Dr. Bjarne Stroustrup</presentor>
839   <thumbnail file="stroustrup-thumb-small.jpg" />
840   <mediafile file="stroustrup.avi" type="XviD" />
841   <mediafile file="stroustrup.ogg" type="Ogg/Theora" />
842   <mediafile file="stroustrup.mp4" type="MP4" />
843   <mediafile file="stroustrup.mpg" type="MPG" />
844   <flvfile file="stroustrup.flv" />
845   <other>
846   <h2>Q&amp;A</h2>
847   <ul>
848     <li>Do you think you'll ever design a new language from scratch?</li>
849     <li>How long after the standard is out do you expect to see a production compiler?</li>
850     <li>Is it possible to do garbage collection cleanly and efficiently in C++?</li>
851     <li>How soon after you created C++ did you see it start to take over the industry?</li>
852     <li>Is there any particular naming convention you subscribe to?</li>
853     <li>What's your opinion about the Microsoft implementation of C++?</li>
854   </ul>
855   </other>
856 </mediaitem>
857
858 <mediaitem title="PMAMC&amp;OC SASMS - Spring 2007">
859   <presentor>PMClub Various Members</presentor>
860   <thumbnail file="pmc-sasms-spring-2007-thumb-small.jpg" />
861   <mediafile file="pmc-sasms-spring-2007.avi" type="XviD" size="643M" />
862   <mediafile file="pmc-sasms-spring-2007.ogg" type="Ogg/Theora" size="598M" />
863   <mediafile file="pmc-sasms-spring-2007.mp4" type="MP4" size="625M" />
864   <mediafile file="pmc-sasms-spring-2007.mpg" type="MPG" size="641M" />
865   <flvfile file="pmc-sasms-spring-2007.flv" />
866 </mediaitem>
867
868 <mediaitem title="Copyright vs Community in the Age of Computer Networks">
869   <abstract><p>
870     Copyright developed in the age of the printing press, and was designed 
871     to fit with the system of centralized copying imposed by the printing 
872     press. But the copyright system does not fit well with computer networks, 
873     and only draconian punishments can enforce it.
874     </p><p>
875     The global corporations that profit from copyright are lobbying for
876     draconian punishments, and to increase their copyright powers, while
877     suppressing public access to technology. But if we seriously hope to serve
878     the only legitimate purpose of copyright -- to promote progress, for the
879     benefit of the public -- then we must make changes in the other
880     direction.
881     </p><p>
882     This talk by Richard M. Stallman is broken into two parts: the main talk
883     and the question and answer sessions following the talk. Both are
884     available in only Ogg/Theora format in keeping with Stallman's wishes. They
885     are available under the <a href="http://creativecommons.org/licenses/nd/1.0/">
886     Creative Commons NoDerivs 1.0</a> license.
887   </p></abstract>
888   <presentor>Richard M. Stallman</presentor>
889   <other>
890   <h2>Q&amp;A</h2>
891   <p>
892   Download the question and answers section for answers to questions such as:
893   </p>
894   <ul>
895     <li> What do you do when no free alternatives for a proprietary program exist?  </li>
896     <li> If we are to treat works used for practical purposes differently from those used for entertainment, how do you treat works such as video games that fall in both categories?  </li>
897     <li> If most of the computing industry and the US Copyright Board don't disagree with your views on copyright, how come no one has gone to change things?  </li>
898   </ul>
899   </other>
900   <thumbnail file="rms-qa-thumb-small.jpg" />
901   <mediafile file="rms-talk.ogg" type="Talk (Ogg/Theora)" size="687M" />
902   <mediafile file="rms-qa.ogg" type="Q&amp;A (Ogg/Theora)" size="225M" />
903 </mediaitem>
904
905 <mediaitem title="Usability in the Wild">
906   <abstract><p>
907     What is the typical monitor resolution of a GIMP user? How many monitors 
908     do they have? What size images do they work on? How many layers are in 
909     their images? The answers to these questions are generally unknown: no 
910     means currently exist for open source applications to collect usage data. 
911     In this talk, Professor Michael Terry will present ingimp, a version of 
912     GIMP that has been instrumented to automatically collect usage data from 
913     real-world users. Prof. Terry will discuss ingimp's design, the type of 
914     data we collect, how we make the data available on the web, and initial 
915     results that begin to answer the motivating questions. ingimp can be found
916     at http://www.ingimp.org.
917     </p><p>
918     The slides from the talk are available here: <a href="http://mirror.csclub.uwaterloo.ca/csclub/ingimp_uw_csc_talk_6_27_2007.pdf">ingimp_uw_csc_talk_6_27_2007.pdf</a>.
919   </p></abstract>
920   <presentor>Dr. Michael Terry</presentor>
921   <thumbnail file="mterry2-thumb-small.jpg" />
922   <mediafile file="mterry2.avi" type="XviD" size="521M" />
923   <mediafile file="mterry2.ogg" type="Ogg/Theora" size="535M" />
924   <mediafile file="mterry2.mp4" type="MP4" size="509M" />
925   <mediafile file="mterry2.mpg" type="MPG" size="520M" />
926   <flvfile file="mterry2.flv" preview="mterry2.png" />
927 </mediaitem>
928
929 <mediaitem title="Ralph Stanton 40th Anniversary of Math Faculty Talk">
930   <abstract><p>
931     Ralph Stanton reflects on the founding of the University of 
932     Waterloo Math Faculty.
933   </p></abstract>
934   <presentor>Ralph Stanton</presentor>
935   <thumbnail file="ralph-stanton-thumb-small.jpg" />
936   <mediafile file="ralph-stanton.avi" type="XviD" />
937   <mediafile file="ralph-stanton-xvid.avi" type="DivX" />
938   <mediafile file="ralph-stanton.ogg" type="Ogg" />
939   <mediafile file="ralph-stanton.mpg" type="MPG" />
940   <flvfile file="ralph-stanton.flv" />
941 </mediaitem>
942
943 <mediaitem title="The Free Software Movement and GNULinux Operating System, a talk by Richard Stallman at UCSD">
944   <abstract><p>
945     Richard Stallman will speak about the goals and philosophy of the Free 
946     Software Movement, and the status and history the GNU Operating System, 
947     which in combination with the kernel Linux is now used by tens of millions 
948     of users world-wide.
949     </p><p>
950     Richard Stallman launched the development of the GNU operating system in 
951     1984. GNU is free software: everyone has the freedom to copy it and 
952     redistribute it, as well as to make changes either large or small. The 
953     GNU/Linux system, basically the GNU operating system with Linux added, is 
954     used on tens of millions of computers today.
955     </p><p>
956     "The reason I care especially, is that there is a philosophy associated 
957     with the GNU project, and this philosophy is actually the reason why there 
958     is a system -- and that is that free software is not just convenient and 
959     not just reliable.... More important than convenience and reliability is 
960     freedom -- the freedom to cooperate. What I'm concerned about is not 
961     individual people or companies so much as the kind of way of life that we 
962     have. That's why I think it's a distraction to think about fighting 
963     Microsoft."
964     </p><p>
965     <strong>Biography:</strong>
966     Stallman has received the ACM Grace Hopper Award, a MacArthur Foundation 
967     fellowship, the Electronic Frontier Foundation's Pioneer award, and the 
968     Takeda Award for Social/Economic Betterment, as well as several honorary 
969     doctorates.
970     </p><p>
971     The Question and Answer session (starting shortly after the hour and half 
972     mark) posed a number of interesting questions including, "Do you support 
973     the Creative Commons license?" and "Can I use ATI and NVIDIA drivers 
974     because Mesa isn't nearly as complete?".
975     <p></p>
976     The talk is only available in Ogg Theora, in keeping with Richard 
977     Stallman's wishes.
978   </p></abstract>
979   <presentor>Richard M. Stallman</presentor>
980   <thumbnail file="audio-file.png" />
981   <mediafile file="rms_ucsd.ogg" type="Ogg Theora" size="148MB" />
982 </mediaitem>
983
984 <mediaitem title="Introduction to 3-d Graphics">
985   <abstract><p>
986     A talk for those interested in 3-dimensional graphics but unsure of where 
987     to start. Covers the basic math and theory behind projecting 3-dimensional 
988     polygons on screen, as well as simple cropping techniques to improve 
989     efficiency. Translation and rotation of polygons will also be discussed.
990   </p></abstract>
991   <presentor>The Prof</presentor>
992   <thumbnail file="the-prof-graphics-thumb-small.jpg" />
993   <mediafile file="the-prof-graphics.avi" type="DivX" size="272M" />
994   <mediafile file="the-prof-graphics-xvid.avi" type="XviD" size="272M" />
995   <mediafile file="the-prof-graphics.mpg" type="MPG" size="272M" />
996   <mediafile file="the-prof-graphics.ogg" type="Ogg/Theora" size="274M"/>
997 </mediaitem>
998
999 <mediaitem title="UW Software Start-ups: What Worked and What Did Not">
1000   <abstract><p>
1001     A discussion of software start-ups founded by UW students and what they 
1002     did that helped them grow and what failed to help. In order to share the 
1003     most insights and guard the confidences of the individuals involved, none 
1004     of the companies will be identified.
1005   </p></abstract>
1006   <presentor>Larry Smith</presentor>
1007   <thumbnail file="larry-smith-talk2-thumb-small.jpg" />
1008   <mediafile file="larry-smith-talk2.avi" type="DivX" size="332M" />
1009   <mediafile file="larry-smith-talk2-xvid.avi" type="XviD" size="332M" />
1010   <mediafile file="larry-smith-talk2.mpg" type="MPG" size="332M" />
1011   <mediafile file="larry-smith-talk2.ogg" type="Ogg/Theora" size="341M"/>
1012 </mediaitem>
1013
1014 <mediaitem title="Riding The Multi-core Revolution">
1015   <abstract><p>
1016     For decades, mainstream parallel processing has been thought of as 
1017     inevitable. Up until recent years, however, improvements in manufacturing 
1018     processes and increases in clock speed have provided software with free 
1019     Moore's Law-scale performance improvements on traditional single-core
1020     CPUs. As per-core CPU speed increases have slowed to a halt, processor 
1021     vendors are embracing parallelism by multiplying the number of cores on 
1022     CPUs, following what Graphics Processing Unit (GPU) vendors have been
1023     doing for years. The Multi-core revolution promises to provide
1024     unparallelled increases in performance, but it comes with a catch: 
1025     traditional serial programming methods are not at all suited to 
1026     programming these processors and methods such as multi-threading are 
1027     cumbersome and rarely scale beyond a few cores. Learn how, with hundreds 
1028     of cores in desktop computers on the horizon, a local software company is 
1029     looking to revolutionize the way software is written to deliver on the 
1030     promise multi-core holds.
1031   </p></abstract>
1032   <presentor>Stefanus Du Toit</presentor>
1033   <thumbnail file="sdt-thumb-small.jpg" />
1034   <mediafile file="sdt.avi" type="DivX" size="406M" />
1035   <mediafile file="sdt-xvid.avi" type="XviD" size="406M" />
1036   <mediafile file="sdt.mpg" type="MPG" size="405M" />
1037   <mediafile file="sdt.ogg" type="Ogg/Theora" size="411M" />
1038   <flvfile file="sdt.flv" />
1039 </mediaitem>
1040
1041 <mediaitem title="ReactOS - An Open Source OS Platform for Learning">
1042   <abstract><p>
1043     The ReactOS operating system has been in development for over eight years 
1044     and aims to provide users with a fully functional and Windows-compatible 
1045     distribution under the GPL license. ReactOS comes with its own Windows 
1046     2003-based kernel and system utilities and applications, resulting in an 
1047     environment identical to Windows, both visually and internally.
1048     </p><p>
1049     More than just an alternative to Windows, ReactOS is a powerful platform 
1050     for academia, allowing students to learn a variety of skills useful to 
1051     software testing, development and management, as well as providing a rich 
1052     and clean implementation of Windows NT, with a kernel compatible to 
1053     published internals book on the subject.
1054     </p><p>
1055     This talk will introduce the ReactOS project, as well as the various 
1056     software engineering challenges behind it. The building platform and 
1057     development philosophies and utilities will be shown, and attendees will 
1058     grasp the vast amount of effort and organization that needs to go into 
1059     building an operating system or any other similarly large project. The 
1060     speaker will gladly answer questions related to his background, experience 
1061     and interests and information on joining the project, as well as any other 
1062     related information.
1063     </p><p>
1064     Slides from the talk are available 
1065     <a href="http://mirror.csclub.uwaterloo.ca/csclub/alex-ionescu.pdf">here</a>.
1066     </p><p>
1067     <strong>Biography</strong>
1068     </p><p>
1069     Alex Ionescu is currently studying in Software Engineering at Concordia 
1070     University in Montreal, Quebec and is a Microsoft Technical Student 
1071     Ambassador. He is the lead kernel developer of the ReactOS Project and 
1072     project leader of TinyKRNL. He regularly speaks at Linux and Open Source 
1073     conferences around the world and will be a lecturer at the 8th 
1074     International Free Software Forum in Brazil this April, as well as 
1075     providing hands-on workshops and lectures on Windows NT internals and 
1076     security to various companies.
1077   </p></abstract>
1078   <presentor>Alex Ionescu</presentor>
1079   <thumbnail file="alex-ionescu-thumb-small.jpg" />
1080   <mediafile file="alex-ionescu.avi" type="DivX" size="451M" />
1081   <mediafile file="alex-ionescu-xvid.avi" type="XviD" size="451M" />
1082   <mediafile file="alex-ionescu.mpg" type="MPG" size="450M" />
1083   <mediafile file="alex-ionescu.ogg" type="Ogg/Theora" size="461M" />
1084   <flvfile file="alex-ionescu.flv" />
1085 </mediaitem>
1086
1087 <mediaitem title="1989 Bill Gates Talk on Microsoft">
1088   <abstract><p>
1089     Bill Gates discusses the software and computer industry, and how Microsoft 
1090     has contributed. Gates also discusses his views on the future of the 
1091     computing industry. The talk was recorded in 1989 but was only recently
1092     digitized.
1093     </p><p>
1094     Topics include:<ul>
1095       <li>The start and history of the microcomputer industry</li>
1096       <li>Microsoft BASIC and the Altair 880 computer</li>
1097       <li>The transition from 8-bit to 16-bit computers</li>
1098       <li>Microsoft's history with IBM</li>
1099       <li>640k memory barrier and 16-bit architectures</li>
1100       <li>32-bit 386 and 486 architectures</li>
1101       <li>RISC and multi-processor machines</li>
1102       <li>EGA graphics and WYSIWYG editors</li>
1103       <li>Decreasing cost of memory, harddisks and hardware in general</li>
1104       <li>The importance and future of the mouse</li>
1105       <li>Object-oriented programming</li>
1106       <li>MS-DOS and OS/2</li>
1107       <li>Multi-threaded and multi-application systems</li>
1108       <li>Synchronization in multi-threaded applications</li>
1109       <li>Diskette-based software</li>
1110       <li>UNIX standardization and POSIX</li>
1111       <li>History of the Macintosh and Microsoft' involvement</li>
1112       <li>Involvement of Xerox in graphical user interfaces</li>
1113       <li>Apple vs. Microsoft lawsuit regarding user interfaces</li>
1114       <li>OS/2 future as a replacement for MS-DOS</li>
1115       <li>Microsoft Office on Macintosh</li>
1116       <li>Thin/dumb clients</li>
1117       <li>Compact discs</li>
1118       <li>Multimedia applications</li>
1119       <li>Gates' current role at Microsoft</li>
1120       </ul>
1121     </p><p>
1122     The following picture was taken after the talk (click for higher-res).
1123     </p><p>
1124     <a href="http://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989-big.jpg" target="_blank">
1125       <img src="http://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989.jpg" /></a>
1126     </p></abstract>
1127   <presentor>Bill Gates</presentor>
1128         <thumbnail file="audio-file.png" />
1129         <mediafile file="bill-gates-1989.mp3" type="mp3" size="85M" />
1130         <mediafile file="bill-gates-1989.flac" type="flac" size="540M" />
1131         <mediafile file="bill-gates-1989.ogg" type="ogg" size="56M" />
1132         <mediafile file="bill-gates-1989.wav" type="wav" size="945M" />
1133   </mediaitem>
1134
1135   <mediaitem title="Spam Filters: Do they work and Can you prove it">
1136     <abstract><p>
1137       Do spam filters work?  Which is the best one?  How might filters be
1138       improved?  Without standards, one must depend on unreliable evidence,
1139       such as subjective impressions, testimonials, incomparable and 
1140       unrepeatable measurements, and vendor claims for the answers to these 
1141       questions.
1142       </p><p>
1143       You might think that your spam filter works well and couldn't be
1144       improved.  Are you sure?  You may think that the risk of losing
1145       important mail outweighs the benefit of using a filter.  Could you
1146       convince someone who holds the other opinion?  If I told you that my
1147       filter was 99-percent accurate, would you believe me?  Would you know
1148       what I meant?  Would you  be able to translate that 99-percent into
1149       the risk of losing an important message?
1150       </p><p>
1151       Gord Cormack talks about the science, logistics, and politics of Spam 
1152       Filter Evaluation.
1153     </p></abstract>
1154     <presentor>Dr. Gord Cormack</presentor>
1155   <thumbnail file="cormack-spam-thumb-small.jpg" />
1156   <mediafile file="cormack-spam-xvid.avi" type="XviD" size="473M" />
1157   <mediafile file="cormack-spam.avi" type="DiVX" size="473M" />
1158   <mediafile file="cormack-spam.mpg" type="MPG" size="472M" />
1159   <mediafile file="cormack-spam.ogg" type="Ogg/Theora" size="481M" />
1160   <flvfile file="cormack-spam.flv" />
1161 </mediaitem>
1162
1163 <mediaitem title="Software development gets on the Cluetrain">
1164   <abstract><p>
1165     Simon Law leads the Quality teams for Ubuntu, a free-software operating 
1166     system built on Debian GNU/Linux. As such, he leads one of the largest 
1167     community-based testing efforts for a software product. This does get a 
1168     bit busy sometimes.
1169     </p><p>
1170     In this talk, we'll be exploring how the Internet is changing how software 
1171     is developed. Concepts like open source and technologies like message 
1172     forums are blurring the lines between producer and consumer. And this 
1173     melting pot of people is causing people to take note, and changing the way 
1174     they sling code.
1175     </p><p>
1176     The Computer Science Club would like to thank the CS-Commons Committee for 
1177     co-sponsoring this talk.
1178   </p></abstract>
1179   <presentor>Simon Law</presentor>
1180   <thumbnail file="simon-talk-thumb-small.jpg" />
1181   <mediafile file="simon-talk-xvid.avi" type="XviD" size="178M" />
1182   <mediafile file="simon-talk.avi" type="DivX" size="178M" />
1183   <mediafile file="simon-talk.mpg" type="MPG" size="177M" />
1184   <flvfile file="simon-talk.flv" />
1185 </mediaitem>
1186
1187 <mediaitem title="Semacode - Image recognition on mobile camera phones">
1188   <abstract><p>
1189     Could you write a good image recognizer for a 100 MHz mobile phone 
1190     processor with 1 MB heap, 320x240 image, on a poorly-optimized Java stack? 
1191     It needs to locate and read two-dimensional barcodes made up of square 
1192     modules which might be no more than a few pixels in size. We had to do 
1193     that in order to establish Semacode, a local start up company that makes a 
1194     software barcode reader for cell phones. The applications vary from 
1195     ubiquitous computing to advertising. Simon Woodside (founder) will discuss 
1196     what it's like to start a business and how the imaging code works.
1197   </p></abstract>
1198   <presentor>Simon Woodside</presentor>
1199   <thumbnail file="semacode-thumb-small.jpg" />
1200   <mediafile file="semacode.avi" type="DivX" size="180M"/>
1201   <mediafile file="semacode-xvid.avi" type="XviD" size="180M"/>
1202   <mediafile file="semacode.mpg" type="Mpeg" size="180M"/>
1203 </mediaitem>
1204
1205 <mediaitem title="Eric LaForest: Next Generation Stack Computing">
1206   <abstract><p>
1207     Eric LaForest delivers a crash-course on modern stack computing, the Forth 
1208     programming language, and some projects of his own. Stack systems have 
1209     faster procedure calls and reduced complexity (shorter pipeline, simpler 
1210     compilation) relative to their conventional counterparts, as well as more 
1211     consistent performance, which is very important for real-time systems. 
1212     Many consider stack-based architecture's crowning feature, however, to be 
1213     the unrivalled price-to-performance ratio.
1214     </p><p>
1215         Note: the slides are hard to make out in the video, so make sure to 
1216     download the slides as well.
1217   </p></abstract>
1218   <presentor>Eric LaForest</presentor>
1219   <thumbnail file="ericlaforest-thumb-small.jpg" />
1220   <mediafile file="eric-laforest2-720-480.avi" type="DiVX" size="357M"/>
1221   <mediafile file="ericlaforest-xvid.avi" type="XViD" size="309M"/>
1222   <mediafile file="ericlaforest.mpg" type="Mpeg" size="307M" />
1223   <mediafile file="CSCtalkMar06.pdf" size="1M" type="slides [pdf]"/>
1224   <mediafile file="CSCtalkMar06.ppt" size="1M" type="slides [Power Point]" />
1225   <mediafile file="CSCtalkMar06.odp" size="1M" type="slides [Open Office]" />
1226 </mediaitem> 
1227 <mediaitem title="Larry Smith: Creating Killer Applications"> 
1228   <abstract><p>
1229     A discussion of how software creators can identify application 
1230     opportunities that offer the promise of great social and commercial 
1231     significance. Particular attention will be paid to the challenge of 
1232     acquiring cross domain knowledge and setting up effective collaboration.
1233   </p></abstract>
1234   <presentor>Larry Smith</presentor>
1235   <thumbnail file="larry-killer-applications-thumb-small.jpg" />
1236   <mediafile file="larry-killer-applications.avi" size="686M" type="DiVX" />
1237   <mediafile file="larry-killer-applications-xvid.avi" size="686M" type="XviD" />
1238   <mediafile file="larry-killer-applications.mpg" size="685M" type="MPG" />
1239   <mediafile file="larry-killer-applications.ogg" size="706M" type="Ogg" />
1240 </mediaitem>
1241
1242 <mediaitem title="Larry Smith: Computing's Next Great Empires">
1243   <presentor>Larry Smith</presentor>
1244   <thumbnail file="audio-file.png" />
1245   <mediafile file="larry-smith-talk.ogg" type="Ogg" />
1246   <mediafile file="larry-smith-talk.mp3" type="MP3" />
1247 </mediaitem>
1248
1249 <mediaitem title="Rico Mariani: Eighteen Years in the Software Tools Business">
1250   <abstract><p>
1251     Rico Mariani, (BMath CS/EEE 1988) now an (almost) 18 year Microsoft 
1252     veteran but then a CSC president comes to talk to us about the evolution 
1253     of software tools for microcomputers. This talk promises to be a little 
1254     bit about history and perspective (at least from the Microsoft side 
1255     of things) as well as the evolution of software engineers, different types 
1256     of programmers and their needs, and what it's like to try to make the 
1257     software industry more effective at what it does, and sometimes succeed!
1258     Particularly illuminating are his responses to advocates of 
1259     free/open-source software.
1260   </p></abstract>
1261   <presentor>Rico Mariani</presentor>
1262   <thumbnail file="rico-thumb-small.jpg" />
1263   <mediafile file="rico.avi" type="XviD" size="534M" />
1264   <mediafile file="rico.ogg" type="Ogg/Theora" size="528M" />
1265   <mediafile file="rico.mp4" type="MP4" size="507M" />
1266   <mediafile file="rico.mpg" type="MPG" size="532M" />
1267   <flvfile file="rico.flv" />
1268 </mediaitem>
1269
1270     </ul>
1271   </section>
1272 <footer />
1273 </cscpage>