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.
Full details found here
Spring term executive elections and general meeting.