Events Archive: Winter 2010

Windows Azure Lab

| 1:00 PM EDT | MC2037

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

View details

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.

Brush-Based Constructive Solid Geometry

| 4:30 PM EDT | DC1304

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.

View details

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.

CTRL-D

| 6:30 PM EDT | CSC Office

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.

View details

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.

NUI: The future of robotics and automated systems

| 4:30 PM EDT | DC1304

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

View details

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.

A Final Party of Code

| 7:00 PM EDT | MC7001

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.

View details

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.

Memory-Corruption Security Holes: How to exploit, patch and prevent them.

| 4:30 PM EDT | MC5158

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.

View details

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.

Another Party of Code

| 7:00 PM EDT | Comfy Lounge

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.

View details

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.

Approximation Hardness and the Unique Games Conjecture

| 4:30 PM EDT | MC5158

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.

View details

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 Party of Code

| 7:00 PM EST | Comfy Lounge

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

View details

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.

Software Transactional Memory and Using STM in Haskell

| 4:30 PM EST | DC1304

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.

View details

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.

Bowling

| 5:00 PM EST | Waterloo Bowling Lanes

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

View details

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

QIP=PSPACE

| 4:30 PM EST | DC1304

Dr. John Watrous of the [IQC](<http://www.iqc.ca>) 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.

View details

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.

Contest Closing

| 7:00 PM EST | CnD Lounge

The [contest](<http://contest.csclub.uwaterloo.ca>) 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](<http://csclub.uwaterloo.ca/contest/rankings.php>) right now) so come out and hack for the home team.

View details

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.

CSCF Town Hall

| 4:30 PM EST | DC1302

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.

View details

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.

The Best Algorithms are Randomized Algorithms

| 4:30 PM EST | MC5136B

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.

View details

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.

UNIX 101 Encore

| 4:30 PM EST | MC3005

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.

View details

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.

UNIX 101

| 4:30 PM EST | MC3003

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

View details

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.

An Introduction to Vector Graphics Libraries with Cairo

| 4:30 PM EST | DC1304

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.

View details

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.

Deep learning with multiplicative interactions

| 5:00 PM EST | DC1302

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](<http://www.cs.toronto.edu/~hinton/>).

View details

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.

Wilderness Programming

| 3:30 PM EST | MC2066

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.

View details

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.