Blog Archive March 2009

Stats Talk (you should go)

Dr. Tim Hesterberg, senior statistician at Google, has offered to give a talk at Allegheny on the many different types of jobs he's had as a statistician.  The talk will be on Thursday 4/2 at 4pm in Carr 223.  

TITLE

 Oil, Earthquakes, and Survival:  variety of statistics jobs

ABSTRACT

 I'll talk about some statistics jobs I've had:

  • systems engineering at Pacific Gas & Electric (before it went bankrupt),
  • college teaching and consulting, including tromping around Tennessee on an earthquake project,
  • research in Australia,
  • statistical software research and development in Seattle,
  • training and consulting gigs in Switzerland, UK, and France,
  • my quest to change statistical education,
  • Google (Google lives on experiment & data!).


 This talk is intended for undergraduates in mathematical sciences; one advantage of work as a statistician is the possibility of a great deal of variety.

         

Objects lab, video, projects

First, I've posted Wednesday's lecture. I should say, it is now uploading. Grab both Monday's and Wednesday's lecture and you'll have a complete set!

Also, I've posted the Objects Lab. I'm sure I've missed something, but that's why we use the web... it is cheap to change electrons.

Lastly, I'd like to talk to each group on Friday (in-class or in a separate meeting scheduled during the day) about projects. I have yet to see a workplan from anyone, and that would be really useful for you, and really useful for me for helping you. So, lets chat. It's a good thing. Really.

Right. Off to not sleep!

Still more video...

I've now converted the video to DivX AVI, which got it down to 300ish MB. Still trying to do better.

The resource page links to the newest version. (The content hasn't changed, just the encoding. I will not, at any point, be editing that video.)

Lecture video continued...

The lecture video, I should note, is 500+ MB. This could take several years to download at Allegheny.

I did try compressing to another format yesterday, failed, and hence posted the full video. I'll give things another go this afternoon... or, you can download the monster. Up to you.

Lecture video

It took no small amount of time, and a few mistakes, to ultimately post a video that might be of no value to you. Let me know if I need to do anything to improve the state of affairs.

In the meantime, I have posted Monday's lecture in the protected section. (That's not a download link, so click away!)

Designing a Language

I am going to ask for one hour of your break.

Guy Steele has been involved in the design and implementation of programming languages for at least the last three decades. He is a Fellow at Sun Microsystems, and has helped shape the Common Lisp Object System (CLOS), Scheme, Java, and is now working on Fortress, Sun's parallel language for high-performance numerical computing.

He has both a homepage at Sun, and a Wikipedia page. The latter may, or may not, be a mark of greatness.

His talk, Designing a Language, was given at OOPSLA 1998. I saw this talk live when he presented it at Indiana University as part of a Horizon Day on programming languages. He speaks about the design and implementation of extensible programming languages using words of one syllable... unless he defines a multi-syllabic word in terms of one syllable words. It is amazing.

I highly recommend you watch this talk. You must listen carefully, however. Turn off the AIM and SMS, and think about what Guy is saying about languages and their design.

MVC Lab Posted

Today's lab should be straight-forward, and done within the lab period.

If you complete the lab and have time to spare, I recommend you and your classmate put together a work plan for your final project. What are you going to accomplish in the time allotted after spring break? Lay it out week-by-week.

If you still haven't settled on a project idea, make an appointment with me for a time either before you leave, over break, or immediately after you get back. 

Model-View-Controller

First (important, but unrelated): I will be sending out personal notes to all of you today and/or this weekend, and will review any work you have pointed me at/handed in this weekend. Send things my way if you want feedback!

Model-View-Controller

Next week, I'll be introducing a common pattern in object-orientation. In particular, the Model-View-Controller pattern tends to make it easier to manage the complexity of both GUI and web-based applications.

I've just posted (to the Materials section) the code and PDF I handed out in class on Wednesday. I will be going through it next Monday and Wednesday, and we may spill into Friday with that material. It should be eye-opening/educational regardless of the object-oriented language you prefer. In this case, my sample code is written using Scheme, largely because the object system makes it easier/more concise to express the MVC pattern.

I'm heavily leaning towards rewriting the last interpreter lab to be about object-orientation instead of lazy evaluation. I think it will be more interesting to you, and it should be able to be built directly off the code from Lab 5. I need to spend some time with it, but will do my best if you think that sounds good.

Laser-cut homes

I know this isn't exactly about languages. But it is incredible.

Is a CAD program just a language for expressing design? It depends on how far you're prepared to take the notion that a language is an interface. Regardless, computer-controlled manufacturing is going to be a significant growth industry over the coming decades. And the design and implementation of the tools we use to express those designs will represent incredible opportunities for students of computer science who cross their knowledge of computing and languages over into other disciplines.

Found on the Make:Blog.

How should this evaluate?

(interp (parse '(with (y (fun (y) (+ ((fun (y) (* y y)) y) y)))
                   (if0 (- ((fun (y) (+ y 3)) 5) 8)
                        (+ ((fun (y) (+ y y)) (y 4)) 2)
                        8
                        ))))


You tell me...

Deferred substitution code

At the start of this past week, I handed out a revised version of the deferred substitution code. The revised code stuck to syntactic forms you were familiar with, and also included more comments. Many of you received this in paper form, and I honestly meant to have it online sooner.

For your downloading pleasure, the deferred substitution code. It also serves as a starting point for the function implementation lab.