Speakers

June 24 - Andy van Dam

Computer Graphics: Past, Present, and Future

Andy van Dam, a founder of Brown's CS Department and an influential figure in the world of computer graphics, will talk about the history of the field (most of which he has personally experienced) and make some predictions about its future. The lecture will show (with the help of slides and video) how computer graphics has evolved from simple black and white line drawings to photorealistic 3D creations. Examples will range from cutting edge university research to Hollywood movie special effects such as those seen in The Abyss, Jurrasic Park, Babe, and, of course, Toy Story (the first full-length 3D computer graphics film).

Andy teaches the introductory course on computer graphics, CS123, and is a co-author with Jim Foley, John Hughes (who also teaches here), and Steve Feiner of Computer Graphics, Principles and Practice, the "bible" of computer graphics.

June 30 - Jon Moter

What is computer programming? When you think of computer science, you think of people sitting in front of a computer programming it to do what you want it to do. But what does that involve? How do you explain to a computer exactly what you want to do?

I'll be discussing what it means to program a computer. How computers have no intuition, and cannot be instructed like other people. I will attempt to describe the process required to take a problem and translate that into a program that a computer can understand and run. I'll be touching on topics like program design, programming languages/syntax, execution of code by a computer, etc. As an example of some of the things involved, I will be talking about cs15.

I'm trying to get across what exactly is involved with computer programming, and hopefully convey some of the satisfaction and excitement you can get when you get a program to work.

July 1 - Dan Gould and Nate Stahl

Nate Stahl and Dan Gould are undergraduate researchers in the CS department. We will begin with an introduction to the program which runs the whole computer, the Operating System. After discussing operating system concepts and some common operating systems, we will give a brief overview of computer networking. Then, we will discuss computer security and encryption, looking at both the technical issues and social, ethical, and political implications. After this whirlwind tour of systems and security (complete with hands-on demonstrations), our dynamic duo will stick around to answer questions about undergraduate research in the CS department.

July 2 - John Savage

This lecture will introduce models of computation as well as simple methods of analysis. Simple models, such as the logic circuit, the random-access machine, and the pebble game, will be described. Using these models and a limited amount of analysis limits on the performance of computers we be demonstrated.

July 3 - Pascal van Hentenryck

Behind the Scene: the Inside of a Computer

Computers and cars are sharing more and more commonalities: more and more people are using them and most users have no real clue on how they work.

In this lecture, we open the hood and study the inside of a modern computer. Contrary to what you may expect, the inside of a computer has an inherent beauty which will try to make you appreciate.

Prerequisite: Knowledge of the numbers 0 and 1.

July 7 - Robert Duvall

The Internet, Agents, Object-Oriented Programming, and Java: a Buzzword-Complete Talk

If you have been listening to the "buzz" of the computer world lately, you have probably heard people talking about at least one of these topics. But how do they relate and why do you care? This talk describes how the Internet has created a fertile ground for exploring many interesting computing problems, and how object-oriented programming in general and the Java programming system specifically are taking advantage of the Internet to make programming more accessible to the masses.

July 8 - Tom Dean

I'll be talking about the problem faced by a robot in learning about a new domain. We will consider a robot given the task of delivering mail to offices in a large office building and focus on the specific problem of learning a map of the building to make it easier to deliver the mail. We'll consider both the theoretical and practical side of learning and how the two sides interact. In particular, we'll ask the question "How much do you already have to know in order to learn something?" In exploring the issues raised by this question, we will consider the possibility that there are limits to what can be learned.

July 10 - Leslie Kaelbling

Why Robot's Aren't As Smart As You Might Think They Are

Everyone has seen images of robots in movies and on TV. These robots may be helpful, silly, or destructive, but they are all smart. In this lecture, I'll tell you about the sad state of affairs of real robots (they're dumb) and we'll explore some of the difficulties that have kept roboticists from making smarter robots.

July 14 - Jon Monsarrat (graduate)

Stupid Stuff I Have Done
(that you will want to avoid)

Jon Monsarrat has had computer science experiences in academia, industry, and starting his own computer games company. Along the way he's made plenty of mistakes, and has some lessons learned to present. Some of them involve philosophy: Why is it important to have goals? Who cares? What does "success" mean? Why are people so hard to work with? What's in an attitude?

Other "stuff that wasn't written down when I tripped over it" involves the practicalities of getting what you want out of life. How to overcome impatience, dealing with sharks, earning respect, making the most of your skills, figuring out long-term goals, keeping focus on a long-term goal, and how not to go crazy in the process.

The lecture will be fast-paced and practical. Jon guarantees you will say "aha" at least once; you may even discover a new way of looking at some of life's hardest problems. Jon is an alumnus of the Brown CS department, and an award-winning teacher.

July 14 - Tom Doeppner

Concurrency

Computers, like people, often need to do many things at once. Sometimes we juggle several chores at the same time, sometimes we get other people to help us out. Can we set up a computer's chores so that they too can be juggled by one computer or divvied up among a number of computers? The answer is certainly yes, but it's not always easy. How do I assign chores to computers? How do I make certain that they all get finished? Doing some chores can often interfere with doing others. How do I steer clear of such interference? In this lecture we'll look at these issues and see how they're dealt with.

July 15 - Andy van Dam

July 16 - John Hughes


HOME