1. A window switching method implemented on a computer system comprising a display and an input device, the method comprising: displaying a windows list comprising a plurality of non-overlapping window snapshots on the display, each window snapshot corresponding to one of a plurality of programs being executed on the computer system, wherein the size of each window snapshot is automatically adjusted to be at least a predetermined minimum size and wherein the window snapshots are adjusted in size to fill the entire observable screen area of the display each time an additional window snapshot gets automatically added to the list in response to an additional corresponding program being executed, wherein a combined size of the window snapshots defines a size of the windows list, and when the size of the windows list exceeds the entire observable screen area of the display with each window snapshot adjusted to the predetermined minimum size, only a first portion of the windows list comprising a first subset of the window snapshots fills the entire observable screen area of the display, and a second portion of the windows list comprising a second subset of the window snapshots is not displayed in the display screen; making a program window corresponding to a selected snapshot to be the focused window of the display in response to a selection signal from the input device.