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 industy. 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 commitees 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, bibliographics, 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 cdoe to a little-known operating system developed at AT&T Bell Laboratories, and were creating improvments 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 decendents 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 influencial 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 auxillary 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 thse 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 tothe 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 descussion 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 arguements. 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 toknow what's going on inside your program.

Several tools are available to help automate your debuggin. 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 aprogram, 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 inlanguages 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 tofight the superstition that formal proofs are necessarily unpractically 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 ofthe 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 industy. 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 industy. 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 knowledgable 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 influencial 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-constract 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 spurce 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.