]>

The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

The School of Computer Science is hosting a dinner event for incoming first-year students. You'll get to meet us, some of the faculty, and other new undergraduates. Food will be provided.

The School of Computer Science is hosting a dinner event for incoming first-year students. You'll get to meet us, some of the faculty, and other new undergraduates. Food will be provided.

The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

CSC Elections have begun for the Spring 2012 term, nominations are open!

It's elections time again! On Thursday May 10th at 4:30PM, come to the Comfy Lounge on the 3rd floor of the MC to vote in this term's President, Vice-President, Treasurer and Secretary. The sysadmin, librarian, and office manager will also be chosen at this time.

Nominations are open until 4:30PM on Wednesday May 9th, and can be written on the CSC office whiteboard (yes, you can nominate yourself). All CSC members who have paid their Mathsoc fee can vote and are invited to drop by. You may also send nominations to the Chief Returning Officer. A full list of candidates will be posted when nominations close.

Good luck to our candidates!

Palantir is a Palo Alto-based intelligence analysis software company that has partnered with the CSC to put on a tech talk and social. There will be free food, free drinks, and for one lucky winner, a free iPad, so why not come on out?

In the aftermath of the 2008 economic crisis, large banks have been saddled with the prospect of foreclosing on millions of distressed mortgages, at a financial cost of billions of dollars and an incalculable social cost. Crucial to solving this problem is the ability to model and analyze these millions of loans in real time, enabling lenders to price homes so that they can find effective and mutually beneficial alternatives to foreclosure.

In this talk, we'll describe how engineers at Palantir are working on a calculation engine that supports such analyses. We'll outline our design goals of constructing a platform that supports queries against large sets of data at interactive speeds and exposes a high-level object-oriented interface that enables analysts to construct models intuitively without having to worry about the underlying implementation details. We'll describe the different architectures we explored in prototyping the system, demo how to use our product to analyze massive datasets, and discuss how we've ultimately deployed it in the field.

by Bill Cowan. Programming systems that obey hard real-time constraints is difficult. So is programming multiple CPUs that interact to solve a single problem. This talk will describe the nature of computation typical of real-time systems, architectural solutions currently employed in CS 452, and possible architectures for multi-CPU systems.

Programming systems that obey hard real-time constraints is difficult. So is programming multiple CPUs that interact to solve a single problem.

On rare occasions it is possible to mix two difficult problems to create one easy problem and multi-CPU real-time is, on the face of it, just such an occasion. Give each deadline its own CPU and it will never be missed. This intuition is, unfortunately, incorrect, which does not, however, prevent it being tried in many real-time systems.

For three decades, fourth year students have been exploring this problem in CS452, using multiple tasks (virtual CPUs) running on a single CPU. It is now time to consider whether modern developments in CPU architecture make it possible to use multiple CPUs in CS452 given the practical constraint of a twelve week semester.

This talk will describe the nature of computation typical of real-time systems, architectural solutions currently employed in the course, and possible architectures for multi-CPU systems.

by Calum T. Dalek. The Computer Science Club will be running the second installment of our introductory UNIX tutorials for the term. We will be covering topics intended to show off the development-friendliness of the UNIX computing environment: "real" document editors, development tools, bash scripting, and version control.

New to the UNIX computing environment? If you seek an introduction, look no further. We will be covering more advanced topics in the second installment of our introductory tutorials, that will help you become a more effective developer.

We will be introducing "real" document editors, bash scripting, and version control. We'll prove to you how much more efficient you can develop with these tools and teach you how to do it for yourself. It will save you hours of work!

by Calum T. Dalek. The University of Waterloo Computer Science Club and AMD's OpenCL programming competition comes to a close, as the contest ends at midnight and prizes are awarded! Open submissions will be judged, so make sure to come out and watch.

The University of Waterloo Computer Science Club and AMD's OpenCL programming competition comes to a close, as the contest ends at midnight and prizes are awarded! Open submissions will be judged, so make sure to come out and watch.

by Calum T. Dalek. Join the Computer Science Club and PhysClub every Wednesday evening for the rest of the term for our five screenings of the classic 1964 Messenger Lecture Series by Richard Feynman in PHY 150. Dinner provided!

The Physics Club and the Computer Science Club are proud to present the 1964 Feynman Messenger Lecture Series in PHY 150 on Wednesday evenings at 5:30 PM. The screenings will be taking place as follows (please note times and dates):

  • Feb. 29, 5:30-6:30 PM: Law of Gravitation: An Example of Physical Law
  • Mar. 7, 5:30-7:30 PM: The Relation of Mathematics and Physics and The Great Conservation Principles (double feature)
  • Mar. 14, 5:30-6:30 PM: Symmetry in Physical Law
  • Mar. 21, 5:30-7:30 PM: The Distinction of Past and Future and Probability and Uncertainty: The Quantum Mechanical View (double feature)
  • Mar. 28, 5:30-6:30 PM: Seeking New Laws

Dinner will be provided, so come on out, relax in the comfy PHY 150 theatre, and enjoy. Hope to see you there!

by Calum T. Dalek. The University of Waterloo Computer Science Club and AMD are running an OpenCL programming competition. If you're interested in writing massively parallel software on the OpenCL platform, come out and join us for our introductory code party!

The University of Waterloo Computer Science Club and AMD are running an OpenCL programming competition. If you're interested in writing massively parallel software on the OpenCL platform, come out and join us for our introductory code party!

by Calum T. Dalek. New to the Unix computing environment? If you seek an introduction, look no further. We will be holding a series of tutorials on using Unix, beginning with Unix 101 this upcoming Thursday. Topics that will be covered include basic interaction with the shell and the motivations behind using it, and an introduction to compilation. You'll have to learn this stuff in CS 246 anyways, so why not get a head start!

New to the Unix computing environment? If you seek an introduction, look no further. We will be holding a series of tutorials on using Unix, beginning with Unix 101 this upcoming Thursday. Topics that will be covered include basic interaction with the shell and the motivations behind using it, and an introduction to compilation. You'll have to learn this stuff in CS 246 anyways, so why not get a head start!

If you're interested in attending, make sure you can log into the Macs on the third floor, or show up to the CSC office (MC 3036) 20 minutes early for some help. If you're already familiar with these topics, don't hesitate to come to Unix 102, planned to be held after Reading Week.

by Victor Fan. Join Victor Fan for his talk, intended for all second-year math students with a solid first-year background. Even if you are a first-year or a seasoned veteran, you will probably still take home something new, so please come out to enjoy the talk! Refreshments will be served.

Are you interested in algorithms? What is an algorithm anyway? We will discuss two or three neat problems with very elegant answers. Some of these answers are actually fast, and some will result in a proof that the problem is NP-complete. (What does that mean?) We will also discuss the motivating thoughts that led us to the solutions.

Join Victor Fan for his talk, intended for all second-year math students with a solid first-year background. Even if you are a first-year or a seasoned veteran, you will probably still take home something new, so please come out to enjoy the talk! Refreshments will be served.

by Calum T. Dalek. The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

The Computer Science Club is running the first code party of the term! Come join us and hack on open source software, your own projects, or whatever comes up. Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

CSC Elections have begun for the Winter 2012 term, nominations are open!

It's elections time again! On Thursday January 12th at 4:30PM, come to the Comfy Lounge on the 3rd floor of the MC to vote in this term's President, Vice-President, Treasurer and Secretary. The sysadmin, librarian and office manager will also be chosen at this time.

Nominations are open until 4:30PM on Wednesday January 11th, and can be written on the CSC office whiteboard (yes, you can nominate yourself). All CSC members who have paid their Mathsoc fee can vote and are invited to drop by. You may also send nominations to the Chief Returning Officer. A full list of candidates will be posted when nominations close.

Good luck to our candidates!

by Calum T. Dalek. The Computer Science Club is teaming up with the UW Open Data Initiative to bring you our third code party of the term! Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

We're teaming up with the UW Open Data Initiative to host our next code party on Friday, November 18 at 7PM in the MC Comfy Lounge.

As always, you're welcome to work on your own projects, but we'll be hacking on some open data related projects:

  1. Design and build UW APIs.
  2. We're looking for API design experts to bring scalable API designs to the party. At the party, we'll work on implementing these designs. The APIs that you build will be used by everyone to access the university data made available by the Open Data Initiative.
  3. Applications using university data that is currently available.

If you'd like to discuss your ideas for these proposed projects, check out the newsgroup, uw.csc

by Calum T. Dalek. The Computer Science Club has a limited number of tickets available for the Design Our Tomorrow Conference at the University of Toronto on Saturday, November 12, 10:00 - 16:30. See event information for ticket details.

The Computer Science Club has tickets available for the Design Our Tomorrow Conference at the University of Toronto on Saturday, November 12, 10:00 - 16:30, and would like to invite you to attend. The DOT Conference is a TED-style event geared towards students in high school, undergraduate, and graduate studies. The goal of the event is to inspire young people to create, innovate, better themselves, and in the process, better the world. The conference is free for students and is valued at $500 a ticket for non-students. For more details about the conference, visit http://designourtomorrow.com/.

Tickets have been reserved for the CSC, and transportation to the conference has been funded by the David R. Cheriton School of Computer Science; a $5 deposit is required to secure a seat on the bus, which will be refunded to attendees upon departure. To sign up, visit the CSC office at MC 3036/3037 with exact change. You will need to provide your full name, e-mail, and student ID number. Please note that students who have already registered for the conference *should not* try to register through the CSC. For more details, visit the CSC website at http://csclub.uwaterloo.ca/.

This event is not restricted to CSC members—any student is free to attend. Tickets are very limited, so please sign up as soon as possible.

On the morning of November 12, attendees should meet in front of the Davis Center at 7:30 am. The bus will be leaving promptly at 8:00 am, so please arrive no later than 7:30 so we can process refunds and depart on time.

We hope that you will join us.

by Calum T. Dalek. The next installment in the CS Club's popular Unix tutorials UNIX 102 introduces powerful text editing tools for programming and document formatting.

Unix 102 is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix 101 but still know your way around you should be fine. Topics covered include: "real" editors, text processing, navigating a multiuser Unix environment, standard tools, and more. If you aren't interested or feel comfortable with these tasks, watch out for Unix 103 and 104 to get more depth in power programming tools on Unix.

by Calum T. Dalek. The Computer Science Club is having our second code party of the term! Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

The Computer Science Club is having our second code party of the term! Everyone is welcome; please bring your friends. There will be foodstuffs and sugary drinks available for your hacking pleasure.

There will be 3 more code parties this term.

by Ehsan Akhgari. Veteran Mozilla engineer Ehsan Akhgari will present a talk on the internals of web browsers. The material will range from the fundamentals of content rendering to the latest innovations in browser design. Click on the talk title for a full abstract.

Web browsers have evolved. From their humble beginnings as simple HTML rendering engines they have grown and evolved into rich application platforms. This talk will start with the fundamentals: how a browser creates an on-screen representation of the resources downloaded from the network. (Boring, right? But we have to start somewhere.) From there we'll get into the really exciting stuff: the latest innovations in Web browsers and how those innovations enable — even encourage — developers to build more complex applications than ever before. You'll see real-world examples of people building technologies on top of these "simple rendering engines" that seemed impossible a short time ago. Bio of the speaker: Ehsan Akhgari has contributed to the Mozilla project for more than 5 years. He has worked on various parts of Firefox, including the user interface and the rendering engine. He originally implemented Private Browsing in Firefox. Right now he's focusing on the editor component in the Firefox engine.

There will be 4 more code parties this term.

by Calum T. Dalek. The Computer Science Club is having our first code party of the term! The theme for this code party will be collaborative development. We'll present several ideas of small projects to work on for the unexperienced. Everyone is welcome; please bring your friends! There will be foodstuffs and sugary drinks available for your hacking pleasure.

The Computer Science Club is having our first code party of the term! The theme for this code party will be collaborative development. We'll present several ideas of small projects to work on for the unexperienced. Everyone is welcome; please bring your friends! There will be foodstuffs and sugary drinks available for your hacking pleasure.

There will be 4 more code parties this term.

by Calum T. Dalek. New to Unix? No problem, we'll teach you to power use circles around your friends!

Unix 101 is the first in a series of tutorials on using Unix. This tutorial will present an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and more advanced topics like scripting and job control, the filesystem and manipulating it, and secure shell. If you feel you're already familiar with these topics, don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103, 104, and 201 that get much more in depth with power tools and software authoring on Unix.

Club elections. See related news items for details.

Club elections. See related news items for details.

The end of another term is here, and so we're having our End-of-Term dinner. Everybody's welcome to come to CTRL-D. We are running this like a potluck, so bringing food is suggested.

askhader's house is at:
9 Cardill Cresent
Waterloo, ON

The final Code Party of the term is here! Come hack on some code, solve some puzzles, and have some fun. The event starts in the evening and will run all night. You can show up for any portion of it. You should bring a laptop, and probably have something in mind to work on, though you're welcome with neither.

Snacks will be provided. Everyone is welcome.

Please note this date is postponed from the originally scheduled date due to conflicts with Kitchener Ribfest & Craft Beer Show

As part of the CSC member talks series, Yomna Nasser will be presenting an introduction to steganography. Steganography is the act of hiding information such that it can only be found by its intended recipient. It has been practiced since ancient Greece, and is still in use today.

This talk will include an introduction to the area, history, and some basic techniques for hiding information and detecting hidden data. There will be an overview of some of the mathematics involved, but nothing too rigorous.

Do you like going outside? Are you vitamin-D deficient from being in the MC too long? Do you think marshmallows, hotdogs, and fire are a delicious combination?

If so, you should join us as the CSC is going outside!

Around 4PM, we're going to Columbia Lake for some outdoor fun. We'll have Frisbees, kites, snacks, and some drinks. We'll be sticking around until dusk, when we're going to have a campfire with marshmallows and hotdogs. We plan to be there until 10PM, but of course you're welcome to come for any subinterval.

A joint work between Professors Tim Brecht, Ashif Harji, and Peter Buhr, this talk describes experiences using the Linux kernel as a platform for conducting performance evaluations.

Linux provides researchers with a full-fledged operating system that is widely used and open source. However, due to its complexity and rapid development, care should be exercised when using Linux for performance experiments, especially in systems research. The size and continual evolution of the Linux code-base makes it difficult to understand, and as a result, decipher and explain the reasons for performance improvements. In addition, the rapid kernel development cycle means that experimental results can be viewed as out of date, or meaningless, very quickly. We demonstrate that this viewpoint is incorrect because kernel changes can and have introduced both bugs and performance degradations.

This talk describes some of our experiences using the Linux kernel as a platform for conducting performance evaluations and some performance regressions we have found. Our results show, these performance regressions can be serious (e.g., repeating identical experiments results in large variability in results) and long lived despite having a large negative impact on performance (one problem appears to have existed for more than 3 years). Based on these experiences, we argue that it is often reasonable to use an older kernel version, experimental results need careful analysis to explain why a change in performance occurs, and publishing papers that validate prior research is essential.

This is joint work with Ashif Harji and Peter Buhr.

This talk will be about 20-25 minutes long with lots of time for questions and discussion afterwards.

The second Code Party of the term takes place this Friday! Come hack on some code, solve some puzzles, and have some fun. The event starts in the evening and will run all night. You can show up for any portion of it. You should bring a laptop, and probably have something in mind to work on, though you're welcome with neither.

Snacks will be provided.

Ever use software with 100s or 1000s of commands? Ever have a hard time finding the right commands to perform your task? In this talk, we'll present AdaptableGIMP, a new version of GIMP developed at Waterloo to help simplify complex user interfaces.

Ever use software with 100s or 1000s of commands? Ever have a hard time finding the right commands to perform your task? We have. And we have some new ideas on how to deal with software bloat.

In this talk, we'll present AdaptableGIMP, a new version of GIMP developed by the HCI Lab here at the University of Watreloo. AdaptableGIMP introduces the notion of crowdsourced interface customizations: Any user of the application can customize the interface for performing a particular task, with that customization instantly shared with all other users through a wiki at adaptablegimp.org. In the talk, we'll demo this new version of GIMP and show how it can help people work faster by simplifying feature-rich, complex user interfaces.

In the first of our member talks for the term, Katie Hyatt will give a short introduction to General Purpose Graphics Processing Unit computing. This expanding field has many applications. The primary focus of this talk will be nVidia's CUDA architecture.

This is the first of our member talks for the term, presented by CSC member and Waterloo undergraduate student Katie Hyatt

GPGPU (general purpose graphics processing unit) computing is an expanding area of interest, with applications in physics, chemistry, applied math, finance, and other fields. nVidia has created an architecture named CUDA to allow programmers to use graphics cards without having to write PTX assembly or understand OpenGL. CUDA is designed to allow for high-performance parallel computation controlled from the CPU while granting the user fine control over the behaviour and performance of the device.

In this talk, I'll discuss the basics of nVidia's CUDA architecture (with most emphasis on the CUDA C extensions), the GPGPU programming environment, optimizing code written for the graphics card, algorithms with noteworthy performance on GPU, libraries and tools available to the GPGPU programmer, and some applications to condensed matter physics. No physics background required!

The Computer Science Club is having our first code party of the term. The theme for this week's code party is personal projects. Come show us what you've been working on! Of course, everybody is welcome, even if you don't have a project. The Computer Science Club is having our first code party of the term. The theme for this week's code party is personal projects. Come show us what you've been working on! Of course, everybody is welcome, even if you don't have a project. Personal projects are a great way to flex your CS muscles, and learn interesting and new things. Come out and have some fun! Two more are scheduled for later in the term.

CSC Elections, final list of nominations for Spring 2011

The nominations are:

  • President: jdonland, mimcpher, mthiffau
  • Vice-President: jdonland, mimcpher
  • Treasurer: akansong, kspaans
  • Secretary: akansong, jdonland

CSC Elections have begun for the Spring 2011 term, nominations are open!

It's time to elect your CSC executive for the Spring 2011 term. The elections will be held on Monday May 9th at 5:30PM in the Comfy Lounge on the 3rd floor of the MC. Nominations can be sent to the Chief Returning Officer, cro@csclub.uwaterloo.ca. Nominations will be open until 4:30PM on Monday May 9th. You can also stop by the office in person to write your nominations on the white board.

The executive positions open for nomination are:

  • President
  • Vice-President
  • Treasurer
  • Secretary
There are also numerous positions that will be appointed once the executive are elected including systems administrator, office manager, and librarian.

Everyone is encouraged to run if they are interested, regardless of program of study, age, or experience. If you can't make the election, that's OK too! You can give the CRO a statement to read on your behalf. If you can't make it or are out of town, your votes can be sent to the CRO in advance of the elections. For the list of nominees, watch the CSC website, or ask the CRO.

Good luck to our candidates!

by Stanley Khaing. What are the requirements for obtaining a patent? Should software be patentable?

Stanley Khaing is a lawyer from Waterloo whose areas of practice are software and high technology. He will be discussing software patents. In particular, he will be addressing the following questions:

  • What are the requirements for obtaining a patent?
  • Should software be patentable?

by KW Perl Mongers. These talks are intended for programmers who are curious about the Swiss Army Chainsaw of languages, Perl.

Tyler Slijboom will present:

  • Prototyping in Perl,
  • Perl Default Variables,
  • HOWTO on OO Programming, and
  • HOWTO on Installing and Using Modules from CPAN

Daniel Allen will present:

  • Coping with Other Peoples' Code

Justin Wheeler will present:

  • Moose: a Modern Perl Framework

by Calum T. Dalek. In this long-awaited third installment of the popular Unix Tutorials the friendly experts of the CSC will teach you the simple art of version control.

You will learn the purpose and use of two different Version Control Systems (git and subversion). This tutorial will advise you in the discipline of managing the source code of your projects and enable you to quickly learn new Version Control Systems in the work place -- a skill that is much sought after by employers.

by Calum T. Dalek. Come one, come all to the Code Party happening in the Comfy Lounge this Friday. The event starts at 7:00PM and will run through the night.

Why sleep when you could be hacking on $your_favourite_project or doing $something_classy in great company? Join us for a night of coding and comraderie! Food and caffeine will be provided.

by Calum T. Dalek. The next installment in the CS Club's popular Unix tutorials UNIX 102 introduces powerful text editing tools for programming and document formatting.

Unix 102 is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix 101 but still know your way around you should be fine. Topics covered include: "real" editors, document typesetting with LaTeX (great for assignments!), bulk editing, spellchecking, and printing in the student environment and elsewhere. If you aren't interested or feel comfortable with these tasks, watch out for Unix 103 and 104 to get more depth in power programming tools on Unix.

by Calum T. Dalek. New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

by Dr. Craig S. Kaplan. In this talk, I discuss the role of the computer in the process of designing mazes. I present some well known algorithms for maze construction, and more recent research that attempts to novel mazes with non-trivial mathematical or aesthetic properties.

For thousands of years, mazes and labyrinths have played an important role in human culture and myth. Today, solving mazes is a popular pastime, whether with pencil on paper or by navigating through a cornfield.

The construction of compelling mazes encompasses a variety of challenges in mathematics, algorithm design, and aesthetics. The maze should be visually attractive, but it should also be an engaging puzzle. Master designers balance these two goals with wonderful results.

In this talk, I discuss the role of the computer in the process of designing mazes. I present some well known algorithms for maze construction, and more recent research that attempts to novel mazes with non-trivial mathematical or aesthetic properties.

The CSC is going to Toronto to visit UofT's CSSU, see what they do, and have beer with them. If you would like to come along, please come by the office and sign up. The cost for the trip is $2 per member. The bus will be leaving from the Davis Center (DC) Saturday Nov. 13 at NOON (some people may have been told 1pm, this is an error). Please show up a few minutes early so we may board.

Come join the CSC for a night of code, music with only 8 bits, and comradarie. We will be in the C&D Lounge from 7pm until 7am working on personal projects, open source projects, and whatever else comes to mind. If you're interested in getting involved in free/open source development, some members will be on hand to guide you through the process.

Come join the CSC for a night of code, music with only 8 bits, and comradarie. We will be in the C&D Lounge from 7pm until 7am working on personal projects, open source projects, and whatever else comes to mind. If you're interested in getting involved in free/open source development, some members will be on hand to guide you through the process.

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.

The probabilistic method is an extremely powerful tool in combinatorics that can be used to prove many surprising results. The idea is the following: to prove that an object with a certain property exists, we define a distribution of possible objects and use show that, among objects in the distribution, the property holds with non-zero probability. The key is that by using the tools and techniques of probability theory, we can vastly simplify proofs that would otherwise require very complicated combinatorial arguments.

As a technique, the probabilistic method developed rapidly during the latter half of the 20th century due to the efforts of mathematicians like Paul Erdős and increasing interest in the role of randomness in theoretical computer science. In essence, the probabilistic method allows us to determine how good a randomized algorithm's output is likely to be. Possibly applications range from graph property testing to computational geometry, circuit complexity theory, game theory, and even statistical physics.

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.

Properties of Poisson and Binomial distributions will be applied, but I'll remind everyone of the needed background for the benefit of those who might be a bit rusty. Stat 230 will be more than enough. Big O notation will be used, but not excessively.

by Dr. Shai Ben-David.

This installment in the CS Club's popular Unix tutorials UNIX 102 introduces powerful text editing tools for programming and document formatting.

Unix 102 is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix101 but still know your way around you should be fine. Topics covered include: "real" editors, document typesetting with LaTeX (great for assignments!), bulk editing, spellchecking, and printing in the student environment and elsewhere.

Unix 103 will cover version control systems and how to use them to manage your projects. Unix 101 would be helpful, but all that is needed is basic knowledge of the Unix command line (how to enter commands).

Unix 103 will cover version control systems and how to use them to manage your projects. Unix 101 would be helpful, but all that is needed is basic knowledge of the Unix command line (how to enter commands).

By Dr. Chris Eliasmith. 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.

By Dr. Chris Eliasmith. 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. I will present a general architecture, the semantic pointer architecture (SPA), which is built on this hierarchy and allows the manipulation, processing, and learning of structured representations in neurally realistic models. I demonstrate the architecture on Progressive Raven's Matrices (RPM), a test of general fluid intelligence.

By Ian Seyler, Return to Infinity. 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.

By Ian Seyler, Return to Infinity. 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.

By Peter Barfuss. 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.

By Peter Barfuss. With the recent introduction of digital TV and the widespread success of video sharing websites such as youtube, it is clear that the task of lossily compressing video with good quality has become important. Similarly, the complex algorithms involved require high amounts of optimization in order to run fast, another important requirement for any video codec that aims to be widely used/adopted.

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.

Come meet and greet your professors, advisors, and the heads of the school. Talk to the CSC executive and other upper year students about CS at Waterloo. Free food and beverages will also be available, so there is really no excuse to miss this.

Come meet and greet your professors, advisors, and the heads of the school. Talk to the CSC executive and other upper year students about CS at Waterloo. Free food and beverages will also be available, so there is really no excuse to miss this.

Need to use the Unix environment for a course, want to overcome your fears of the command line, or just curious? Attend the first installment in the CSC's popular series of Unix tutorials to learn the basics of the shell and how to navigate the unix environment. By the end of the hands on workshop you will be able to work efficiently from the command line and power-use circles around your friends.

Need to use the Unix environment for a course, want to overcome your fears of the command line, or just curious? Attend the first installment in the CSC's popular series of Unix tutorails to learn the basics of the shell and how to navigate the unix environment. By the end of the hands on workshop you will be able to work efficiently from the command line and power-use circles around your friends.

The CSC is happy to be hosting Jeff Potter, author of "Cooking for Geeks" for a presentation on the finer arts of food science. Jeff's book has been featured on NPR, BBC and his presentations have wowed audiences of hackers & foodies alike. We're happy to have Jeff joining us for a hands on demonstration.

The CSC is happy to be hosting Jeff Potter, author of "Cooking for Geeks" for a presentation on the finer arts of food science. Jeff's book has been featured on NPR, BBC and his presentations have wowed audiences of hackers & foodies alike. We're happy to have Jeff joining us for a hands on demonstration.

But you don't have to take our word for it... here's what Jeff has to say:

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 about my just-released book. I'll talk about the food science behind what makes things yummy, giving you a quick primer on how to go into the kitchen and have a fun time turning out a good meal. 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.

If you have a copy of the book, bring it! I’ll happily sign it.

by Dr. Prabhakar Ragde, Cheriton School of Computer Science. I'll be workshopping some lecture ideas involving representations of numbers, specification of computation in functional terms, reasoning about such specifications, and comparing the strengths and weaknesses of different approaches.

I'll be workshopping some lecture ideas involving representations of numbers, specification of computation in functional terms, reasoning about such specifications, and comparing the strengths and weaknesses of different approaches. No prior background is needed; the talk should be accessible to anyone attending the University of Waterloo and, I hope, interesting to both novices and experts.

Fall term executive elections and general meeting.

In this talk, we shall explore the incompressibility method---an interesting and extremely powerful framework for determining the average-case runtime of algorithms. Within the right background knowledge, the heapsort question can be answered with an elegant 3-line proof.

Heapsort. It runs in $\Theta(n \log n)$ time in the worst case, and in $O(n)$ time in the best case. Do you think that heapsort runs faster than $O(n \log n)$ time on average? Could it be possible that on most inputs, heapsort runs in $O(n)$ time, running more slowly only on a small fraction of inputs?

Most students would say no. It "feels" intuitively obvious that heapsort should take the full $n \log n$ steps on most inputs. However, proving this rigourously with probabilistic arguments turns out to be very difficult. Average case analysis of algorithms is one of those icky subjects that most students don't want to touch with a ten foot pole; why should it be so difficult if it is so intuitively obvious?

In this talk, we shall explore the incompressibility method---an interesting and extremely powerful framework for determining the average-case runtime of algorithms. Within the right background knowledge, the heapsort question can be answered with an elegant 3-line proof.

The crucial fact is that an overwhelmingly large fraction of randomly generated objects are incompressible. We can show that the inputs to heapsort that run quickly correspond to inputs that can be compressed, thereby proving that heapsort can't run quickly on average. Of course, "compressible" is something that must be rigourously defined, and for this we turn to the fascinating theory of Kolmogorov complexity.

In this talk, we'll briefly discuss the proof of the incompressibility theorem and then see a number of applications. We won't dwell too much on gruesome mathemtical details. No specific background is required, but knowledge of some of the topics in CS240 will be helpful in understanding some of the applications.

Edgar Bering will be giving a talk titled: Halftoning and Digital Art

Halftoning is the process of simulating a continuous tone image with small dots or regions of one colour. Halftoned images may be seen in older newspapers with a speckled appearance, and to this day colour halftoning is used in printers to reproduce images. In this talk I will present various algorithmic approaches to halftoning, with an eye not toward exact image reproduction but non-photorealistic rendering and art. Included in the talk will be an introduction to digital paper cutting and a tutorial on how to use the CSC's paper cutter to render creations.

There is a CSC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times.

There is a CSC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times.

Nomair Naeem, a P.H.D. Student at Waterloo, will be giving a talk about Dataflow Analysis

After going through an introduction to Lattice Theory and a formal treatment to Dataflow Analysis Frameworks, we will take an in-depth view of the Interprocedural Finite Distributive Subset (IFDS) Algorithm which implements a fully context-sensitive, inter-procedural static dataflow analysis. Then, using a Variable Type Analysis as an example, I will outline recent extensions that we have made to open up the analysis to a larger variety of static analysis problems and making it more efficient.

The talk is self-contained and no prior knowledge of program analysis is necessary.

Professor Ragde will be giving the first of our Professor talks for the Spring 2010 term.

Number theory was thought to be mathematically appealing but practically useless until the RSA encryption algorithm demonstrated its considerable utility. I'll outline how combinatory logic (dating back to 1920) has a similarly unexpected application to efficient and effective compilation, which directly catalyzed the development of lazy functional programming languages such as Haskell. The talk is self-contained; no prior knowledge of functional programming is necessary.

Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas

Full details found here

Public Reception

Full details found here

The Art of the Propagator

Full details found here

Spring term executive elections and general meeting.

The last talk in the CS10 series will be presented by Jordan Saunders, in which he will discuss methods for processing brush-based constructive solid geometry.

For some would-be graphics programmers, the biggest barrier-to-entry is getting data to render. This is why there exist so many terrain renderers: by virtue of the fact that rendering height-fields tends to give pretty pictures from next to no "created" information. However, it becomes more difficult when programmers want to do indoor rendering (in the style of the Quake and Unreal games). Ripping map information from the Quake games is possible (and fairly simple), but their tool-chain is fairly clumsy from the point of view of adding a conversion utility.

My talk is about Constructive Solid Geometry from a Brush-based perspective (nearly identical to Unreal's and still very similar to Quake's). The basic idea is that there are brushes (convex volumes in 3-space) and they can either be additive (solid brushes) or subtractive (hollow, or air brushes). The entire world starts off as an infinite solid lump and you can start removing sections of it then adding them back in. The talk pertains to fast methods of taking the list of brushes and generating world geometry. I may touch on interface problems with the editor, but the primary content will be the different ways I generated the geometry and what I found to be best.

Get the opportunity to learn about Microsoft's Cloud Services Platform, Windows Azure. Attend this Hands-on-lab session sponsored by Microsoft.

We are in the midst of an industry shift as developers and businesses embrace the Cloud. Technical innovations in the cloud are dramatically changing the economics of computing and reducing barriers that keep businesses from meeting the increasing demands of today's customers. The cloud promises choice and enables scenarios that previously were not economically practical.

Microsoft's Windows Azure is an internet-scale cloud computing services platform hosted in Microsoft data centers. The Windows Azure platform, allows developers to build and deploy production ready cloud services and applications. With the Windows Azure platform, developers can take advantage of greater choice and flexibility in how they develop and deploy applications, while using familiar tools and programming languages.

Get the opportunity to learn about Microsoft's Cloud Services Platform, Windows Azure. Attend the Hands-on-lab session sponsored by Microsoft.

Once again the CSC will be holding its traditional end of term dinner. It will be at the Vice President's house. If you don't know how to get there meet at the club office at 6:30 PM, a group will be leaving from the MC then. The dinner will be potluck style so bring a dish for 4-6 people, or some plates or pop or something.

Once again the CSC will be holding its traditional end of term dinner. It will be at the Vice President's house. If you don't know how to get there meet at the club office at 6:30 PM, a group will be leaving from the MC then. The dinner will be potluck style so bring a dish for 4-6 people, or some plates or pop or something.

Member Sam Pasupalak will present some of his ongoing work in Natural User Interfaces and Robotics in this sixth installment of CS10.

Bill Gates in his article “A Robot in every home” in the Scientific American describes how the current robotics industry resembles the 1970’s of the Personal Computer Industry. In fact it is not just Microsoft which has already taken a step forward by starting the Microsoft Robotics studio, but robotics researchers around the world believe that robotics and automation systems are going to be ubiquitous in the next 10-20 years (similar to Mark Weiser’s analogy of Personal Computers 20 years ago). Natural User Interfaces (NUIs) are going to revolutionize the way we interact with computers, cellular phones, household appliances, automated systems in our daily lives. Just like the GUI made personal computing a reality, I believe natural user interfaces will do the same for robotics.

During the presentation I will be presenting my ongoing software project on natural user interfaces as well as sharing my goals for the future, one of which is to provide an NUI SDK and the other to provide a common Robotics OS for every hardware vendor that will enable people to make applications without worrying about underlying functionality. If time permits I would like to present a demo of my software prototype.

There is a CSC/CMC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on open source projects, doing some computational math, and other general classiness. There will be free energy drinks for everyone's enjoyment. This is the last of the term so don't miss out.

There is a CSC/CMC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on open source projects, doing some computational math, and other general classiness. There will be free energy drinks for everyone's enjoyment. This is the last of the term so don't miss out.

Despite it being 2010, code is still being exploited due to stack overflows, a 40+ year old class of security vulnerabilities. In this talk, I will go over several common methods of program exploitation, both on the stack and on the heap, as well as going over some of the current mitigation techniques (i.e. stack canaries, ASLR, etc.) for these holes, and similarly, how some of these can be bypassed as well.

Despite it being 2010, code is still being exploited due to stack overflows, a 40+ year old class of security vulnerabilities. In this talk, I will go over several common methods of program exploitation, both on the stack and on the heap, as well as going over some of the current mitigation techniques (i.e. stack canaries, ASLR, etc.) for these holes, and similarly, how some of these can be bypassed as well.

There is a CSC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on the OpenMoko, creating music mixes, and other general classiness. There will be free energy drinks for everyone's enjoyment.

There is a CSC Code Party Friday starting at 7:00PM (1900) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on the OpenMoko, creating music mixes, and other general classiness. There will be free energy drinks for everyone's enjoyment.

The fifth installment in CS10: Undergraduate Seminars in CS, features CSC member Elyot Grant introducing the theory of approximation algorithms. Fun times and a lack of gruesome math are promised.

The theory of NP-completeness suggests that some problems in CS are inherently hard—that is, there is likely no possible algorithm that can efficiently solve them. Unfortunately, many of these problems are ones that people in the real world genuinely want to solve! How depressing! What can one do when faced with a real-life industrial optimization problem whose solution may save millions of dollars but is probably impossible to determine without trillions of years of computation time?

One strategy is to be content with an approximate (but provably "almost ideal") solution, and from here arises the theory of approximation algorithms. However, this theory also has a depressing side, as many well-known optimization problems have been shown to be provably hard to approximate well.

This talk shall focus on the depressing. We will prove that various optimization problems (such as traveling salesman and max directed disjoint paths) are impossible to approximate well unless P=NP. These proofs are easy to understand and are REALLY COOL thanks to their use of very slick reductions.

We shall explore many NP-hard optimization problems and state the performance of the best known approximation algorithms and best known hardness results. Tons of open problems will be mentioned, including the unique games conjecture, which, if proven true, implies the optimality of many of the best known approximation algorithms for NP-complete problems like MAX-CUT and INDEPENDENT SET.

I promise fun times and no gruesome math. Basic knowledge of graph theory and computational complexity might help but is not required.

A fevered night of code, friends, fun, energy drinks, and the CSC.

A fevered night of code, friends, fun, energy drinks, and the CSC.

Come join us for a night of coding. Get in touch with more experianced coders, advertize for/bug squash on your favourite open source project, write that personal project you were planning to do for a while but haven't found the time. Don't have any ideas but want to sit and hack? We can find something for you to do.

The fourth Undergraduate Seminar in Computer Science will be presented by Brennan Taylor, a club member. He will be discussing various concurrent computing problems, and introducing Software Transactional Memory as a solution to them.

Concurrency is hard. Well maybe not hard, but it sure is annoying to get right. Even the simplest of synchronization tasks are hard to implement correctly when using synchronization primitives such as locks and semaphores.

In this talk we explore what Software Transactional Memory (STM) is, what problems STM solves, and how to use STM in Haskell. We explore a number of examples that show how easy STM is to use and how expressive Haskell can be. The goal of this talk is to convince attendees that STM is not only a viable synchronization solution, but superior to how synchronization is typically done today.

The CSC is going bowling. $9.75 for shoes and two games. The bowling alley serves fried food and beer. Join us for some or all of the above

Dr. John Watrous of the IQC will present his recent result "QIP=PSPACE". The talk will not assume any familiarity with quantum computing or complexity theory, and light refreshments will be provided.

The interactive proof system model of computation is a cornerstone of complexity theory, and its quantum computational variant has been studied in quantum complexity theory for the past decade. In this talk I will discuss an exact characterization of the power of quantum interactive proof systems that I recently proved in collaboration with Rahul Jain, Zhengfeng Ji, and Sarvagya Upadhyay. The characterization states that the collection of computational problems having quantum interactive proof systems consists precisely of those problems solvable with an ordinary classical computer using a polynomial amount of memory (or QIP = PSPACE in complexity-theoretic terminology). This characterization implies the striking fact that quantum computing does not provide any increase in computational power over classical computing in the context of interactive proof systems.

I will not assume that the audience for this talk has any familiarity with either quantum computing or complexity theory; and to be true to the spirit of the interactive proof system model, I hope to make this talk as interactive as possible -- I will be happy to explain anything related to the talk that I can that people are interested in learning about.

The contest is coming to a close tomorrow, so to finish it in style we will be having ice cream and code friday night. It would be a shame if Waterloo lost (we're not on top of the leaderboard right now) so come out and hack for the home team.

Come to a town hall style meeting with the managers of CSCF to discuss how to improve the undergraduate (student.cs) computing environment. Have gripes? Suggestions? Requests? Now is the time to voice them.

Come to a town hall style meeting with the managers of CSCF to discuss how to improve the undergraduate (student.cs) computing environment. Have gripes? Suggestions? Requests? Now is the time to voice them.

CSCF management (Bill Ince, Associate Director; Dave Gawley, Infrastructure Support; Dawn Keenan, User Support; Lawrence Folland, Research Support) will be at the meeting to listen to student concerns and suggestions. Information gathered from the meeting will be summarized and taken to the CSCF advisory committee for discussion and planning.

In this talk Nicholas Harvey discusses the prevalence of randomized algorithms and their application to solving optimization problems on graphs; with startling results compared to deterministic algorithms.

For many problems, randomized algorithms are either the fastest algorithm or the simplest algorithm; sometimes they even provide the only known algorithm. Randomized algorithms have become so prevalent that deterministic algorithms could be viewed as a curious special case. In this talk I will describe some startling examples of randomized algorithms for solving some optimization problems on graphs.

Cairo is an open source, cross platform, vector graphics library with the ability to output to many kinds of surfaces, including PDF, SVG and PNG surfaces, as well as X-Window, Win32 and Quartz 2D backends. Unlike the raster graphics used with programmes and libraries such as The Gimp and ImageMagick, vector graphics are not defined by grids of pixels, but rather by a collection of drawing operations. These operations detail how to draw lines, fill shapes, and even set text to create the desired image. This has the advantages of being infinitely scalable, smaller in file size, and simpler to express within a computer programme. This talk will be an introduction to the concepts and metaphors used by vector graphics libraries in general and Cairo in particular.

Cairo is an open source, cross platform, vector graphics library with the ability to output to many kinds of surfaces, including PDF, SVG and PNG surfaces, as well as X-Window, Win32 and Quartz 2D backends. Unlike the raster graphics used with programmes and libraries such as The Gimp and ImageMagick, vector graphics are not defined by grids of pixels, but rather by a collection of drawing operations. These operations detail how to draw lines, fill shapes, and even set text to create the desired image. This has the advantages of being infinitely scalable, smaller in file size, and simpler to express within a computer programme. This talk will be an introduction to the concepts and metaphors used by vector graphics libraries in general and Cairo in particular.

New to Unix? No problem, we'll teach you to power use circles around your friends! The popular tutorial returns for a second session, in case you missed the first one.

New to Unix? No problem, we'll teach you to power use circles around your friends! The popular tutorial returns for a second session, in case you missed the first one.

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

New to Unix? No problem, we'll teach you to power use circles around your friends!

New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

Paul Lutus describes his early Apple II software development days, conducted from the far end of a 1200-foot power cord, in a tiny Oregon cabin. Paul describes how he wrote a best-seller (Apple Writer) in assembly language, while dealing with power outages, lightning storms and the occasional curious bear.

Paul Lutus describes his early Apple II software development days, conducted from the far end of a 1200-foot power cord, in a tiny Oregon cabin. Paul describes how he wrote a best-seller (Apple Writer) in assembly language, while dealing with power outages, lightning storms and the occasional curious bear.

Paul also describes his subsequent four-year solo around-the-world sail in a 31-foot boat. And be ready with your inquiries -- Paul will answer your questions.

Paul Lutus has a wide background in science and technology. He designed spacecraft components for the NASA Space Shuttle and created a mathematical model of the solar system used during the Viking Mars lander program. Then, at the beginning of the personal computer revolution, Lutus switched career paths and took up computer science. His best-known program is "Apple Writer," an internationally successful word processing program for the early Apple computers.

Geoffrey Hinton, from the University of Toronto and the Canadian Institute for Advanced Research, will discuss some of his latest work in learning networks and artificial intelligence. The talk will be accessable, so don't hesitate to come out. More information about Dr. Hinton's research can be found on his website.

Deep networks can be learned efficiently from unlabeled data. The layers of representation are learned one at a time using a simple learning module, called a "Restricted Boltzmann Machine" that has only one layer of latent variables. The values of the latent variables of one module form the data for training the next module. Although deep networks have been quite successful for tasks such as object recognition, information retrieval, and modeling motion capture data, the simple learning modules do not have multiplicative interactions which are very useful for some types of data.

The talk will show how a third-order energy function can be factorized to yield a simple learning module that retains advantageous properties of a Restricted Boltzmann Machine such as very simple exact inference and a very simple learning rule based on pair-wise statistics. The new module contains multiplicative interactions that are useful for a variety of unsupervised learning tasks. Researchers at the University of Toronto have been using this type of module to extract oriented energy from image patches and dense flow fields from image sequences. The new module can also be used to allow motions of a particular style to be achieved by blending autoregressive models of motion capture data.

Come on out to the club's termly end of term dinner, details in the abstract

The dinner will be potluck style at the Vice President's house, please RSVP (respond swiftly to the vice president) here if you plan on attending. If you don't know how to get there meet at the club office at 6:30 PM, a group will be leaving to lead you there.

A fevered night of code, friends, fun, energy drinks, and the CSC. Facebook will be around to bring some food and hang out.

Come join us for a night of coding. Get in touch with more experianced coders, advertize for/bug squash on your favourite open source project, write that personal project you were planning to do for a while but haven't found the time. Don't have any ideas but want to sit and hack? Try your hand at the Facebook puzzles, write a new app, or just chill and watch scifi.

To most CS students an OS kernel is pretty low level. But there is something even lower, the instructions that must be executed to get the CPU ready to accept a kernel. That is, if you look at any processor's reference manual there is a page or two describing the state of the CPU when it powered on. This talk describes what needs to happen next, up to the point where the first kernel instruction executes.

To most CS students an OS kernel is pretty low level. But there is something even lower, the instructions that must be executed to get the CPU ready to accept a kernel. That is, if you look at any processor's reference manual there is a page or two describing the state of the CPU when it powered on. This talk describes what needs to happen next, up to the point where the first kernel instruction executes.

This part of execution is extremely architecture-dependent. Those of you who have any experience with this aspect of CS probably know the x86 architecture, and think it's horrible, which it is. I am going to talk about the ARM architecture, which is inside almost all mobile phones, and which allows us to look at a simple implementation that includes all the essentials.

We're going to Dooly's to play pool. What more do you want from us? Come to the Club office and we'll all bus there together. We've got discount tables for club members so be sure to be there.

We're going to Dooly's to play pool. What more do you want from us? Come to the Club office and we'll all bus there together. We've got discount tables for club members so be sure to be there.

Come on out for a night of code, contests, and energy drinks. Join the Computer Scinece Club for the finale of the Google AI Challenge and an all night code party. Finish up your entry, or start it (its not too late). Not interested in the contest? Come out anyway for a night of coding and comradarie with us.

Come on out for a night of code, contests, and energy drinks. Join the Computer Scinece Club for the finale of the Google AI Challenge and an all night code party. Finish up your entry, or start it (its not too late). Not interested in the contest? Come out anyway for a night of coding and comradarie with us.

Included in the party will be the contest finale and awards cerimony, so if you've entered be sure to stick arround to collect the spoils of victory, or see just who that person you couldn't edge off is.

In this long-awaited third installment of the popular Unix Tutorials the friendly experts of the CSC will teach you the simple art of version control. You will learn the purpose and use of two different Version Control Systems (git and subversion). This tutorial will advise you in the discipline of managing the source code of your projects and enable you to quickly learn new Version Control Systems in the work place -- a skill that is much sought after by employers.

In this long-awaited third installment of the popular Unix Tutorials the friendly experts of the CSC will teach you the simple art of version control. You will learn the purpose and use of two different Version Control Systems (git and subversion). This tutorial will advise you in the discipline of managing the source code of your projects and enable you to quickly learn new Version Control Systems in the work place -- a skill that is much sought after by employers.

"Is Graduate School for You?" Get the answers to your grad school questions - and have a bite to eat, our treat

Join Prof. Greg Wilson, faculty member in the Software Engineering research group in the UofT's Department of Computer Science, as he gives insight into studying at the graduate level-what can be expected, what does UofT offer, is it right for you? Pizza and pop will be served. Come see what grad school is all about!. All undergraduate students are welcome; registration is not required.

For any questions about the program, visit UofT's website. This event is not run by the CS Club, and is announced here for the benefit of our members.

Interested in trying Linux but don't know where to start? Come to the Linux install fest to demo Linux, get help installing it on your computer, either stand alone or a dual boot, and help setting up your fresh install. Have lunch and hang around if you like, or just come in for a CD.

Interested in trying Linux but don't know where to start? Come to the Linux install fest to demo Linux, get help installing it on your computer, either stand alone or a dual boot, and help setting up your fresh install. Have lunch and hang around if you like, or just come in for a qick install.

The next installment in the CS Club's popular Unix tutorials UNIX 102 introduces powerful text editing tools for programming and document formatting.

Unix 102 is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix101 but still know your way around you should be fine. Topics covered include: "real" editors, document typesetting with LaTeX (great for assignments!), bulk editing, spellchecking, and printing in the student environment and elsewhere.

If you aren't interested or feel comfortable with these taskes, watch out for Unix 103 and 104 to get more depth in power programming tools on Unix.

Come learn how to write an intelligent game-playing program. No past experience necessary. Submit your program using the online web interface to watch it battle against other people's programs. Beginners and experts welcome! Prizes provided by google, including the delivery of your resume to google recruiters.

Come learn how to write an intelligent game-playing program. No past experience necessary. Submit your program using the online web interface to watch it battle against other people's programs. Beginners and experts welcome!

The contest is sponsored by Google, so be sure to compete for a chance to get noticed by them.

Prizes for the top programs:

  • $100 in Cash Prizes
  • Google t-shirts
  • Fame and recognition
  • Your resume directly to a Google recruiter

New to Unix? No problem, we'll teach you to power use circles around your friends!

New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

Nominations are open now, either place your name on the nominees board or e-mail the CRO to nominate someone for a position. Come to the Comfy Lounge to elect your fall term executive. Contact the CRO if you have questions.

In this long-awaited third installment of the popular Unix Tutorials the dark mages of the CSC will train you in the not-so-arcane magick of version control. You will learn the purpose and use of two different Version Control Systems (git and subversion). This tutorial will advise you in the discipline of managing the source code of your projects and enable you to quickly learn new Version Control Systems in the work place -- a skill that is much sought after by employers.

Have an assignment or project you need to work on? We will be coding from 7:00pm until 4:00am starting on Friday, July 17th in the Comfy lounge. Join us!

This talk provides a personal overview of the evolution of the undergraduate computer science curriculum at UW over the past forty years, concluding with an audience discussion of possible future developments.

Come and drink tea and read an academic CS paper with the Paper Club. We will be meeting from 4:30pm until 6:30pm on Monday, June 22th on the 4th floor of the MC (exact room number TBA). See http://csclub.uwaterloo.ca/~paper

The CSC will be playing pool at Dooly's. Join us for only a few dollars.

Have an assignment or project you need to work on? We will be coding from 7:00pm until 7:00am starting on Friday, June 5th in the Comfy lounge. Join us!

Need to use the UNIX environment for a course, want to overcome your fears of the command line, or just curious? Come and learn the arcane secrets of the UNIX command line interface from CSC mages. After this tutorial you will be comfortable with the essentials of navigating, manipulating and viewing files, and processing data at the UNIX shell prompt.

PHP Programming Contest Info Session

Port or create a new PHP web application and you could win a prize of up to $10k. Microsoft is running a programming contest for PHP developers willing to support the Windows platform. The contest is ongoing; this will be a short introduction to it by representatives of Microsoft and an opportunity to ask questions. Pizza and pop will be provided.

A talk by Craig S. Kaplan.

The combination of computer graphics, geometry, and rapid prototyping technology has created a wide range of exciting opportunities for using the computer as a medium for creative expression. In this talk, I will describe the most popular technologies for computer-aided manufacturing, discuss applications of these devices in art and design, and survey the work of contemporary artists working in the area (with a focus on mathematical art). The talk will be primarily non-technical, but I will mention some of the mathematical and computational techniques that come into play.

Join the Club That Really Likes Dinner for the End Of Term party! Inquire closer to the date for details.

This is not an official club event and receives no funding. Bring food, drinks, deserts, etc.

CSC Code Party! Same as always - no sleep, lots of caffeine, and really nerdy entertainment. Bonus: Free Cake!

This code party will have the usual, plus it will double as the closing of the programming contest. Our experts will be available to help you polish off your submission.

Come out and try your hand at writing a computer program that plays Minesweeper Flags, a two-player variant of the classic computer game, Minesweeper. Once you're done, your program will compete head-to-head against the other entries in a fierce Minesweeper Flags tournament. There will be a contest kick-off session on Thursday March 19 at 4:30 PM in room MC3036. Submissions will be accepted until Saturday March 28.

Come out and try your hand at writing a computer program that plays Minesweeper Flags, a two-player variant of the classic computer game, Minesweeper. Once you're done, your program will compete head-to-head against the other entries in a fierce Minesweeper Flags tournament. There will be a contest kick-off session on Thursday March 19 at 4:30 PM in room MC3036. Submissions will be accepted until Saturday March 28.

Come out and watch the SIGGRAPH (Special Interest Group on Graphics) conference video review. A video of insane, amazing, and mind blowing computer graphics. .

The ACM SIGGRAPH (Special Interest Group on Graphics) hosts a conference yearly in which the latest and greatest in computer graphics premier. They record video and as a result produce a very nice Video Review of the conference. Come join us watching these videos, as well as a few professors from the UW Computer Graphics Lab. There will be some kind of food and drink, and its guranteed to be dazzling.

See cutc.ca for more details.

The Canadian Undergraduate Technology Conference is Canada's largest student-run conference. From humble roots it has emerged as a venue that offers an environment for students to grow socially, academically, and professionally. We target to exceed our past record of 600 students from 47 respected institutions nationwide. The event mingles ambitious as well as talented students with leaders from academia and industry to offer memorable experiences and valuable opportunities.

Functional Lexing and Parsing

This talk will describe a non-traditional functional approach to the classical problems of lexing (breaking a stream of characters into "words" or tokens) and parsing (identifying tree structure in a stream of tokens based on a grammar, e.g. for a programming language that needs to be compiled or interpreted). The functional approach can clarify and organize a number of algorithms that tend to be opaque in their conventional imperative presentation. No prior background in functional programming, lexing, or parsing is assumed.

A brief intro to Quantum Computing and why it matters, followed by a talk on programming quantum computers. Meet at the CSC at 4:00PM for a guided walk to the RAC.

Raymond Laflamme is the director of the Institute for Quantum Computing at the University of Waterloo and holds the Canada Research Chair in Quantum Information. He will give a brief introduction to quantum computing and why it matters, followed by a talk on programming quantum computers. There will be tours of the IQC labs at the end, and pizza will be provided back at the CSC for all attendees.

Come join the CSC as we head to Dooly's.

Meet us at the Club office as we head to Dooly's for cheap tables and good times.

Continuing the popular Unix Tutorials with a rerun of 101 and the debut of 102.

Unix 101 is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh.

Unix 102 is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix101 but still know your way around you should be fine. Topics covered include: "real" editors, document typesetting with LaTeX (great for assignments!), bulk editing, spellchecking, and printing in the student environment and elsewhere.

If you aren't interested or feel comfortable with these taskes, watch out for Unix 103 and 104 to get more depth in power programming tools on Unix.

New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

There is a CSC Code Party starting at 7:00PM (19:00). Come out and enjoy some good old programming and meet others interested in writing code! Free energy drinks and snacks for all. Plus, we have lots of things that need to be done if you're looking for a project to work on!

Code Party. Awesome. Need we say more?

There is a CSC Code Party Tonight starting at 7:30PM (1930) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on the OpenMoko, creating music mixes, and other general classyness. If we manage to swing it, there will be delicious energy drinks for your consumption! Alternatively, if we don't we will have each other as well as some delicious tea and coffee. Perhaps a crumpet

There is a CSC Code Party Tonight starting at 7:30PM (1930) until we get bored (likely in the early in morning). Come out for fun hacking times, spreading Intertube memes (optional), hacking on the OpenMoko, creating music mixes, and other general classyness. If we manage to swing it, there will be delicious energy drinks for your consumption! Alternatively, if we don't we will have each other as well as some delicious tea and coffee. Perhaps a crumpet

The Free Software Movement and the GNU/Linux Operating System

Richard Stallman will speak about the Free Software Movement, which campaigns for freedom so that computer users can cooperate to control their own computing activities. The Free Software Movement developed the GNU operating system, often erroneously referred to as Linux, specifically to establish these freedoms.

About Richard Stallman: Richard Stallman launched the development of the GNU operating system (see www.gnu.org) in 1984. GNU is free software: everyone has the freedom to copy it and redistribute it, as well as to make changes either large or small. The GNU/Linux system, basically the GNU operating system with Linux added, is used on tens of millions of computers today. Stallman has received the ACM Grace Hopper Award, a MacArthur Foundation fellowship, the Electronic Frontier Foundation's Pioneer award, and the the Takeda Award for Social/Economic Betterment, as well as several honorary doctorates.

Joel Spolsky, of Joel on Software will be giving a talk entitled "Computer Science Education and the Software Industry".

About Joel Spolsky: Joel Spolsky is a globally-recognized expert on the software development process. His website Joel on Software (www.joelonsoftware.com) is popular with software developers around the world and has been translated into over thirty languages. As the founder of Fog Creek Software in New York City, he created FogBugz, a popular project management system for software teams. He is the co-creator of Stack Overflow, a programmer Q&A site. Joel has worked at Microsoft, where he designed VBA as a member of the Excel team, and at Juno Online Services, developing an Internet client used by millions. He has written four books: User Interface Design for Programmers (Apress, 2001), Joel on Software (Apress, 2004), More Joel on Software (Apress, 2008), and Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent (Apress, 2007). He also writes a monthly column for Inc Magazine. Joel holds a BS from Yale in Computer Science. Before college he served in the Israeli Defense Forces as a paratrooper, and he was one of the founders of Kibbutz Hanaton.

Winter Elections

Organized by Queen's students, Changing the World aims to bring together the world's greatest visionaries to inspire people to innovate and better our world. Among these speakers include Nobel Peace Prize winner, Eric Chivian. He was a recipient for his work on stopping nuclear war.

Organized by Queen's students, Changing the World aims to bring together the world's greatest visionaries to inspire people to innovate and better our world. Among these speakers include Nobel Peace Prize winner, Eric Chivian. He was a recipient for his work on stopping nuclear war.

The conference is modeled after TED (Technology, Entertainment, Design), an annual conference uniting the world's most fascinating thinkers and doers, and like TED, each speaker is given 18 minutes to give the talk of their lives.

Specifically for students in CS/Math, 50 tickets have been reserved (non-students: $500). For those who would like to attend, please pick up your ticket in the Computer Science Club office. The tickets are limited and they are first come first serve.

Come join the CSC in celebrating the new releases of Ubuntu Linux, Free BSD and Open BSD, and get a hand installing one of them on your own system.

Come join the CSC in celebrating the new releases of Ubuntu Linux, Free BSD and Open BSD, and get a hand installing one of them on your own system.

This is an event to celebrate the releases of new versions of Ubuntu Linux, OpenBSD, and FreeBSD. CDs will be available and everyone is invited to bring their PC or laptop to get help installing any of these Free operating systems. Knowledgeable CSC members will be available to help with any installation troubles, or to troubleshooting any existing problems that users may have.

This event will also promote gaming on Linux, as well as FLOSS (Free/Libre and Open Source Software) in general. We may also have a special guest (Ian Darwin, of OpenBSD and OpenMoko fame).

This talk will survey concepts, techniques, and languages for functional programming from both historical and contemporary perspectives, with reference to Lisp, Scheme, ML, Haskell, and Erlang. No prior background is assumed.

This talk will survey concepts, techniques, and languages for functional programming from both historical and contemporary perspectives, with reference to Lisp, Scheme, ML, Haskell, and Erlang. No prior background is assumed.

Come join us for a night of coding. Get in touch with more experianced coders, advertize for/bug squash on your favourite open source project, write that personal project you were planning to do for a while but haven't found the time. Don't have any ideas but want to sit and hack? We can find something for you to do.

A fevered night of code, friends, fun, free energy drinks, and the CSC.

Come out and watch the SIGGRAPH (Special Interest Group on Graphics) conference video review. A video of insane, amazing, and mind blowing computer graphics.

The ACM SIGGRAPH (Special Interest Group on Graphics) hosts a conference yearly in which the latest and greatest in computer graphics premier. They record video and as a result produce a very nice Video Review of the conference. Come join us watching these videos, as well as a few professors from the UW Computer Graphics Lab. There will be some kind of food and drink, and its guranteed to be dazzling.

Come out and meet other CSC members, find out about the CSC, meet the executive nominees, and join if you like what you see. Nominees should plan on attending.

Elections are scheduled for Tues, Sep 16 @ 4:30 pm in the comfy lounge. The nomination period closes on Mon, Sep 15 @ 4:30 pm. Nominations may be sent to cro@csclub.uwaterloo.ca. Candidates should not engage in campaigning after the nomination period has closed.

New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

New to Unix? No problem, we'll teach you to power use circles around your friends!

This first tutorial is an introduction to the Unix shell environment, both on the student servers and on other Unix environments. Topics covered include: using the shell, both basic interaction and advanced topics like scripting and job control, the filesystem and manipulating it, and ssh. If you feel you're already familiar with these topics don't hesitate to come to Unix 102 to learn about documents, editing, and other related tasks, or watch out for Unix 103 and 104 that get much more in depth into power programming tools on Unix.

Want more from Unix? No problem, we'll teach you to create and quickly edit high quality documents.

This is a follow up to Unix 101, requiring basic knowledge of the shell. If you missed Unix101 but still know your way around you should be fine. Topics covered include: "real" editors, document typesetting with LaTeX (great for assignments!), bulk editing, spellchecking, and printing in the student environment and elsewhere. If you aren't interested or feel comfortable with these taskes, watch out for Unix 103 and 104 to get more depth in power programming tools on Unix. If you don't think you're ready go to Unix 101 on Tuesday to get familiarized with the shell environment.

Juancho Buchanan, CTO Relic Entertainment

In this talk I will give an overview of the history of Relic and our development philosophy. The Talk will then proceed to talk about work that is being pursued in the area of early game prototyping with the introduction of game sketching methodology.

Bio: Fired from his first job for playing Video Games Juancho Buchanan is currently the director of Technology for Relic Entertainment. Juancho Buchanan Wrote his first game in 1984 but then pursued other interests which included a master's in Program Visualization, A Doctorate in Computer Graphics, a stint as a professor at the University of Alberta where he pioneered early work in Non photo realistic rendering, A stint at Electronic Arts as Director, Advanced Technology, A stint at EA as the University Liaison Dude, A stint at Carnegie Mellon University where he researched the Game Sketching idea. His current role at Relic has him working with the soon to be released Dawn of War II.

The second official general meeting of the term. Items on the adgenda are CSC Merch, upcoming talks, and other possible planned events, as well as the announcement of a librarian and planning of an office cleanout and a library organization day.

Tyler Lessard

Tyler Lessard from RIM will present a brief history of BlackBerry technology and will discuss how the evolution of BlackBerry as an end-to-end hardware, software and services platform has been instrumental to its success and growth in the market. Find out how the BlackBerry service components integrate with wireless carrier networks and get a sneak peek at where the wireless data market is going.

Raymond Laflamme

Information processing devices are pervasive in our society; from the 5 dollar watches to multi-billions satellite network. These devices have allowed the information revolution which is developing around us. It has transformed not only the way we communicate or entertain ourselves but also the way we do science and even the way we think. All this information is manipulated using the classical approximation to the laws of physics, but we know that there is a better approximation: the quantum mechanical laws. Would using quantum mechanics for information processing be an impediment or could it be an advantage? This is the fundamental question at the heart of quantum information processing (QIP). QIP is a young field with an incredible potential impact reaching from the way we understand fundamental physics to technological applications. I will give an overview of the Institute for Quantum Computing, comment on the effort in this field at Waterloo and in Canada and, time permitted visit some of the IQC labs.

Yes, we know this is Valentine's Day.

Contestants will be writing an artificial intelligence to play Risk. The prize will be awarded to the intelligence which wins the most head-to-head matches against competing entries. We're providing easy APIs for several languages, as well as full documentation of the game protocol so contestants can write wrappers for any additional language they wish to work in.

We officially support entries in Scheme, Perl, Java, C, and C++. If you would like help developing an API for some other language contact us through the systems committee mailing list (we will require that your API is made available to all entrants).

To kick off the contest we're hosting an in-house coding session starting at 4:00PM on Thursday, February 14th in MC2061. Members of our contest administration team will be available to help you work out the details of our APIs, answer questions, and provide the necessities of life (ie, pizza). Submissions will open no later than 5:00PM on February 14th and will close no earlier than 12:00PM on February 17th.

Visit our contest site here!

Elmer Horvath

The problem: coordinating and communicating between multiple processors in a distributed system (possibly containing heterogeneous elements)

The open source TIPC (transparent interprocess communication) protocol has been incorporated into the Linux kernel and is available in VxWorks and, soon, other OSes. This emerging protocol has a number of advantages in a clustered environment to simplify application development while maintaining a familiar socket programming interface. The service oriented capabilities of TIPC help in applications easily finding required services in a system. The location transparent aspect of TIPC allows services to be located anywhere in the system as well as allowing redundant services for both load reduction and backup. Learn about the emerging cluster protocol.

Elections are scheduled for Tues, Jan 15 @ 4:30 pm in the comfy lounge. The nomination period closes on Mon, Jan 14 @ 4:30 pm. Candidates should not engage in campaigning after the nomination period has closed.

There is a general meeting scheduled for Friday, October 19, 2007 at 17:00.

This is a chance to bring out any ideas and concerns about CSC happenings into the open, as well as a chance to make sure all CSC staff is up to speed on current CSC doings. The current agenda can be found at http://wiki.csclub.uwaterloo.ca/wiki/Friday_19_October_2007.

Susan Abramovitch

This talk is run by the School of Computer Science

How should virtual property created in games, such as weapons used in games like Mir 3 and real estate or clothing created or acquired in games like Second Life, be treated in law. Although the videogaming industry continues to multiply in value, virtual property created in virtual worlds has not been formally recognized by any North American court or legislature. A bridge has been taking shape from gaming's virtual economies to real world economies, for example, through unauthorized copying of designer clothes sold on Second Life for in-game cash, or real court damages awarded against deletion of player-earned swords in Mir 3. The trading of virtual property is important to a large number of people and property rights in virtual property are currently being recognized by some foreign legal bodies.

Susan Abramovitch will explain the legal considerations in determining how virtual property can or should be governed, and ways it can be legally similar to tangible property. Virtual property can carry both physical and intellectual property rights. Typically video game developers retain these rights via online agreements, but Ms. Abramovitch questions whether these rights are ultimately enforceable and will describe policy issues that may impact law makers in deciding how to treat virtual property under such agreements.

Brennan Taylor

A lecture on why functional languages are important, practical applications, and some neat examples. Starting with an introduction to basic functional programming with ML syntax, continuing with the strengths of OCaml and F#, followed by some exciting examples. Examples include GUI programming with F#, Web Crawlers with F#, and OpenGL/GTK programming with OCaml. This lecture aims to display how powerful functional languages can be.

Brennan Taylor

A lecture on the fundamentals of Pi-Calculus followed by an introduction to Join-Calculus in JoCaml with some great examples. Various concurrent control structures are explored, as well as the current limitations of JoCaml. The examples section will mostly be concurrent programming, however some basic distributed examples will be explored. This lecture focuses on how easy concurrent programming can be.

Ian Goldberg

Instant messaging (IM) is an increasingly popular mode of communication on the Internet. Although it is used for personal and private conversations, it is not at all a private medium. Not only are all of the messages unencrypted and unauthenticated, but they are all routedthrough a central server, forming a convenient interception point for an attacker. Users would benefit from being able to have truly private conversations over IM, combining the features of encryption, authentication, deniability, and forward secrecy, while working within their existing IM infrastructure.

In this talk, I will discuss "Off-the-Record Messaging" (OTR), a widely used software tool for secure and private instant messaging. I will outline the properties of Useful Security and Privacy Technologies that motivated OTR's design, compare it to other IM security mechanisms, and talk about its ongoing development directions.

Ian Goldberg is an Assistant Professor of Computer Science at the University of Waterloo, where he is a founding member of the Cryptography, Security, and Privacy (CrySP) research group. He holds a Ph.D. from the University of California, Berkeley, where he discovered serious weaknesses in a number of widely deployed security systems, including those used by cellular phones and wireless networks. He also studied systems for protecting the personal privacy of Internet users, which led to his role as Chief Scientist at Zero-Knowledge Systems (now known as Radialpoint), where he commercialized his research as the Freedom Network.

Andrei Barbu Andrei Barbu Haskell is a modern lazy, strongly typed functional language with type inferrence. This talk will focus on multiple monads, existential types, lambda expressions, infix operators and more. Along the way we'll see a parser and interpreter for lambda calculus using monadic parsers. STM, software transactional memory, a new approach to concurrency, will also be discussed. Before the end we'll also see the solution to an ACM problem to get a hands on feeling for the language. Don't worry if you haven't seen the first talk, you should be fine for this one anyway! Brennan Taylor

A lecture on the fundamentals of Pi-Calculus followed by an introduction to Join-Calculus in JoCaml with some great examples. Various concurrent control structures are explored, as well as the current limitations of JoCaml. The examples section will mostly be concurrent programming, however some basic distributed examples will be explored. This lecture focuses on how easy concurrent programming can be.

David Tenty

With today's fast growing linux user base, a large porportion of legacy applications have established open-source equivalents or ports. However, legacy games provided an intresting problem to gamers who might be inclinded to migrate to linux or other open platforms. PE executable translation software will be presented that provides a solution to this dilema and will be contrasted with the windows compatiblity framwork Wine. Postponed to a later date.

Win Prizes!

The Computer Science club is holding a programming contest from 1:00 to 6:30 open to all! C++,C,Perl,Scheme are allowed. Prizes totalling in value of $75 will be distributed. You can participate online! For more information, including source files visit http://www.csclub.uwaterloo.ca/contest

And Free Pizzaa for all who attend!

Multi-Player Gaming with Linux [Possibly Pizza!]

Come out for multi-player gaming on Linux. If you don't have linux on your machine, we will have LiveCDs available. Lots of fun! Possible Pizzaa!

Brennan Taylor

A quick introduction on the current state of distributed programming and various grid computing projects. Followed by some history and features of the Erlang language and finishing with distributed examples including operating on a cluster.

Holden Karau

An overview on Google Summer of Code 2007. This talk will look at some of the Summer of Code projects, the project organization, etc.

Holden Karau participated in Google Summer of Code 2007 as a student on the subversion team. He created a set of scheme bindings for the subversion project.

Bjarne Stroustrup

A good programming language is far more than a simple collection of features. My ideal is to provide a set of facilities that smoothly work together to support design and programming styles of a generality beyond my imagination. Here, I briefly outline rules of thumb (guidelines, principles) that are being applied in the design of C++0x. Then, I present the state of the standards process (we are aiming for C++09) and give examples of a few of the proposals such as concepts, generalized initialization, being considered in the ISO C++ standards committee. Since there are far more proposals than could be presented in an hour, I'll take questions.

Richard Stallman

Copyright developed in the age of the printing press, and was designed to fit with the system of centralized copying imposed by the printing press. But the copyright system does not fit well with computer networks, and only draconian punishments can enforce it.

The global corporations that profit from copyright are lobbying for draconian punishments, and to increase their copyright powers, while suppressing public access to technology. But if we seriously hope to serve the only legitimate purpose of copyright--to promote progress, for the benefit of the public--then we must make changes in the other direction.

The CSC would like to thank MEF and Mathsoc for funding this talk.

The Freedom Software Foundation's description
FSF's anti-DRM campaign
Why you shouldn't use Microsoft Vista
The GNU's Not Unix Project

A talk by Michael Terry

What is the typical monitor resolution of a GIMP user? How many monitors do they have? What size images do they work on? How many layers are in their images? The answers to these questions are generally unknown: No means currently exist for open source applications to collect usage data. In this talk, I will present ingimp, a version of GIMP that has been instrumented to automatically collect usage data from real-world users. I will discuss ingimp's design, the type of data we collect, how we make the data available on the web, and initial results that begin to answer the motivating questions.

ingimp can be found at http://www.ingimp.org.

Ken Ho

E-mail transactions and confirmations have become commonplace and the information therein can often be sensitive. We use email for purposes as mundane as inbound marketing, to as sensitive as account passwords and financial transactions. And nearly all our email is sent in clear text; we trust only that others will not eavesdrop or modify our messages. But why rely on the goodness or apathy of your fellow man when you can ensure your message's confidentiality with encryption so strong not even the NSA can break? Speaker (Kenneth Ho) will discuss email encryption, and GNU Privacy Guard to ensure that your messages are sent, knowing that only your intended recipient can receive it.

An optional code-signing party will be held immediately afterwards; if you already have a PGP or GPG key and wish to participate, please submit the public key to gpg-keys@csclub.uwaterloo.ca.

Laptop users are invited also to participate in key-pair sharing on-site, though it is preferable to send keys ahead of time.

Peter Macdonald

The purpose of the talk is to address how students interact with the internet, and possibilities for how they could do so more efficiently. Information on events and happenings on UW campus is currently hosted on a desperate, series of internet applications. Interactions with WatSFIC is done over a Yahoo! mailing list, GLOW is organized through a Facebook group, campus information at large comes from imprint.uwaterloo.ca. There has been historical pressures from various bodies, including some thinkers in feds and the administration, to centralize these issues. To create a one stop shop for students on campus.

It is not through confining data in cages that we will finally link all student activities together, instead it is by truly freeing it. When data can be anywhere, then it will be everywhere students need it. This is the underlying concept behind metadata, data that is freed from the confines of it's technical imprisonment. Metadata is the extension of people, organizations, and activities onto the internet in a way that is above the traditional understanding of how people interact with their networks. The talk will explore how Metadata can exist freely on the internet, how this affects concepts like Web 3.0, and how the university and the federation are poised to take advantage of this burgeoning new technology through adoptions of portals which will allow students to interact with a metaverse of data.

A talk by Richard M. Stallman (RMS) [CANCELLED]

Richard Stallman has cancelled his trip to Canada.

A talk by Simina Branzei

Abstract coming soon!

Bill Gates is coming to visit the CSClub

While reading Slashdot, Bill came across the recently digitized audio recording of his 1989 talk at the Computer Science Club. As Bill has always had a soft-spot for the Computer Science Club, he has decided to pay us a surprise visit.

Bill promises to give away free copies of Windows Vista Ultimate, because frankly, nobody here (except j2simpso) wants to pay for a frisbee. Be sure to bring your resumes kids, because Bill will be recruiting for some exciting new positions at Microsoft, including Mindless Drone, Junior Code Monkey, and Assistant Human Cannonball.

A talk by David Tenty and Alex Parent

Coming Soon!

A demo/introduction to a new source code search engine. A talk by Holden Karau

Source code search engines are a relatively new phenomenon . The general idea of most source code search engines is helping programmers find pre-existing code. So if you were writing some code and you wanted to find a csv library, for example, you could search for csv. All The Code is a next generation source code search engine. Unlike earlier generations of source code search engines, it considers how code is used to help determine relevance of code.

The talk will primarily be a demo of All The Code, along with a brief discussion of some of the technology behind it.

A talk by Michael Biggs. This talk is RESCHEDULED due to unexpected circumstances

I am going to take an intuitive, CS-style approach to a discussion about the use of kernels in modern data analysis. This approach often lends us efficient ways to consider a dataset under various choices of inner product, which is roughly comparable to a measure of "similarity". Many new tools in AI arise from kernel methods, such as the infamous Support Vector Machines for classification, and kernel-PCA for nonlinear dimensionality reduction. I will attempt to highlight, and provide visualization for some of the math involved in these methods while keeping the material at an accessible, undergraduate level.

A talk by Alex Ionescu

The ReactOS operating system has been in development for over eight years and aims to provide users with a fully functional and Windows-compatible distribution under the GPL license. ReactOS comes with its own Windows 2003-based kernel and system utilities and applications, resulting in an environment identical to Windows, both visually and internally.

More than just an alternative to Windows, ReactOS is a powerful platform for academia, allowing students to learn a variety of skills useful to software testing, development and management, as well as providing a rich and clean implementation of Windows NT, with a kernel compatible to published internals book on the subject.

This talk will introduce the ReactOS project, as well as the various software engineering challenges behind it. The building platform and development philosophies and utilities will be shown, and attendees will grasp the vast amount of effort and organization that needs to go into building an operating system or any other similarly large project. The speaker will gladly answer questions related to his background, experience and interests and information on joining the project, as well as any other related information.

Speaker Bio

Alex Ionescu is currently studying in Software Engineering at Concordia University in Montreal, Quebec and is a Microsoft Technical Student Ambassador. He is the lead kernel developer of the ReactOS Project and project leader of TinyKRNL. He regularly speaks at Linux and Open Source conferences around the world and will be a lecturer at the 8th International Free Software Forum in Brazil this April, as well as providing hands-on workshops and lectures on Windows NT internals and security to various companies.

A talk by James deBoer

This talk will introduce the Haskell programming language and and walk through building a recognizer for regular languages. The talk will include a quick overview of regular expressions, an introduction to Haskell and finally a line by line analysis of a regular language recognizer.

A talk by Chris "The Prof" Evensen

A talk for those interested in 3-dimensional graphics but unsure of where to start. Covers the basic math and theory behind projecting 3-dimensional polygons on screen, as well as simple cropping techniques to improve efficiency. Translation and rotation of polygons will also be discussed.

A talk by James Simpson

A common misconception amongst software developers is that top quality software encompasses certain platforms, is driven by a particular new piece of technology, or relies solely on a particular programming language. However as developers we tend to miss the less hyped issues and techniques involved in writing world class software. These techniques are universal to all programming languages, platforms and deployed technologies but are often times viewed as being so obvious that they are ignored by the typical developer. The topics covered in this lecture will include:

- Writing bug-free to extremely low bug count software in real-time
- The concept of single-source, universal platform software
- Programming language interoperability

... and other less hyped yet vitally important concepts to writing World Class Software

A talk by Larry Smith

A discussion of software start-ups founded by UW students and what they did that helped them grow and what failed to help. In order to share the most insights and guard the confidences of the individuals involved, none of the companies will be identified.

How a Waterloo software company is changing the way people program computers. A talk by Stefanus Du Toit

For decades, mainstream parallel processing has been thought of as inevitable. Up until recent years, however, improvements in manufacturing processes and increases in clock speed have provided software with free Moore's Law-scale performance improvements on traditional single-core CPUs. As per-core CPU speed increases have slowed to a halt, processor vendors are embracing parallelism by multiplying the number of cores on CPUs, following what Graphics Processing Unit (GPU) vendors have been doing for years. The Multi- core revolution promises to provide unparalleled increases in performance, but it comes with a catch: traditional serial programming methods are not at all suited to programming these processors and methods such as multi-threading are cumbersome and rarely scale beyond a few cores. Learn how, with hundreds of cores in desktop computers on the horizon, a local software company is looking to revolutionize the way software is written to deliver on the promise multi-core holds.

Refreshments (and possible pizza!) will be provided.

A talk by Reg Quinton

IST monitors the campus network for vulnerabilities and scans systems for security problems. This informal presentation will look behind the scenes to show the strategies and technologies used and to show the problem magnitude. We will review the IST Security web site with an emphasis on these pages

http://ist.uwaterloo.ca/security/vulnerable/
http://ist.uwaterloo.ca/security/security-wg/reports/20061101.html
http://ist.uwaterloo.ca/security/position/20050524/

Come out for the Club that Really Likes Dinner

Summer: the sparrows whistle through the teapot-steam breeze. The ubiquitous construction team tears the same pavement up for the third time, hammering passers-by with dust and noise: our shirts, worn for the third time, noisome from competing heat and shame. As Nature continues her Keynesian rotation of policy, and as society decrees yet another parting of ways, it is proper for the common victims to have an evening to themselves, looking both back and ahead, imagining new opportunities, and recognising those long since missed. God fucking damn it.

This term's CTRL-D end-of-term dinner is taking place tomorrow (Saturday) at 7:00 P.M. at East Side Mario's, in the plaza. Meet in the C.S.C. fifteen minutes beforehand, so they don't take away our seats or anything nasty like that.

A lot of people wanted to go to the Mongolian Grill, but I'm pretty sure this place has a similar price-to-tasty ratio; what's more, they'll actually grant us a reservation more than four nights a week. I've confirmed that the crazy allergenic peanuts no longer exist (sad), and they have a good vegetarian selection, which is likely coincides with their kosher and halal menus.

Come out for the tasty and the awesome! If you pretend it's your birthday, everyone's a loser! Tell your friends, because I told the telephone I wanted to reserve for 10 to 12 people, and I don't wish to sully Calum T. Dalek's good name!

Come out for some retro Amiga-style Lemmings gaming action!

Does being in CS make you feel like a lemming? Is linear algebra driving you into walls? Do you pace back and forth, constantly, regardless of whatever's in your path? Then you should come out to CSC Lemmings Day. This time, we're playing the pseudo-sequel: Oh No! More Lemmings!

  • Old-skool retro gaming, Amiga-style (2 mice, 2 players!)
  • Projector screen: the pixels are man-sized!
  • Enjoy classic Lemmings tunes
A part of Linux Awareness Week

The Computer Science Club is once again stepping forward to fulfill its ancient duty to the people-this time by installing one of the many fine distributions of Linux for you.

Ubuntu? Debian? Gentoo? Fedora? We might not have them all, but we seem to have an awful lot! Bring your boxen down to the D.C. Fishbowl for the awesome!

Install Linux on your machine-install fear in your opponents!

or How communities of interest drive modern software development.

Simon Law leads the Quality teams for Ubuntu, a free-software operating system built on Debian GNU/Linux. As such, he leads one of the largest community-based testing efforts for a software product. This does get a bit busy sometimes.

In this talk, we'll be exploring how the Internet is changing how software is developed. Concepts like open source and technologies like message forums are blurring the lines between producer and consumer. And this melting pot of people is causing people to take note, and changing the way they sling code.

Co-Sponsored with CS-Commons Committee

The Computer Science Club will be showing March of the Penguins

March of the Penguins , an epic nature documentary, as dictated by some guy with a funny voice is being shown by the Computer Science club because penguins are cute and were bored [that and the whole Linux awareness week that forgot to tell people about].

Albert O'Connor will be introducing the joys of programming in python

Albert O'Connor, a UW grad, will be giving a ~30 minute talk on introducing the joys of programming python. Python is an open source object-oriented programming language which is most awesome.

Alex Tsay will look at the common hack used to simulate multi-processing in a real time embedded environment.

In an embedded environment resources are fairly limited, especially. Typically an embedded system has strict time constraints in which it must respond to hardware driven interrupts and do some processing of its own. A full fledged OS would consume most of the available resources, hence crazy hacks must be used to get the benefits without paying the high costs. This talk will look at the common hack used to simulate multi-processing in a real time embedded environment.

Simon Woodside, founder of Semacode, comes to discuss image what it is like to start a business and how imaging code works

Could you write a good image recognizer for a 100 MHz mobile phone processor with 1 MB heap, 320x240 image, on a poorly-optimized Java stack? It needs to locate and read two-dimensional barcodes made up of square modules which might be no more than a few pixels in size. We had to do that in order to establish Semacode, a local start up company that makes a software barcode reader for cell phones. The applications vary from ubiquitous computing to advertising. Simon Woodside (founder) will discuss what it's like to start a business and how the imaging code works.

Come out to discuss current & future plans/projects for the Club

The Computer Science Club (CSClub) has "new" DEC Alphas which are most awesome. Come out, help take them part, put them back together, solder, and eat free food (probably pizza).

Come out to discuss current & future plans/projects for the Club

The venue will include:

  • Computer usage agreement discussion (Holden has some changes he'd like to propose)

  • Web site - Juti is redesigning the web site (you can see a beta here - ideas are welcome.

  • Frosh Linux cd's that could be put in frosh math faculty kits.

  • VoIP "not phone services" ideas.

  • Ideas for talks (people, topics, etc...). We requested Steve Jobs and Steve Balmer, so no idea is too crazy.

  • Ideas for books.

  • General improvements/comments for the club.

If you have ideas, but can't attend, please email them to president@csclub.uwaterloo.ca and they will be read them at the meeting.

Eighteen Years in the Software Tools Business at Microsoft, a talk by Rico Mariani, (BMath CS/EEE 1988)

Rico Mariani, (BMath CS/EEE 1988) now an (almost) 18 year Microsoft veteran but then a CSC president comes to talk to us about the evolution of software tools for microcomputers. This talk promises to be a little bit about history and perspective (at least from the Microsoft side of things) as well as the evolution of software engineers, different types of programmers and their needs, and what it's like to try to make the software industry more effective at what it does, and sometimes succeed!

A video of the talk is available for download in our media section.

Unix 101 and 102 recording

Have you heard of our famous Unix 101 and Unix 102 tutorials. We've decided to try and put them on the web. This Sunday we will be doing a first take. At the same time, we're going to be looking at adding new material that we haven't covered in the past.

Why should you come out? Not only will you get to hang out with a wonderful group of people, you can help impart your knowledge to the world. Don't know anything about Unix? That's cool too, we need people to make sure its easy to follow along and hopefully keep us from leaving something out by mistake.

We don't know enough about V4L

We don't know Video 4 Linux, but increasingly people are wanting to do interesting stuff with our webcam which could benefit from a better understanding of Video 4 Linux. So, this Saturday a number of us will be trying to learn as much as possible about Video 4 Linux and doing weird things with webcam(s).

Come out and vote for the Spring 2006 executive!

The Computer Science Club will be holding its elections for the Spring 2006 term on Monday, May 8th. The elections will be held at 4:30 PM in the Comfy Lounge, on the 3rd floor of the MC. Please remember to come out and vote!

We are accepting nominations for the following positions: President, Vice-President, Treasurer, and Secretary. The nomination period continues until 4:30 PM on Sunday, May 7th. If you are interested in running for a position, or would like to nominate someone else, please email cro@csclub.uwaterloo.ca before the deadline.

A talk by Larry Smith

A discussion of how software creators can identify application opportunities that offer the promise of great social and commercial significance. Particular attention will be paid to the challenge of acquiring cross domain knowledge and setting up effective collaboration.

Come out and meet your professors. Free food provided!

Come out and meet your professors! This is a great opportunity to mingle with your professors before midterms or find out who you might have for future courses. All are welcome!

Best of all, there will be free food!

You can pick up invitations for your professors at the Computer Science Club office in MC 3036.

Pints with Profs will be held this term on Thursday, 9 February 2006 from 5:30 to 8:00 PM in the Bombshelter.

Come out, program, and win shiny things!

The Computer Science club is holding a programming contest open to all students on Tuesday the 29th of November at 5:30PM. C++,C,Perl,Scheme* are allowed. Prizes totalling in value of $75 will be distributed.

And best of all... free food!!!

Get to know your profs and be the envy of your friends!

Come out and meet your professors!! This is a great opportunity to meet professors for Undergraduate Research jobs or to find out who you might have for future courses. One and all are welcome!

And best of all... free food!!!

You Too Can Be a Unix Taskmaster

This is the third in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this tutorial.

Topics that will be discussed include:

  • Shell scripting
  • Searching through text files
  • Batch editing text files

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Fun with Unix

This is the second in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text using the vi text editor
  • Editing text using the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

First UNIX tutorial

The CSC UNIX tutorials are intended to help first year CS and other interested learn UNIX and the CS UNIX environment.

This is the first in a series of two or three tutorials. It will cover basic shell use, and simple text editors.

Shriram Krishnamurthi will be talking about continuations in Web Programming

Server-side Web applications have grown increasingly common, sometimes even replacing brick and mortar as the principal interface of corporations. Correspondingly, Web browsers grow ever more powerful, empowering users to attach bookmarks, switch between pages, clone windows, and so forth. As a result, Web interactions are not straight-line dialogs but complex nets of interaction steps.

In practice, programmers are unaware of or are unable to handle these nets of interaction, making the Web interfaces of even major organizations buggy and thus unreliable. Even when programmers do address these constraints, the resulting programs have a seemingly mangled structure, making them difficult to develop and hard to maintain.

In this talk, I will describe these interactions and then show how programming language ideas can shed light on the resulting problems and present solutions at various levels. I will also describe some challenges these programs pose to computer-aided verification, and present solutions to these problems.

Come out to here Prabhakar Ragde talk about our UW's CS curriculum

I'll survey the evolution of our computer science curriculum over the past thirty-five years to try to convey the reasons (not always entirely rational) behind our current mix of courses and their division into core and optional. After some remarks about constraints and opportunities in the near future, I'll open the floor to discussion, and hope to hear some candid comments about the state of CS at UW and how it might be improved.

About the speaker:

Prabhakar Ragde is a Professor in the School of Computer Science at UW. He was Associate Chair for Curricula during the period that saw the creation of the Bioinformatics and Software Engineering programs, the creation of the BCS degree, and the strengthening of the BMath/CS degree.

Come out for some retro Amiga-style Lemmings gaming action!

Does being in CS make you feel like a lemming? Is linear algebra driving you into walls? Do you pace back and forth, constantly, regardless of whatever's in your path? Then you should come out to CSC Lemmings Day. This time, we're playing the pseudo-sequel: Oh No! More Lemmings!

  • Old-skool retro gaming, Amiga-style (2 mice, 2 players!)
  • Projector screen: the pixels are man-sized!
  • Live-Action Lemmings (the rules are better this time)
  • Lemmings look-alike contest
  • Enjoy classic Lemmings tunes
Fun with Unix

This is the second in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text using the vi text editor
  • Editing text using the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

First UNIX tutorial

The CSC UNIX tutorials are intended to help first year CS and other interested learn UNIX and the CS UNIX environment.

This is the first in a series of two or three tutorials. It will cover basic shell use, and simple text editors.

Come out and vote for the Winter 2005 executive!

The Computer Science Club will be holding its elections for the Winter 2005 term on Thursday, January 13. The elections will be held at 4:30 PM in the Comfy Lounge, on the 3rd floor of the MC. Please remember to come out and vote!

We are accepting nominations for the following positions: President, Vice-President, Treasurer, and Secretary. The nomination period continues until 4:30 PM on Wednesday, January 12. If you are interested in running for a position, or would like to nominate someone else, please email cro@csclub.uwaterloo.ca before the deadline.

This semesters CTRL-D (or the club that really likes dinner) is going to be at Mongolian grill. Be there or be square

Come to the end of term CTRL-D (club that really likes dinner) meeting. Remember : food is good

In this talk, I'll study linkages (objects built from sticks that are connected with flexible joints), and explain some interesting examples that can or cannot be straightened out

In this talk, I'll study linkages (objects built from sticks that are connected with flexible joints), and explain some interesting examples that can or cannot be straightened out

How I Stopped Worrying and Learned to Love the IDE

How I stopped worrying and Learned to Love the IDE

Audience: anyone who as ever used the Java programming language to do anything. Especially if you don't like the IDEs you've seen so far or still use (g)Vi(m) or (X)Emacs.

I'll go through some of the coolest features of the best IDE (which stands for "IDEs Don't Eat" or "Integrated Development Environment") I've seen. For the first year and seasoned almost-grad alike!

Wiki software in PHP+MySQL

GracefulTavi is an open source wiki programmed by Net Integration Technologies Inc. It is used internally by more than 25 people, and is the primary internal wiki for NITI's R&D and QA.

I'll start with a very brief introduction to wikis in general, then show off our special features: super-condensed formatting syntax, hierarchy management, version control, highlighted diffs, SchedUlator, the Table of Contents generator. As part of this, we'll explain the simple plugin architecture and show people how to write a basic wiki plugin.

As well, I will show some of the "waterloo specific" macros that have been coded, and explain future plans for GracefulTavi.

If time permits, I will explain how gracefulTavi can be easily used for a personal calendar and notepad system on your laptop.

Everyone else is doing it!

Does being in CS make you feel like a lemming? Is linear algebra driving you into walls? Do you pace back and forth , constantly , regardless of whatever's in your path? Then you should come out to CSC Lemmings Day!

  • Play some old-skool Lemmings, Amiga-style
  • Live-action lemmings
  • Lemmings look-alike contest
  • Enjoy classic Lemmings tunes

Everyone else is doing it!

CSC Programming Contest

The Computer Science Club will be hosting a programming competition. You have the entire afternoon to design and implement an AI for a simple game. The competition will run until 5pm.

You Too Can Be a Unix Taskmaster

This is the third in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this tutorial.

Topics that will be discussed include:

  • Shell scripting
  • Searching through text files
  • Batch editing text files

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Fun with Unix

This is the second in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text using the vi text editor
  • Editing text using the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

First UNIX tutorial

The CSC UNIX tutorials are intended to help first year CS and other interested learn UNIX and the CS UNIX environment.

This is the first in a series of three tutorials. It will cover basic shell use, and simple text editors.

Come out and vote for the Fall 2004 executive!

The Computer Science Club will be holding its elections for the Fall 2004 term on Friday, September 17. The elections will be held at 4:00 PM in the Comfy Lounge, on the 3rd floor of the MC. Please remember to come out and vote!

We are accepting nominations for the following positions: President, Vice-President, Treasurer, and Secretary. The nomination period continues until 4:30 PM on Thursday, September 16. If you are interested in running for a position, or would like to nominate someone else, please email cro@csclub.uwaterloo.ca before the deadline.

Attention AI buffs: Game Complexity presentation

Why are some games hard to play well? The study of computational complexity gives one answer: the games encode long computations.

Any computation can be interpreted as an abstract game. Playing the game perfectly requires performing the computation. Remarkably, some natural games can encode these abstract games and thus simulate general computations. The more complex the game, the more complex the computations it can encode; games that can encode intractable problems are themselves intractable.

I will describe how games can encode computations, and discuss some examples of both provably hard games (checkers, chess, go, etc.) and games that are believed to be hard (hex, jigsaw puzzles, etc.).

Come and learn how to make your computer 1337!

Are you bored of beige?
Tired of an overheating computer?
Is your computer's noise level on par with a jet engine?

Got a nifty modded case?
Want one?

The Computer Science Club will be holding a Case Modding Workshop to help answer these questions.

There will be demonstrations on how to make a case window, how to paint your case, managing cables and keeping your computer quiet and cool.

The event is FREE and there will be FREE PIZZA. All are welcome!

To help you on your way to getting a wicked computer case, we have a limited number of "Case Modding Starters Kits" available. They come with an LED fan, a fan grill, a sheet of Plexan, thumbscrews, wire ties, and more! They're only $10 and will be on sale at the event. Here's a picture.

If you already have a modded case, we encourage you to bring it out and show it off! There will be a prize for the best case!!

We hope to see you there!

This event is sponsored by Bigfoot Computers.

A talk by Richard Mann; School of Computer Science

When an observer moves through a 3D scene, nearby surfaces move faster in the image than do distant surfaces. This effect, called motion parallax, provides an observer with information both about their own motion relative the scene, and about the spatial layout and depth of surfaces in the scene.

Classical methods for measuring image motion by computer have concentrated on the cases of optical flow in which the motion field is continuous, or layered motion in which the motion field is piecewise continuous. Here we introduce a third natural category which we call ``optical snow''. Optical snow arises in many natural situations such as camera motion in a highly cluttered 3-D scene, or a passive observer watching a snowfall. Optical snow yields dense motion parallax with depth discontinuities occurring near all image points. As such, constraints on smoothness or even smoothness in layers do not apply.

We present a Fourier analysis of optical snow. In particular we show that, while such scenes appear complex in the time domain, there is a simple structure in the frequency domain, and this may be used to determine the direction of motion and the range of depths of objects in the scenes. Finally we show how Fourier analysis of two or more image regions may be combined to estimate heading direction.

This talk will present current research at the undergraduate level. All are welcome to attend.

A talk by Larry Smith

Larry will challenge conventional assumptions about the directions of computing and software. The role of AI, expert systems, communications software and business applications will be presented both from a functional and commercial point of view. The great gaps in the marketplace will be highlighted, together with an indication of how these vacant fields will become home to new empires.

Come out and vote for the Spring 2004 executive!

The Computer Science Club will be holding its elections for the Spring 2004 term on Wednesday, May 12. The elections will be held at 4:30 PM in the Comfy Lounge, on the 3rd floor of the MC. Please remember to come out and vote!

We are accepting nominations for the following positions: President, Vice-President, Treasurer, and Secretary. The nomination period continues until 4:30 PM on Tuesday, May 11. If you are interested in running for a position, or would like to nominate someone else, please email cro@csclub.uwaterloo.ca before the deadline.

A talk by Simon Law

The work report is a familiar chore for any co-op student. Not only is there a report to write, but to add insult to injury, your report is returned if you do not follow your departmental guidelines.

Fear no more! In this talk, you will learn how to use LaTeX and a specially developed class to automatically format your work reports. This talk is especially useful to Mathematics, Computer Science, Electrical & Computer Engineering, and Software Engineeering co-op students about to go on work term.

Get to know your profs and be the envy of your friends!

Come out and meet your professors!! This is a great opportunity to meet professors for Undergraduate Research jobs or to find out who you might have for future courses. One and all are welcome!

And best of all... free food!!!

A talk by Simon Law

LaTeX is a document processing system. What this means is you describe the structure of your document, and LaTeX typesets it appealingly. However, LaTeX was developed in the late-80s and is now showing its age.

How does it compete against modern systems? By being easily extensible, of course. This talk will describe the fundamentals of typesetting in LaTeX, and will then show you how to extend it with freely available packages. You will learn how to teach yourself LaTeX and how to find extensions that do what you want.

As well, there will be a short introduction on creating your own packages, for your own personal use.

A talk by Simon Law

If you've ever worked with other group members, you know how difficult it is to code simultaneously. You might be working on one part of your assignment, and you need to send your source code to everyone else. Or you might be fixing a bug in someone else's part, and need to merge in the change. What a mess!

This talk will explain some Best Practices for developing code in a distributed fashion. Whether you're working side-by-side in the lab, or developing from home, these methods can apply to your team. You will learn how to apply these techniques in the Unix environment using GNU Make, CVS, GNU diff and patch.

A talk by James Morrison

Making a compiler? Bored? Think CISC sucks and RISC rules?

This talk will run through the SPARC v8, IEEE-P1754, architecture. Including all the fun that can be had with register windows and the SPARC instruction set including the basic instructions, floating point instructions, and vector instructions.

A talk by Simon Law

If you have used Unix for a while, you know that you've created configuration files, or dotfiles. Each program seems to want its own particular settings, and you want to customize your environment. In a power-user's directory, you could have hundreds of these files.

Isn't it annoying to migrate your configuration if you login to another machine? What if you build a new computer? Or perhaps you made a mistake to one of your configuration files, and want to undo it?

In this talk, I will show you how to manage your home directory using CVS, the Concurrent Versions System. You can manage your files, revert to old versions in the past, and even send them over the network to another machine. I'll also discuss how to keep your configuration files portable, so they'll work even on different Unices, with different software installed.

A talk by Simon Law

In today's world, people have hundreds of connexions. And you can express these connexions with a graph. For instance, you may wish to represent the network of your friends.

Originally, webs-of-trust were directed acyclic graphs of people who had identified each other. This way, if there was a path between you and the person who want to identify, then you could assume that each person along that path had verified the next person's identity.

I will show you how to generate your own web-of-trust graph using Free Software. Of course, you can also use this knowledge to graph anything you like.

Perl Modules: A look under the hood

In Perl, a module is the basic unit of code-reuse. The talk will be mostly a look into GD::Text::Arc, a module written to draw TrueType text around the edge of a circle. The talk will consider:

  • using and writing object-oriented perl code
  • the Virtue of Laziness: or, reusing other peoples' code.
  • writing tests while coding
  • beer coasters
Vote to change the CSC Constitution

During the General Meeting on 19 January 2004, a proposed constitution change was passed around. This change is in response to a change in the MathSoc Clubs Policy (Policy 4, Section 3, Sub-section f).

This general meeting is called to vote on this proposed change. We must have quorum of 15 Full Members vote on this change. The following text was presented at the CSC Winter 2004 Elections.

We propose to make a Constitutional change on this day, 19 January 2004.
The proposed change is to section 3.1 of the constitution which
currently reads:

    In compliance with MathSoc regulations and in recognition of the
    club being primarily targeted at undergraduate students, full
    membership is open to all undergraduate students in the Faculty of
    Mathematics and restricted to the same.

Since MathSoc has changed its requirements for club membership, we
propose that it be changed to:

    In compliance with MathSoc regulations and in recognition of the
    club being primarily targeted at undergraduate students, full
    membership is open to all Social Members of the Mathematics Society
    and restricted to the same.
See http://uw-dig.uwaterloo.ca/installfest/

An Installfest is an opportunity to install software on your computer. People come with computers. Other people come with experience. The people get together and (when all goes well) everybody leaves satisfied.

You are invited to our first installfest of the year. Come to get some software or to learn more about Open Source Software and why it is relevant to your life. The event is free, but you may want to bring blank CDs and/or money to purchase some open source action for your computer at home.

See the UW-DIG website for more details.

Free and Open Source software has been around for a long time, even longer then shrink-wrapped code.

Free and Open Source software has been around for a long time, even longer then shrink-wrapped code. It has a long and noble history in the annals of education. Even more than ever, due to the drop of hardware prices and the increase of worldwide communications, Free and Open Source can open new avenues of teaching and doing research, not only in computer science, but in other university fields as well.

Learn how Linux as an operating system can run on anything from a PDA to a supercomputer, and how Linux is reducing the cost of computing dramatically as the fastest growing operating system in the world. Learn how other Free and Open Source projects, such as office suites, audio and video editing and playing software, relational databases, etc. are created and are freely available.

Map and directions

Speaker's Biography

Jon "maddog" Hall is the Executive Director of Linux International, a non-profit association of computer vendors who wish to support and promote the Linux Operating System. During his career which spans over thirty years, Mr. Hall has been a programmer, systems designer, systems administrator, product manager, technical marketing manager and educator. He has worked for such companies as Western Electric Corporation, Aetna Life and Casualty, Bell Laboratories, Digital Equipment Corporation, VA Linux Systems, and is currently funded by SGI.

He has taught at Hartford State Technical College, Merrimack College and Daniel Webster College. He still likes talking to students over pizza and beer (the pizza can be optional).

Mr. Hall is the author of numerous magazine and newspaper articles, many presentations and one book, "Linux for Dummies".

Mr. Hall serves on the boards of several companies, and several non-profit organizations, including the USENIX Association.

Mr. Hall has traveled the world speaking on the benefits of Open Source Software, and received his BS in Commerce and Engineering from Drexel University, and his MSCS from RPI in Troy, New York.

In his spare time maddog is working on his retirement project:

maddog's monastery for microcomputing and microbrewing
Come have a pint with your favourite CS profs!

Come meet CS profs in a relaxed atmosphere this Wednesday at the Grad House (by South Campus Hall). This is your chance to meet those CS profs you enjoyed in lectures in person, have a chat with them and find out what they're doing outside the lecture halls.

We'll be providing free food, including hamburgers and nachos, and the Grad House offers a great selection of drinks.

If you'd like to invite a particular prof, stop by on the third floor of the MC (outside of the Comfy) to pick up an invitation.

Persons of all ages are welcome!

A talk by James Perry

.NET is Microsoft's new development platform, including amongst other things a language called C# and a class library for various operating system services. .NET aims to be portable, although it is currently mostly only used on Windows systems.

With the full backing of Microsoft, it seems unlikely that .NET will disappear any time soon. There are several efforts underway to bring .NET to the GNU/Linux platform. Hosted by the Computer Science Club, this talk will discuss a number of the issues surrounding .NET and Linux.

Sh is a GPU metaprogramming language developed at the UW Computer Graphics Lab

Sh is a GPU metaprogramming language developed at the University of Waterloo Computer Graphics Lab. It allows graphics programmers to write programs which run directly on the GPU (Graphics Processing Unit) using familiar C++ syntax. Furthermore, it allows metaprogramming of such programs, that is, writing programs which generate other programs, in an easy and natural manner.

This talk will give a brief overview of how Sh works, the design of its intermediate representation and the (still somewhat simplistic) optimizer that the current reference implementation has and problems with applying traditional compiler optimizations.

Stefanus Du Toit is an undergraduate student at the University of Waterloo. He is also a Research Assistant for Michael McCool from the University of Waterloo Graphics Lab. Over the Summer of 2003 Stefanus reimplemented the Sh reference implementation and designed and implemented the current Sh optimizer.

More free pizza from the Poster Team

Are you interested in getting involved in the Computer Science Club?

Come on out to the second meeting of our Poster Team, a bunch of students helping out with promotion for our events. The agenda for this meeting will include painting posters, designing event invitations, and organizing poster runs. Once again, we will be serving free pizza!

See you there!

GCC, GDB, Make

This tutorial will provide you with a practical introduction to GNU development tools on Unix such as the gcc compiler, the gdb debugger and the GNU make build tool.

This talk is geared primarily at those mostly unfamiliar with these tools. Amongst other things we will introduce:

  • gcc options, version differences, and peculiarities
  • using gdb to debug segfaults, set breakpoints and find out what's wrong
  • tiny Makefiles that will compile all of your 2nd and 3rd year CS projects.

If you're in second year CS and unfamiliar with UNIX development it is highly recommended you go to this talk. All are welcome, including non-math students.

Arrive early!

vi vs. emacs: The Ultimate Showdown

Have you ever wondered how those cryptic UNIX text editors work? Have you ever woken up at night with a cold sweat wondering "Is it CTRL-A, or CTRL-X CTRL-A?" Do you just hate pico with a passion?

Then come to this tutorial and learn how to use vi and emacs!

Basic UNIX commands will also be covered. This tutorial will be especially useful for first and second year students.

Join the Poster Team and get Free Pizza!
  • Do you like computer science?
  • Do you like posters?
  • Do you like free pizza?

If the answer to one of these questions is yes, then come out to the first meeting of the Computer Science Club Poster Team! The CSC is looking for interested students to help out with promotion and publicity for this term's events. We promise good times and free pizza!

CSC Fall 2003 Elections

Elections will be held on Wednesday, September 17, 2003 at 4:30 PM in the Comfy Lounge, MC3001.

I invite you to nominate yourself or others for executive positions, starting immediately. Simply e-mail me at cro@csclub.uwaterloo.ca with the name of the person who is to be nominated and the position they're nominated for.

Nominees must be full-time undergraduate students in Math. Sorry!

Positions open for elections are:

  • President: Organises the club, appoints committees, keeps everyone busy. If you have lots of ideas about the club in general and like bossing people around, go for it!
  • Vice President: Organises events, acts as the president if he's not available. If you have lots of ideas for events, and spare time, go for it!
  • Treasurer: Keeps track of the club's finances. Gets to sign cheques and stuff. If you enjoy dealing with money and have ideas on how to spend it, go for it!
  • Secretary: Takes care of minutes and outside correspondence. If you enjoy writing things down and want to use our nifty new letterhead style, go for it!

Nominations will be accepted until Tuesday, September 16 at 4:30 PM.

Additionally, a Sysadmin will be appointed after the elections. If you like working with Unix systems and have experience setting up and maintaining them, go for it!

I hope that lots of people will show up; hopefully we'll have a great term with plenty of events. We always need other volunteers, so if you want to get involved just talk to the new exec after the meeting. Librarians, webmasters, poster runners, etc. are always sought after!

There will also be free pop.

Memberships can be purchased at the elections or at least half an hour prior to at the CSC. Only undergrad math members can vote, but anyone can become a member.

Writing beautiful work reports

The work report is a familiar chore for any co-op student. Not only is there a report to write, but to add insult to injury, your report is returned if you do not follow your departmental guidelines.

Fear no more! In this talk, you will learn how to use LaTeX and a specially developed class to automatically format your work reports. This talk is especially useful to Mathematics, Computer Science, Electrical & Computer Engineering, and Software Engineeering co-op students about to go on work term.

http://www.eng.uwaterloo.ca/~sfllaw/programs/uw-wkrpt/

It's not 6.

In 1976, a University of California Berkeley student by the name of Bill Joy got sick of his text editor, ex. So he hacked it such that he could read his document as he wrote it. The result was "vi", which stands for VIsual editor. Today, it is shipped with every modern Unix system, due to its global influence.

In this talk, you will learn how to use vi to edit documents quickly and efficiently. At the end, you should be able to:

  • Navigate and search through documents
  • Cut, copy, and paste across documents
  • Search and replace regular expressions

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

See Abstract for minutes
--paying Simon for Sugar
-Unanimous yea.
-ACTION ITEM: Mark
	Expense this to MathSoc in lieu of foreign speaker.

--We currently have (including CD-R and pop-income not 
currently in safe) $972.85
-We have $359.02 on budget that we can expense to MathSoc.

--We got MEF money for books and video card. Funding for 
wireless microphone is dependent on whether MFCF is 
willing to host it.
-Funding for casters was denied.
-Shopping for the Video card.
-Expecting it after August (Stefanus shopping for it.)
-Will have to hear back regarding the microphone, best to 
delay that now, discuss it with MEF.
	-Better to do it this term, so it doesn't get lost.
	-Let MFCF know about this concern.
-Regarding books, can be done anytime before September.

--Events feedback
	-Generally, Jim Eliot talk when really well.
		-Apparently he was generally offensive.
	-When was the LaTeX talk? End of the month.
	-Kegger at Jim's place on the 16th.

--Getting people in on the 6th, 7th, 8th for csc commercials
filmed by Jason
	-Hang out in here, and he'll make a CSC commercial.
	-Co-ordinate when everyone should be in here, so we can email Jason.

--CEO progress
	-CEO needs it's database changed to use ISBN as a primary key.
	-Needs functionality to take out/return books.

--Mark just entered financial stuff into GNUcash

--Choose CRO for next term.
-Stefanus has expressed desire not to be CRO.
-Gary Simmons was suggested (and he accepted)
-Unanimous yea

--Mike Biggs has to get here naked.
	-Four unanimous votes.
	-Nakedness only applies to getting here, not being here.


From last meeting:
ACTION ITEM: Biggs and Cass
-get labelmaker tape, masking tape
whiteboard makers, coloured paper, CD sleeves
-keep receipts for CSC office expenses.

How is the progress on allowing executives and voters to be non-math
members?
-The vote is coming up Monday.
-Proposal: Anyone who is a paying member can be a member
	-So you can either do two things:
	Pay MathSoc fees, or
	Get your faculty society to recognize CSC as a club.

Stefanus wanted to mention that we should talk to Yolanda, 
Craig or Louie about a EYT event for frosh week.
-Organized by Meg.
-Sugar Mountain trying to hook all the Frosh
ACTION ITEM: Jim
-Email Meg

Reminder for Next Year's executive.
-September 16th @ 5:00pm, get a table for Clubs day, and 17th 
and 18th, maintain the booth (full day events).
-Update pamphlets.
ACTION ITEM: Gary
-There should be executive before then 

Note: There needs to be a private section in the CSC Procedures Manual.
(Only accessible by shell)
ACTION ITEM: Simon
-Do it.

ACTION ITEM: Mike
-Talk to Plantops about:
-Locks on doors
-Mounting corkboard.
-Talk about CSC Sign
  
SIGGRAPH Electronic Theatre Showing

SIGGRAPH is the ACM's Special Interest Group for Graphics and simultaneously the world's largest graphics conference and exhibition, where the cutting edge of graphics research is presented every year.

With support from UW's Computer Graphics Lab, the CSC invites you to capture a glimpse of SIGGRAPH 2002. We will be presenting the Electronic Theatre showings from 2002, demonstrating the best of the animated, CG-produced movies presented at SIGGRAPH.

Don't miss this free showing!

A talk by Jim Elliott. Jim is responsible for IBM's in Open Source activities and IBM's mainframe operating systems for Canada and the Carribbean.

Linux and Open Source have become a significant reality in the working world of Information Technology. An indirect result has been a "rebirth" of the mainframe as a strategic platform for enterprise computing. In this session Jim Elliott, IBM's Linux Advocate, will provide an overview of these technologies and an inside look at IBM's participation in the community. Jim will examine Linux usage on the desktop, embedded systems and servers, a reality check on the common misconceptions that surround Linux and Open Source, and an overview of the history and current design of IBM's mainframe servers.

Jim Elliott is the Linux Advocate for IBM Canada. He is responsible for IBM's participation in Linux and Open Source activities and IBM's mainframe operating systems in Canada and the Caribbean. Jim is a popular speaker on Linux and Open Source at conferences and user groups across the Americas and Europe and has spoken to over 300 organizations over the past three years. Over his 30 years with IBM he has been the co-author of over 15 IBM publications and he also coordinated the launch of Linux on IBM mainframes in the Americas. In his spare time, Jim is addicted to reading historical mystery novels and travel to their locales.

Slides

Come Visit the University of Guelph's Computer Science Club

The University of Waterloo Computer Science Club is going to visit the University of Guelph Computer Science Club. There will be a talk given as well as dinner with a fun social atmosphere.

Drivers Wanted

Cancelled -- sorry Guelph cancelled on us.

Metaprogramming your way to stunning effects.

Modern graphics processors allow developers to upload small "shader programs" to the GPU, which can be executed per-vertex or even per-pixel during the rendering. Such shaders allow stunning effects to be performed in real-time, but unfortunately aren't very easy to program since one generally has to write them at the assembly level.

Recently a few high-level languages for shader programming have become available. Sh, a result of research at UW, is one such language. It allows programming powerful shaders in simple and intuitive ways. Sh is particularly interesting because of the way it is implemented. Instead of coming up with a language grammar and writing a full-fledged compiler, Sh is implemented as a C++ library, and shader programs are effectively written in C++. The actual compilation then takes place in a manner similar to JIT (Just-in-time) compilers. This has many advantages over the traditional approach, including C++'s familiar syntax for users, and much less work for the Sh implementers.

In this talk I will give an overview of GPUs and the Sh language as well as some interesting details on how Sh was implemented.

Stefanus Du Toit is a research assistant at the University of Waterloo. He has implemented the current version of Sh from scratch and is actively developing it under supervision of Michael McCool, the original designer of the language.

It's not 6.

In 1976, a University of California Berkeley student by the name of Bill Joy got sick of his text editor, ex. So he hacked it such that he could read his document as he wrote it. The result was "vi", which stands for VIsual editor. Today, it is shipped with every modern Unix system, due to its global influence.

In this talk, you will learn how to use vi to edit documents quickly and efficiently. At the end, you should be able to:

  • Navigate and search through documents
  • Cut, copy, and paste across documents
  • Search and replace regular expressions

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Have an issue that should be brought up? We'd love to hear it!
  
Budget: All the money we requested
	--No money from Pints from Profs
	--MathSoc has promised us $1250
	
Feedback from Completed Events
	UNIX Talks: 17 people for first
			--12 people for second
			--Things going well
			--Last talk today
			--VI next week
	IPsec
	--Sparse crowd
	--People Jim didn't know talked to him for 1/2 hour

	History of CSC talk went well
	--Good variety of people

	Pints with Profs
	--NO CS Profs
	--Only 1 E& CE prof
	--Only 2 Math profs
	--Jim will harass the profs at the School of CS Council meeting.
	
	We're starting to fall behind in planning
	
	RoShamBo rules
	--Got a web site up
	--Might have to move RSB back
	--International site has a few test samples
	--Stefanus had some ideas
	--Coding will probably take an afternoon/evening
	--We need volunteers to run the competition
	--We have volunteers to code: Phil and Stefanus
	
	ACTION ITEM: Phil and Stefanus
	--code whatever you volunteered to code for.
	
	--Mike intends to visit classes and directly advertise
	--Email Christina Hotz 

	--GH guy: Mike has an abstract, will have posters by tomorrow
	
	CSC Movie Night
	--Mathnet, Hackers, Wargames, Tron
	--Mike will get a room
	--Will be closed member

	Mike McCool is offering rooms for showing SIGGRAPH 
	ACTION ITEM: Jim
	-check with Mike McCool.
	
	ACTION ITEM: Mike 
	-Make posters for Movie Nights

	When is other movie night? (Will plan some time in July)

	Who is our foreign speaker?
	Action Item: jelliot@ca.ibm.com (Check name first) about 
	getting a foreign speaker -- Note: Has already been contacted.

	Simon got money from Engsoc

	Cass needs coloured paper (CSC is out)

	ACTION ITEM: Cass and Mark 
	--get labelmaker tape, masking tape, 
	whiteboard makers, coloured paper 
	--keep receipts for CSC office expenses

	NOTICE: Mike is now Imapd

	Simon distributed budget list
	Mark got the money from Mathsoc for last budget, deposited it.

	ACTION ITEM:Mark
	--Get MEF funding by July 4th (equipment)
	ACTION ITEM: Simon
	--Get WEEF funding by June 27th (book)

	Jim still working on allowing executives and voters to be 
	non-math members

	We get free photocopying from MathSoc
	ACTION ITEM: Mike 
	--write down code for free photocopying from MathSoc
	
	Simon has been able to get into the cscdisk account, still 
	looking into getting into the cscceo account.

	Damien got an e-mail stating that the files for cscdisk are 
	out of date.
	
	ACTION ITEM: Simon
	--provide SSH key to Phil for getting into cscdisk, cscceo, etc...
	--Renumber bootup scripts for sugar and powerpc so that they 
	boot up happily.

	ACTION ITEM: Mike needs to do all the plantops stuff again.

	ACTION ITEM: Mike -- "Stapler if you say please" sign.

	CVS Tree for CEO has been exported.
	Damien has volunteered to finish CEO (found by Cass)

	All books with barcodes have been scanned
	All books without barcodes need to be bar-coded.

	ACTION ITEM: Mark
	--Find a Credit-card with a $500 or less limit.

	Note: There needs to be a private section in the 
	CSC Procedures Manual. (Only accessible by shell)

	Stefanus Wanted to mention that we should talk to 
	Yolanda, Craig or Louie about a EYT event for Frosh Week.
  

War, insanity, espionage, beauty, domination, sacrifice, and tragic death... not what one might associate with the history of computer science. In this talk I will focus on the origin of our discipline in the fields of engineering, mathematics, and science, and on the complicated personalities that shaped its evolution. No advanced technical knowledge is required.

Get to know your profs and be the envy of your friends!

Come out and meet your professors!! This is a great opportunity to meet professors for Undergraduate Research jobs or to find out who you might have for future courses. One and all are welcome!

Best of all... free food!!!

Learn Unix and be the envy of your friends!

This is the first in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this seminar.

Topics that will be discussed include:

  • Navigating the Unix environment
  • Using common Unix commands
  • Using the PICO text editor
  • Reading electronic mail and news with PINE

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Talking to your Unix can be fun and profitable

This is the second in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text with the vi text editor
  • Editing text with the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class

You too can be a Unix taskmaster

This is the third in a series of seminars that cover the use of the Unix Operating System. Unix is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's Unix environment in this tutorial.

Topics that will be discussed include:

  • Shell scripting
  • Searching through text files
  • Batch editing text files

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class

The execs discuss what needs discussion

Minutes for CSC Exec Meeting
May 22, 2003


* Add staff to burners group.
	-- Only office staff (people who do stuff) on burners list
  	-- No objections from executives

* We still need a webmaster, imapd
	-- Action Item: Mike
		--Check for pop delivery services (Like Grocery Gateway)
		so that we can replace imapd with an automated cronjob
		-- If this gets implemented, we must make sure that 
		someone is around to receive the pop whenever it is 
		delivered. 

* Budgets
    	Action Item: Simon
		-- Make sure execs receive a copy of the proposed budget
	Action Item: Mark
		-- Look into claiming money from Mathsoc for the last 
		term.
	--Will be looked over the week after next Monday at the Mathsoc
	Budget meeting.
	--June 27th is the WEF (Engineering Endowment Fund) deadline
	--EngSoc proposal for donations by the end of the month
	-- Around 15 events planned
		--Foreign Speaker
			--CS Departmant will pay for flight
			-- We can pay local expenses
		--Pints with Profs
		--Ro-Sham-Bo
		
*Changes in the MathSoc Clubs Policy
	Action Item: Jim and Stefanus
		--Bring thus up with MathSoc
		--Might be good to talk to Bioinformatics about this, as 
		they have science faculty members to take care of as well. 
	--Major issue: People who revoke their Mathsoc fees can still be
	voting 	members
	--We want it so that only people who have paid dues to Mathsoc 
	can vote.
	--Execs should not take back fees, as that is bad form.
	--All execs unanimously agreed with this proposal

*Confirming that we have free printing and photocopying
	Action Item: Mark
		--Does Faculty of Math billing code apply to CSC 
		(as Faculty of Math department?)
		-- Procedures manual has a billing code, but it should 
		be confirmed.
		-- Ask MUO, then Shirley after that.
	Action Item: Simon
		--Apparently there is a special Watcard that provides 
		free printing from MFCF
		--We do not know what account it is mapped to, 
		or the password.

* Getting csc_disk, csc, csc_ceo accounts on undergrad to work again.
	Action Item: Phil
		-- Get csc-disk back up for student use.
		-- What group permissions do we need?
		-- CSC-Disk should be used as a repository for custom 
		window managers, Mozilla, etc... (selling factor for
		CSC accounts)
		-- We should also have an announcement (MOTD, perhaps?) 
		that we are providing and supporting this software.
			--Consider: Having university-wide accessible 
			binaries might be a pain, as different machines
			might require different compilations.
		-- CSC-Disk is full of user data. Should that be blown away?

*Getting locker #7 from MathSoc (Don't we already have lockers 788 and 
789?)
	--Why were the locks snipped? (Bring up at council meeting)
	--We would prefer one combo-lock and one key-lock.

* Review of the CSC office organization
	Action Item: Damien
		--Give Mike sudo access for shutdown
			--Will be rewiring stuff on Saturday
				--involves re-plugging machines
	Action Item: Simon
		--Get rubber wheels for chairs
	
	Action Item: Mike
		-- Ask PlantOps about:
			--Waxing floors
			--Installing Electronic Lock (asap)
				--According to Faculty of Math, 
				we shouldn't need keys.
				--Currently, we still need keys
				--It is kosher to install Electronic lock
				--This provides access right control as 
				compared to key-control.		
				--Might be long term project.
				--Will green men do it?
			--Steam-clean chairs (at least once a term)
			--Cork-board
			--Making ugly wall prettier
				--PlantOps knows about office 
				organization, making environment better.
	--Whiteboards need to be put up
	--Proposal: Cork-board on pillar (no objections)
	--Metal frames on Whiteboard will be in least annoying place

*Do we provide public stapler access?
	--People are often unappreciative and rude
	--Sign -  "Stapler if you say please" -- Unanimously voted 
						 stapler policy
	
*MathSoc Sign
	--Action Item: Jim
		--Find out where to get CSC sign before Monday so we 
		can claim it in old budget. 

* Librarian's Report
	--Action Item: Jim
		--Find perl volunteer to finish CEO
		--Force Stefanus to export CVS tree and put onto Peri
	
	--Books were scanned into system with help of Mark
	--All books with valid barcodes entered into system on 
	May 20th
	--Books without valid barcodes are not in system
		--Someone needs to do it
	--Plan is to implement Dewey decimal system
		--May be inefficient as all books are about CS
		--We will figure out a system later
	--No plans to purchase new books
	--Librarian's Request:	Office Staff should not lend out books 
	that do not have barcodes (No objects to request) 
	--We are still using /media/iso/request to track books
	--Should be charge late fees for books?
	--We should have money in budget for repairing,maintaining books
	--Before spending money on maintaining books, check if DC will 
	do it
		--will it be cheaper/easier/better?

*Setting up extra quota for fun and profit.
	-- We don't implement quota properly right now
	-- Low demand for extra quota
	-- Counterpoint: Old CSC made tons of money
	-- Counter-counter-point: It's not that necessary for extra 
	quota nowadays. 
	-- Executives voted against proposal.

*Jim will spam with an update about the term
	--Consider making it opt-in
	--One email from a service you are using should be considered 
	reasonable mass mailing

*Should Jim bring anything up at the MathSoc meeting?**
	-- Has a list

* Student branches for ACM and IEEE
	Action Item: Gaelan
		--Contact IEEE Computing Society in UW and ask if they want 
		to merge or transfer society to us
	--Simon volunteers to be put down as exec for ACM
		--ACM rules state requirement that exec is a ACM member
	--Do we renew Calum's ACM membership?
		--Yes (3 Yes; 1 No; 1 Abstention)
	--ACM membership money in budget
	--ACM Student chapter form has not come in

* What to do with the donated Procedures Manual?
	--Term Task for webpage:
		--Put procedures manual on web-page.
		--Merge with current manual
	--We don't have a hard copy
	--Would be a good thing to read.
	--Many parts need updating

Come on out and vote for your exec!

Elections will be held on Wednesday, May 14, 2003 at 4:30 PM in the Comfy Lounge, MC3001.

I invite you to nominate yourself or others for executive positions, starting immediately. Simply e-mail me at sjdutoit@uwaterloo.ca or cro@csclub.uwaterloo.ca with the name of the person who is to be nominated and the position they're nominated for.

Nominees must be full-time undergraduate students in Math. Sorry!

Positions open for elections are:

  • President: Organises the club, appoints committees, keeps everyone busy. If you have lots of ideas about the club in general and like bossing people around, go for it!
  • Vice President: Organises events, acts as the president if he's not available. If you have lots of ideas for events, and spare time, go for it!
  • Treasurer: Keeps track of the club's finances. Gets to sign cheques and stuff. If you enjoy dealing with money and have ideas on how to spend it, go for it!
  • Secretary: Takes care of minutes and outside correspondence. If you enjoy writing things down and want to use our nifty new letterhead style, go for it!

Nominations will be accepted until Tuesday, May 13 at 4:30 PM.

Additionally, a Sysadmin will be appointed after the elections. If you like working with Unix systems and have experience setting up and maintaining them, go for it!

I hope that lots of people will show up; hopefully we'll have a great term with plenty of events. We always need other volunteers, so if you want to get involved just talk to the new exec after the meeting. Librarians, webmasters, poster runners, etc. are always sought after!

There will also be free pop, and if I remember, timbits :).

Memberships can be purchased at the elections. Only undergrad math members can vote, but anyone can become a member.

Don't forget! Mark it on your calendar/wrist watch/PDA/brain implant!

Learn Unix and be the envy of your friends!

This is the first in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this seminar.

Topics that will be discussed include:

  • Navigating the UNIX environment
  • Using common UNIX commands
  • Using the PICO text editor
  • Reading electronic mail and news with PINE

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Learn more Unix and be the envy of your friends!

Abstract to come soon.

Learn more Unix and be the envy of your friends!

Abstract to come soon.

Come out and vote for the new exec!

This term's elections will take place on Monday, January 13 at 6:00 PM in the MC "comfy lounge" (MC3001). Nominations are open from now on (Thursday, January 2) until 4:30 PM of the day before elections (Sunday, January 12). In order to nominate someone you can either e-mail me directly, by depositing a form with the required information in the CSC mailbox in the Mathsoc office or by writing the nomination and clearly marking it as such on the large whiteboard in the CSC office. E-mail is probably the best choice. Please include the name of the person to be nominated as well as the position you wish to nominate them for.

Candidates must be full members of the club. This means they must have paid their membership for the given term and (due to recent changes in the constitution) must be full-time undergraduate math students. The same requirements hold for those voting. Please bring your Watcard to the elections so that I can verify this. I will have a list of members with me also.

The positions open are:

President -- appoints all committees of the club, calls and presides at all meetings of the club and audits the club's financial records. Really, this is the person in charge.

Vice President -- assumes President's duties in case he/she is absent, plans and coordinates events with the programmes committee and assumes any other duties delegated by the President. This is a really fun job if you enjoy coordinating events!

Secretary -- keeps minutes of the meetings and cares for any correspondence. A fairly light job, good choice if you just want to see what being an exec is all about.

Treasurer -- maintains all the finances of the club. If you like money and keeping records, this is the job for you!

Additionally a Systems Administrator will be picked by the new executive.

Last term was a great term for the CSC -- many events, some office renovations and a much improved image were all part of it. I hope to see the next term's exec continue this. If you're interested in seeing this happen, do consider going for a position, or helping out as office staff or on one of the committees.

Anyways, hopefully I'll see many of you at the elections. Remember: Monday, January 13, 6:00 PM, MC3001/Comfy Lounge.

If you have any further questions don't hesitate to contact the CRO, Stefanus Du Toit by e-mail.

Find your perfect match

Stephen Kleene developed regular expressions to describe what he called the algebra of regular sets. Since he was a pioneering theorist in computer science, Kleene's regular expressions soon made it into searching algorithms and from there to everyday tools.

Regular expressions can be powerful tools to manipulate text. You will be introduced to them in this talk. As well, we will go further than the rigid mathematical definition of regular expressions, and delve into POSIX regular expressions which are typically available in most Unix tools.

Unix text editing

sed is the Unix stream editor. A powerful way to automatically edit a large batch of text. awk is a programming language that allows you to manipulate structured data into formatted reports.

Both of these tools come from early Unix, and both are still useful today. Although modern programming languages such as Perl, Python, and Ruby have largely replaced the humble sed and awk, they still have their place in every Unix user's toolkit.

Typesetting beautiful text

Unix was one of the first electronic typesetting platforms. The innovative AT&T troff system allowed researches at Bell Labs to generate high quality camera-ready proofs for their papers. Later, Donald Knuth invented a typesetting system called TEX, which was far superior to other typesetting systems in the 1980s. However, it was still a typesetting language, where one had to specify exactly how text was to be set.

LATEX is a macro package for the TEX system that allows an author to describe his document's function, thereby typesetting the text in an attractive and correct way. In addition, one can define semantic tags to a document, in order to describe the meaning of the document; rather than the layout.

Writing reports that look good.

Work term reports, papers, and other technical documents can be typeset in LATEX to great effect. In this session, I will provide examples on how to typeset tables, figures, and references. You will also learn how to make tables of contents, bibliographies, and how to create footnotes.

I will also examine various packages of LATEX that can help you meet requirements set by users of inferior typesetting systems. These include double-spacing, hyphenation and specific margin sizes.

LaTeX => fun

It is widely acknowledged that the best system by which to typeset beautiful mathematics is through the TE typesetting system, written by Donald Knuth in the early 1980s.

In this talk, I will demonstrate LATEX and how to typeset elegant mathematical expressions.

Free for all

Before the GNU project ever existed, before the phrase "Free Software" was ever coined, students and researchers at the University of California, Berkeley were already practising it. They had acquired the source code to a little-known operating system developed at AT&T Bell Laboratories, and were creating improvements at a ferocious rate.

These improvements were sent back to Bell Labs, and shared to other Universities. Each of them were licensed under what is now known as the "Original BSD license". Find out what this license means, its implications, and what are its descendents by attending this short talk.

The teeth of Free Software
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software---to make sure the software is free for all its users.
--- Excerpt from the GNU GPL

The GNU General Public License is one of the most influential software licenses in this day. Written by Richard Stallman for the GNU Project, it is used by software developers around the world to protect their work.

Unfortunately, software developers do not read licenses thoroughly, nor well. In this talk, we will read the entire GNU GPL and explain the implications of its passages. Along the way, we will debunk some myths and clarify common misunderstandings.

After this session, you ought to understand what the GNU GPL means, how to use it, and when you cannot use it. This session should also give you some insight into the social implications of this work.

Give your documents more markup

XML is the eXtensible Markup Language, a standard maintained by the World Wide Web Consortium. A descendant of IBM's SGML. It is a metalanguage which can be used to define markup languages for semantically describing a document.

This talk will describe how to generate correct XML documents, and auxiliary technologies that work with XML.

Transforming your documents

XSLT is the eXtended Stylesheet Language Transformations, a language for transforming XML documents into other XML documents.

XSLT is used to manipulate XML documents into other forms: a sort of glue between data formats. It can turn an XML document into an XHTML document, or even an HTML document. With a little bit of hackery, it can even be convinced to spit out non-XML conforming documents.

Held in co-operation with the UW Cognitive Science Club

A lot of claims have been made lately about the intelligence of computers. Some researchers say that computers will eventually attain super-human intelligence. Others call these claims... um, poppycock. Oddly enough, in the search for the truth of the matter, both camps have overlooked an obvious strategy: interviewing a computer and asking her opinion.

"Judy is as much fun as a barrel of wind-up cymbal-monkeys, and lots more entertaining." --- Bill Rodriguez, Providence Phoenix

"Tom Sgouros's witty play, co-starring the charming robot Judy, is an imagination stretcher that delights while it exercises your mind. If you think you can't imagine a conscious robot, you're wrong---you can, especially once you've met Judy." --- Daniel C. Dennett, author of Consciousness Explained, Brainchildren, &c.

"...an engrossing evening... Real questions about consciousness, freedom to act, the relationship between the creator and the created are woven into a bravura performance." --- Will Stackman, Aislesay.com

Sponsored by the Mathematics Society, the Federation of Students, the Arts Student Union, the Graduate Student Association, and the Department of Philosophy. Tickets available at the Humanities box office (888-4908) and the offices of the Psychology Society and the Computer Science Club for $5.50. For more information: http://www.csclub.uwaterloo.ca/cogsci.

A talk by Assistant Professor Michael McCool

Stream processing is an enhanced version of SIMD processing that permits efficient execution of conditionals and iteration. Stream processors have many similarities to GPUs, and a hardware prototype, the Imagine processor, has been used to implement both OpenGL and Renderman.

It is possible that GPUs will acquire certain properties of stream processors in the future, which should make them easier to use and more efficient for general-purpose computation that includes data-dependent iteration and conditionals.

Abusing template metaprogramming in C++

Templates are a useful feature in C++ when it comes to writing type-independent data structures and algorithms. But that's not all they can be used for. Essentially, it is possible to write certain programs in C++ that execute completely at compile-time rather than run-time. Combined with some optimisations this is an interesting twist on regular C++ programming.

This talk will give a short overview of the features of templates and then go on to describe how to "abuse" templates to perform complex computations at compile time. The speaker will present three programs of increasing complexity which execute at compile time. First a factorial listing program, then a prime listing program will be presented. Finally the talk will conclude with the presentation of a Mandelbrot generator running at compile time.

Some basic knowledge of C++ will be assumed.

Once more into the breach

The Secure Shell (SSH) has now replaced traditional remote login tools such as rsh, rlogin, rexec and telnet. It is used to provide secure, authenticated, encrypted communications between remote systems. However, the SSH protocol provides for much more than this.

In this talk, we will discuss using SSH to its full extent. Topics to be covered include:

  • Remote logins
  • Remote execution
  • Password-free authentication
  • X11 forwarding
  • TCP forwarding
  • SOCKS tunnelling
No description available.

The first of this term's CSC social events, we will be going to see the movie ``Brainstorm'' at the Princess Cinema. This outing is intended primarily for the new first-year students.

The Princess Cinema is Waterloo's repertoire theatre. This month and next, they are featuring a ``Cyber Film Festival''. Upcoming films include:

  • Brazil
  • Bladerunner (director's cut)
  • 2001: A Space Odyssey
  • Naked Lunch

Admission is $4.25 for a Princess member, $7.50 for a non-member. Membership to the Princess is $7.00 per year.

No description available No abstract available No description available No abstract available No description available No abstract available No description available No abstract available No description available No abstract available No description available

What is the next step in the evolution of computer languages? Intelligent agents? Distributed objects? or visual languages?

Visual languages overcome many of the drawbacks and limitations of the textual languages that software development is based on today. Do you think about programming in a linear fashion? Or do you draw a mental picture of your algorithm and then linearize it for the benefit of your compiler? Wouldn't it be nice if you could code the same way you think?

Visual C++ and Visual BASIC aren't visual languages, but Prograph is. Prograph is a commercially available, visual, object-oriented, data-flow language. It is well suited to graphical user interface development, but is as powerful for general-purpose programming as any textual language.

The talk will comprise a discussion of the problems of textual languages that visual languages solve, a live demonstration of Prograph, and some of my observations of the applications of Prograph to software development.

No description available

Big Money and Prizes!

So you think you're a pretty good programmer? Pit your skills against others on campus in this triannual event! Contestants will have three hours to solve five programming problems in either C or Pascal.

Last fall's winners went on to the International Finals and came first overall! You could be there, too!

No description available

Need something to do between assignments/beers?

Did you know that your undergrad account at Waterloo gives you access to the world's largest computer network? With thousands of discussion groups, gigabytes of files to download, multimedia information browsers, even on-line entertainment?

The resources available on the Internet are vast and wondrous, but the tools for navigating it are sometimes confusing and arcane. In this hands-on tutorial you will get the chance to get your feet wet with the world's most mind-bogglingly big computer network, the protocols and programs used, and how to use them responsibly and effectively.

No description available

From the Minimax Theorem, through Alpha-Beta, and beyond...

This will be a discussion of the pitfalls of using mathematics and algorithms to play classical board games. Thorough descriptions shall be presented of the simple techniques used as the building blocks that make all modern computer game players. I will use tic-tac-toe as a control for my arguments. Other games such as Chess, Othello and Go shall be the be a greater measure of progress; and more importantly the targets of our dreams.

To enhance the discussion of the future, Barney Pell's Metagamer shall be introduced. His work in define classes of games is important in identifying the features necessary for analysis.

By Blair MacIntyre and Elizabeth Mynatt

by Blair MacIntyre and Elizabeth Mynatt

The Future Computing Environments (FCE) Group at Georgia Tech is a collection of faculty and students that share a desire to understand the partnership between humans and technology that arises as computation and sensing become ubiquitous. With expertise covering the breadth of Computer Science, but focusing on HCI, Computational Perception, and Machine Learning, the individual research agendas of the FCE faculty are grounded in a number of shared "living laboratories" where their research is applied to everyday life in the classroom (Classroom 2000), the home (the Aware Home), the office (Augmented Offices), and on one's person. Professors MacIntyre and Mynatt will discuss a variety of these projects, with an emphasis on the HCI and Computer Science aspects of the FCE work.

In addition to their affiliation with the FCE group, Professors Mynatt and MacIntyre are both members of the Graphics, Visualization and Usability Center (GVU) at Georgia Tech. This interdisciplinary center brings together research in computer science, psychology, industrial engineering, architecture and media design by examining the role of computation in our everyday lives. During the talk, they will touch on some of the research and educational opportunities available at both GVU and the College of Computing.

No description available.

Debugging can be the most difficult and time consuming part of any program's life-cycle. Far from an exact science, it's more of an art ... and close to some kind of dark magic. Cryptic error messages, lousy error checking, and icky things like implicit casts can make it nearly impossible to know what's going on inside your program.

Several tools are available to help automate your debugging. GDB and Purify are among the most powerful debugging tools available in a UNIX environment. GDB is an interactive debugger, allowing you to `step' through a program, examine function calls, variable contents, stack traces and let you look at the state of a program after it crashes. Purify is a commercial program designed to help find and remove memory leaks from programs written in languages without automatic garbage collection.

This talk will cover how to compile your C and C++ programs for use with GDB and Purify, as well as how to use the available X interfaces. If a purify license is available on undergrad at the time of the talk, we will cover how to use it during runtime.

By Jan Gray

by Jan Gray

With the advent of large inexpensive field-programmable gate arrays and tools it is now practical for anyone to design and build custom processors and systems-on-a-chip. Jan will discuss designing with FPGAs, and present the design and implementation of xr16, yet another FPGA-based RISC computer system with integrated peripherals.

Jan is a past CSC pres., B.Math. CS/EEE '87, and wrote compilers, tools, and middleware at Microsoft from 1987-1998. He built the first 32-bit FPGA CPU and system-on-a-chip in 1995.

End-of-term dinner No abstract available. By Edgar Dijkstra

By Edgar Dijkstra

This talk will use partial orders, lattice theory, and, if time permits, the Galois connection as carriers to illustrate the use of calculi in mathematics. We hope to show the brevity of many calculations (in order to fight the superstition that formal proofs are necessarily impractically long), and the strong heuristic guidance that is available for their design.

Dijkstra is known for early graph-theoretical algorithms, the first implementation of ALGOL 60, the first operating system composed of explicitly synchronized processes, the invention of guarded commands and of predicate transformers as a means for defining semantics, and programming methodology in the broadest sense of the word.

His current research interests focus on the formal derivation of proofs and programs, and the streamlining of the mathematical argument in general.

Dijkstra held the Schlumberger Centennial Chair in Computer Sciences at The University of Texas at Austin until retiring in October.

By Edsger Dijkstra

This talk will show the use of programs for the proving of theorems. Its purpose is to show how our experience gained in the derivations of programs might be transferred to the derivation of proofs in general. The examples will go beyond the (traditional) existence theorems.

Dijkstra is known for early graph-theoretical algorithms, the first implementation of ALGOL 60, the first operating system composed of explicitly synchronized processes, the invention of guarded commands and of predicate transformers as a means for defining semantics, and programming methodology in the broadest sense of the word.

His current research interests focus on the formal derivation of proofs and programs, and the streamlining of the mathematical argument in general.

Dijkstra held the Schlumberger Centennial Chair in Computer Sciences at The University of Texas at Austin until retiring in October.

By Edsger Dijkstra No description available. No description available.

by Floyd Marinescu

The first talk will be an introduction to the Enterprise Java API's: Servlets, JSP, EJB, and how to use them to build eCommerce sites.

The second talk will be about how these technologies were used to implement a real world portal. The talk will include an overview of the design patterns used and will feature architectural information about the yet to be release portal (which I am one of the developers) called theserverside.com.

No description available.

Real World J2EE - Design Patterns and architecture behind the yet to be released J2EE portal: theserverside.com

This talk will feature an exclusive look at the architecture behind the new J2EE portal: theserverside.com. Join Floyd Marinescu in a walk-through of the back-end of the portal, while learning about J2EE and its real world patterns, applications, problems and benefits.

End-of-term dinner No abstract available. Fall 2000 Elections for the CSC.

Would you like to get involved in the CSC? Would you like to have a say in what the CSC does this term? Come out to the CSC Elections! In addition to electing the executive for the Fall term, we will be appointing office staff and other positions. Look for details in uw.csc.

Nominations for all positions are being taken in the CSC office, MC 3036.

SIGGraph Video Night Featuring some truly awesome computer animations from Siggraph '99.

Interested in Computer Graphics?

Enjoy watching state-of-the-art Animation?

Looking for a cheap place to take a date?

SIGGraph Video Night - Featuring some truly awesome computer animations from Siggraph '99.

Come out for the Computer Science Club general elections at 6:00 pm, right before SIGGraph!

By Frank Clegg of Microsoft Canada

Vitals

By
Frank Clegg
President, Microsoft Canada
Date
Monday, September 25, 2000
Time
14:30 - 16:00
Place
DC 1302
(Davis Centre, Room 1302, University of Waterloo)
Cost
$0.00
Pre-registration
Recommended
http://infranet.uwaterloo.ca:81/infranet/semform.htm
(519) 888-4004

Abstract

The Internet and the Web have revolutionized our communications, our access to information and our business methods. However, there is still much room for improvement. Frank Clegg will discuss Microsoft's vision for what is beyond browsing and the dotcom. Microsoft .NET (pronounced "dot-net") is a new platform, user experience and set of advanced software services planned to make all devices work together and connect seamlessly. With this next generation of software, Microsoft's goal is to make Internet-based computing and communications easier to use, more personalized, and more productive for businesses and consumers. In his new position of president of Microsoft Canada Co., Frank Clegg will be responsible for leading the organization toward the delivery of Microsoft .NET. He will speak about this new platform and the next generation Internet, how software developers and businesses will be able to take advantage of it, and what the .NET experience will look like for consumers and business users.

The Speaker

Frank Clegg was appointed president of Microsoft Canada Co. this month. Prior to his new position, Mr. Clegg was vice-president, Central Region, Microsoft Corp. from 1996 to 2000. In this capacity, he was responsible for sales, support and marketing activities in 15 U.S. states. Mr. Clegg joined Microsoft Corp. in 1991 and headed the Canadian subsidiary until 1996. During that time, Mr. Clegg was instrumental in introducing several key initiatives to improve company efficiency, growth and market share. Mr. Clegg graduated from the University of Waterloo in 1977 with a B. Math.

For More Information

Shirley Fenton
The infraNET Project
University of Waterloo
519-888-4567 ext. 5611
http://infranet.uwaterloo.ca/
Winter 2001 CSC Elections.

Would you like to get involved in the CSC? Would you like to have a say in what the CSC does this term? Come out to the CSC Elections! In addition to electing the executive for the Winter term, we will be appointing office staff and other positions. Look for details in uw.csc.

Nominations for all positions are being taken in the CSC office, MC 3036.

Second CSC meeting for Winter 2001.

Proposed agenda

Book purchases

They haven't been done in 2 terms. We have an old list of books to buy. Any suggestions from uw.csc are welcome.

CD Burner

For doing Linux burns. It was allocated money on the budget request - about $300. We should be able to get a decent 12x burner with that (8x rewrite).

The obvious things to sell are Linux Distros and BSD variants. Are there any other software that we can legally burn and sell to students?

Unix talks

Just a talk of the topics to be covered, when, where, whatnot. Mike was right on this one, this should have been done earlier in the term. Oh well, maybe we can fix this for next fall term.

Game Contest

We already put a bit of work into planning the Othello contest before I read Mike's post. I still think it's viable. I've got at least 2 people interested in writing entries for it. This will be talked about more on Monday. Hopefully, Rory and I will be able to present a basic outline of how the contest is going to be run at that time.

Peri's closet cleaning

Current sysadmin (jmbeverl) and I (kvijayan) and President (geduggan) had a nice conversation about this 2 days ago, having to do with completely erasing all of peri, installing a clean stable potato debian on it, and priming it for being a gradual replacement to calum. We'll probably discuss how much we want to get done on this front on Monday.

Any comments from the newsgroup are welcome.

Practice for the ACM international programming contest

Our ACM-Style practice contests involve answering five questions in three hours. Solutions are written in Pascal, C or C++. Seven years in a row, Waterloo's teams have been in the top ten at the world finals. For more information, see the contest web page.

Easy Question:

A palindrome is a sequence of letters that reads the same backwards and forwards, such as ``Madam, I'm Adam'' (note that case doesn't matter and only letters are important). Your task is to find the longest palindrome in a line of text (if there is a tie, print the leftmost one).

Input:                              Output:

asfgjh12dsfgg kj0ab12321BA wdDwkj   abBA
abcbabCdcbaqwerewq                  abCdcba

Hard Question:

An anagram is a word formed by reordering the letters of another word. Find all sets of anagrams that exist within a large dictionary. The input will be a sorted list of words (up to 4000 words), one per line. Output each set of anagrams on a separate line. Each set should be in alphabetical order, and all lines of sets should be in alphabetical order. A word with no anagrams is a set of anagrams itself, and should be displayed with no modifications.

Input:      Output:

post        post pots stop
pots        start
start
stop
No description available. No abstract available. No description available. No abstract available. No description available. No abstract available. Practice for the ACM international programming contest

Our ACM-Style practice contests involve answering five questions in three hours. Solutions are written in Pascal, C or C++. Seven years in a row, Waterloo's teams have been in the top ten at the world finals. For more information, see the contest web page.

Easy Question:

A palindrome is a sequence of letters that reads the same backwards and forwards, such as ``Madam, I'm Adam'' (note that case doesn't matter and only letters are important). Your task is to find the longest palindrome in a line of text (if there is a tie, print the leftmost one).

Input:                              Output:

asfgjh12dsfgg kj0ab12321BA wdDwkj   abBA
abcbabCdcbaqwerewq                  abCdcba

Hard Question:

An anagram is a word formed by reordering the letters of another word. Find all sets of anagrams that exist within a large dictionary. The input will be a sorted list of words (up to 4000 words), one per line. Output each set of anagrams on a separate line. Each set should be in alphabetical order, and all lines of sets should be in alphabetical order. A word with no anagrams is a set of anagrams itself, and should be displayed with no modifications.

Input:      Output:

post        post pots stop
pots        start
start
stop
Bored of GNU/Linux? Try this experimental operating system!

GNU Hurd is an operating system kernel based on the microkernel architecture design. It was the original GNU kernel, predating Linux, and is still being actively developed by many volunteers.

The Toronto-area Hurd Users Group, in co-operation with the Computer Science Club, is hosting an afternoon to show the Hurd to anyone interested. Jeff Bailey, a Hurd developer, will give a presentation on the Hurd, followed by a GnuPG/PGP keysigning party. To finish it off, James Morrison, also a Hurd developer, will be hosting a Debian GNU/Hurd installation session.

All interested are invited to attend. Bring your GnuPG/PGP fingerprint and mail your key to sjdutoit@uwaterloo.ca with the subject ``keysigning'' (see separate announcement).

Questions? Suggestions? Contact James Morrison.

Get more signatures on your key!

GnuPG and PGP provide public-key based encryption for e-mail and other electronic communication. In addition to preventing others from reading your private e-mail, this allows you to verify that an e-mail or file was indeed written by its perceived author.

In order to make sure a GnuPG/PGP key belongs to the respective person, the key must be signed by someone who has checked the user's key fingerprint and verified the user's identification.

A keysigning party is an ideal occasion to have your key signed by many people, thus strengthening the authority of your key. Everyone showing up exchanges key signatures after verifying ID and fingerprints. The Computer Science Club will be hosting such a keysigning party together with the Hurd presentation by THUG (see separate announcement). See the keysigning party homepage for more information.

Before attending it is important that you mail your key to sjdutoit@uwaterloo.ca with the subject ``keysigning.'' Also make sure to bring photo ID and a copy of your GnuPG/PGP fingerprint on a sheet of paper to the event.

This is the first in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will be covering the basics of the UNIX environment, as well as the use of PINE, an electronic mail and news reader. Billy Biggs will be holding a talk on DVD technology (in particular, CSS and playback issues) under Linux, giving some technical details as well as an overview of the current status of Free Software efforts. All are welcome.

DVD copy protection: Content Scrambling System (CSS)

  • A technical introduction to CSS and an overview of the ongoing legal battle to allow distribution of non-commercial DVD players
  • The current Linux software efforts and open issues
  • How applications and Linux distributions are handling the legal issues involved

DVD-Video specifics: Menus and navigation

  • An overview of the DVD-Video standard
  • Reverse engineering efforts and their implementation status
  • Progress of integration into Linux media players
This the second in a series of UNIX tutorials. Simon Law and James Perry will be presenting some more advanced UNIX techniques. All are welcome. Accounts will be provided for those needing them.

This is the second in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text using the vi text editor
  • Editing text using the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Thomas Wolf from Brock University will be holding a talk on the Asian game of Go. All are welcome.

The Asian game go is unique in a number of ways. It is the oldest board game known. It is a strategy game with very simple rules. Computer programs are very weak despite huge efforts and prizes of US$ > 1.5M for a program beating professional players. The talk will quickly explain the rules of go, compare go and chess, mention various attempts to program go and describe our own efforts in this field. Students will have an opportunity to solve computer generated go problems. Prizes will be available.

Come and vote for this term's exec

Vote for the exec this term. Meet at the CSC office.

Come and vote for this term's exec

Vote for the exec this term. Meet at the comfy lounge. There will be an opportunity to obtain or renew memberships. This term's CRO is Siyan Li (s8li@csclub.uwaterloo.ca).

Vote on a constitutional change.

The executive has unanimously decided to try to change our constitution to comply with MathSoc policy. The clause we are trying to change is the membership clause. The following is the proposed new reading of the clause.

In compliance with MathSoc regulations and in recognition of the club being primarily targeted at undergraduate students, full membership is open to all undergraduate students in the Faculty of Mathematics and restricted to the same.

The proposed change is illustrated on a web page.

There will be a business meeting on 30 Sept 2002 at 18:30 in the comfy lounge, MC 3001. Please come and vote

First Steps with UNIX

Get to know UNIX and be the envy of your friends!

This is the first in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this seminar.

Topics that will be discussed include:

  • Navigating the UNIX environment
  • Using common UNIX commands
  • Using the PICO text editor
  • Reading electronic mail and news with PINE

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

Get to know your profs and be the envy of your friends!

Come out and meet your professors. This is a great opportunity to meet professors for Undergraduate Research jobs or to find out who you might have for future courses.

Profs who have confirmed their attendance are:

  • Troy Vasiga, School of Computer Science
  • J.P. Pretti, St. Jerome's and School of Computer Science
  • Michael McCool, School of Computer Science, CGL
  • Martin Karsten, School of Computer Science, BBCR
  • Gisli Hjaltason, School of Computer Science, DB

There will also be...

  • Free Food
  • Free Food
  • Free Food
Talking to your UNIX can be fun and profitable.

This is the second in a series of seminars that cover the use of the UNIX Operating System. UNIX is used in a variety of applications, both in academia and industry. We will provide you with hands-on experience with the Math Faculty's UNIX environment in this tutorial.

Topics that will be discussed include:

  • Interacting with Bourne and C shells
  • Editing text using the vi text editor
  • Editing text using the Emacs display editor
  • Multi-tasking and the screen multiplexer

If you do not have a Math computer account, don't panic; one will be lent to you for the duration of this class.

A talk by Filip Spacek, KGI developer Linux has proven itself as a reliable operating system but arguably, it still lacks in support of high performance graphics acceleration. This talk will describe basic components of a PC video card and the design and limitations the current Linux display driver architecture. Finally a an overview of a new architecture, the Kernel Graphics Interface (KGI), will be given. KGI attempts to solve the shortcomings of the current design, and provide a lightweight and portable interface to the display subsystem. No abstract available yet. Abusing template metaprogramming in C++; aka. writing a Mandelbrot generator that runs at compile time

Templates are a useful feature in C++ when it comes to writing type-independent data structures and algorithms. Relatively soon after their appearance it was realised that they could be used to do much more than this. Essentially it is possible to write certain programs in C++ that execute completely at compile time rather than run time. Combined with constant-expression optimisation this is an interesting twist on regular C++ programming.

This talk will give a short overview of the features of templates and then go on to describe how to "abuse" templates to perform complex computations at compile time. The speaker will present three programs of increasing complexity which execute at compile time. First a factorial listing program, then a prime listing program will be presented. Finally the talk will conclude with the presentation of a Mandelbrot generator running at compile time.

If you are interested in programming for the fun of it, the C++ language or silly tricks to do with languages, this talk is for you. No C++ knowledge should be necessary to enjoy this talk, but programming experience will make it more worthwile for you.

Bring over your computer and we'll help you install GNU/Linux

The CSC, the KW-Linux User Group, and the UW Debian Interest Group are jointly hosting a GNU/Linux InstallFest. GNU/Linux is a powerful, free operating system for your computer. It is mostly written by talented volunteers who like to share their efforts and help each other.

Perhaps you have are you interested in installing GNU/Linux. If so, bring your computer, monitor and keyboard; and we will help you install GNU/Linux on your machine. You can also find knowledgeable people who can answer your questions about GNU/Linux.


Frequently Asked Questions

Q: What is GNU/Linux?
A: GNU/Linux is a free operating system for your computer. It is mostly written by talented volunteers who like to share their efforts.

Q: Free?
A: GNU/Linux is available for zero-cost. As well, it allows you such freedom to share it with your friends, or to modify the software to your own needs and share that with your friends. It's very friendly.

Q: What is an InstallFest?
A: An InstallFest is a meeting where volunteers help people install GNU/Linux on their computers. It's also a place to meet users, and talk to them about running GNU/Linux.

Q: What kind of computer do I need to use GNU/Linux?
A: Almost any recent computer will do. If you have an old machine kicking around, you can install GNU/Linux on it as well. If it is at least 5 years old, it should be good enough.

Q: Can I have Windows and GNU/Linux on the same computer?
A: If you can run Windows now, and you have an extra gigabyte (GB) of disk space to spare; then it should be possible.

Q: What should I bring if I want to install GNU/Linux?
A: You will want to bring:

  1. Computer
  2. Monitor and monitor cable
  3. Power cords
  4. Keyboard and mouse
The teeth of Free Software

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software---to make sure the software is free for all its users.
--- Excerpt from the GNU GPL

The GNU General Public License is one of the most influential software licenses in this day. Written by Richard Stallman for the GNU Project, it is used by software developers around the world to protect their work.

Unfortunately, software developers do not read licenses thoroughly, nor well. In this talk, we will read the entire GNU GPL and explain the implications of its passages. Along the way, we will debunk some myths and clarify common misunderstandings.

After this session, you ought to understand what the GNU GPL means, how to use it, and when you cannot use it. This session should also give you some insight into the social implications of this work.

A talk by Michael McCool of the Computer Graphics Lab.

Modern graphics accelerators, or "GPUs", have embedded high-performance programmable components in the form of vertex and fragment shading units. Recently, these units have evolved from 8-bit computations to floating-point, and other operations provide array gather, scatter, and summation. These capabilities make GPUs akin to array processors of the past, but with a difference: every PC now has one! I am interested in finding the best way to exploit this computational capacity for not only graphics but for general-purpose computation.

Current APIs permit specification of the programs for GPUs using an assembly-language level interface. Compilers for high-level shading languages are available, such as NVIDIA's Cg, and OpenGL 2.0 and DirectX will also include standardized shading languages. This talk will review these. However, compilers for these languages read in an external string specification, which can be inconvenient.

However, it is possible, using standard C++, to define a high-level shading language directly in the API. Such a language can be nearly indistinguishable from a special-purpose programming language, yet permits more direct interaction with the specification of textures (arrays) and parameters, simplifies implementation, and enables on-the-fly generation, manipulation, and specialization of shader programs. A shading language built into the API also permits the lifting of C++ host language type, modularity, and scoping constructs into the shading language without any additional implementation effort. Such an embedded language could be used to program other embedded processors (such as DSP chips in sound cards) or even to generate machine language on the fly for the host CPU.

Going to visit the York University Computer Club

YUCC and the UW CSC have having a join meeting at York University. Dave Makalsky, the President of YUCC, will be giving a talk on Design-by-contract and Eiffel. Stefanus Du Toit, Vice-President of the UW CSC, will be giving a talk on the evil depths of the black art known as C++.

Schedule

  • 1:30pm: Leave UW
  • 3:00pm: Arrive at York University.
  • 3:30pm: The Evil side of C++
  • 4:30pm: Design-by-Contract and Eiffel
  • 6:00pm: Dinner
  • 9:00pm: Arrive back at UW
A talk by Simon Law

Perl, the Practical Extraction and Reporting Language can only be described as an eclectic language, invented and refined by a deranged system administrator, who was trained as a linguist. This man, however, has declared:

Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite of Perl and of the community.
--- Larry Wall

Whenever a language is designed by a committee, it is common wisdom to avoid it. Not so with Perl, for it cannot get worse. However strange these Perl people seem, Perl 6 is a good thing coming. In this talk, I will demonstrate some Perl 5 programs, and talk about their Perl 6 counterparts, to show you that Perl 6 will be cleaner, friendlier, and prettier.

A talk by Dan Brovkovich, Mathsoc's Computing Director

Samba is a free implementation of the Server Message Block (SMB) protocol. It also implements the Common Internet File System (CIFS) protocol, used by Microsoft Windows 95/98/ME/2000/XP to share files and printers.

SMB was originally developed in the early to mid-80's by IBM and was further improved by Microsoft, Intel, SCO, Network Appliances, Digital and many others over a period of 15 years. It has now morphed into CIFS, a form strongly influenced by Microsoft.

Samba is considered to be one of the key projects for the acceptance of GNU/Linux and other Free operating systems (e.g. FreeBSD) in the corporate world: a traditional Windows NT/2000 stronghold.

We will talk about interfacing Samba servers and desktops with the Windows world. From a simple GNU/Linux desktop in your home to the corporate server that provides collaborative file/printer sharing, logons and home directories to hundreds of users a day.

Carlos O'Donnell talks about "the last of the legacy processors to fall before the barbarian horde"

This whirlwind talk is aimed at providing an overview of the GNU/Linux port for the HP PARISC processor. The talk will focus on the "intricacies" of the processor, and in particular the implementations of the Linux kernel and GNU Libc. After the talk you should be acutely aware of how little code needs to be written to support a new architecture! Carlos has been working on the port for two years, and enjoying the fruits of his labour on a 46-node PARISC cluster.


Carlos is currently in his 5th year of study at the University of Western Ontario. This is his last year in a concurrent Computer Engineering and Computer Science degree. His research interest range from distributed and parallel systems to low level optimized hardware design. He likes playing guitar and just bought a Cort NTL-20, jumbo body, solid spruce top with a mahogany back. Carlos hacks on the PARISC Linux kernel, GNU libc, GNU Debugger, GNU Binutils and various Debian packages.

Marcus Brinkmann, a GNU Hurd developer, talks about the Hurd server interfaces, at the heart of a GNU/Hurd system

The Hurd server interfaces are at the heart of the Hurd system. They define the remote procedure calls (RPCs) that are used by the servers, the GNU C library and the utility programs to communicate with the Hurd system and to implement the POSIX personality of the Hurd as well as other features.

This talk is a walk through the Hurd RPCs, and will give an overview of how they are used to implement the system. Individual RPCs will be used to illustrate important or exciting features of the Hurd system in general, and it will be shown how those features are accessible to the user at the command line, too.


Marcus Brinkmann is a math student at the Ruhr-Universitaet Bochum in Germany. He is one of maintainers of the GNU Hurd project and the initiator of the Debian GNU/Hurd binary distribution. He designed and implemented the console subsystem of the Hurd, wrote the FAT filesystem server, and fixed a lot of bugs, thus increasing the stability and usability of the system.

Neal Walfield, a GNU Hurd developer, talks about a possible Virtual Memory Management subsystem for the GNU Hurd

Virtual memory management is one of the cornerstones of multiuser operating systems. Most systems available today place all of the policy in a monolithic virtual memory manager, VMM, isolated from the rest of the system. Although secure and lightweight, users have no way to communicate their anticipated memory needs and usage to the system pager. As a result, the VMM can only implement a global paging policy (typically, an approximation of LRU) which may be good on average but is best for nobody.

With the port of Hurd to the L4 microkernel, this situation is being readdressed. Due to its more distributed nature, a centralized resource manager is not only more difficult to implement efficiently but also contrary to the philosophy of the rest of the system. We are currently exploring a model whereby each program is fully self-paged and all compete for memory from a physical memory server. This talk will first discuss how paging currently works in Mach and other systems. An argument for an external paging policy will then be presented followed by the requirements of such a design and the design itself.


Neal Walfield, a GNU Hurd developer, is from the University of Massachusetts Lowell. Neal spent the summer of 2002 at University of Karlsruhe working on porting the GNU Hurd to L4.

A talk by Simon Law

The Debian Project produces a "Universal Operating System" that is comprised entirely of Free Software. This talk focuses on using Debian GNU/Linux in an enterprise environment. This includes:

  • Where Debian can be deployed
  • Strategic advantages of Debian
  • Ways for business to give back to Debian
A talk by James A. Morrison

Do you ever wonder what java is doing while you wait? Have you ever used Modula-3? Do you wonder how lazily you can Mark and Sweep? Would you like to know how to Stop-and-Copy?

Come out to this talk and learn these things and more. No prior knowledge of Garbage Collection or memory management is needed.