, but this code // executes before the first paint, when

app

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Physics and Astronomy | app

app

Skip to main content
School of STEM

Physics and Astronomy

Discover how the universe works.

At app, we're constantly amazed by the wonders of creation. Join us in exploring the “world of things,” which includes the fascinating interactions of quantum particles, the biophysics of cells, astronomical processes involving stars and galaxies, and the industrial applications of lasers, plasmas, and special electronic materials.

Here, you'll learn how to be a wise steward of science and technology. You'll graduate ready to pursue a career in physics, or in one of many fields that apply your physics expertise in different ways—from engineering to health science to education.

Explore Programs

Optics Minor

Delivery Mode
On Campus
Degree Options
Minor

Physics Major (BA, BS), Minor

Delivery Mode
On Campus
Degree Options
BA
BS
Major
Minor
Image
Aerial view of the observatory

Chart the skies

Easy access to app's state-of-the-art observatory means you'll engage with astronomy data that you gather yourself.

Physics and Astronomy Faculty

Loren Haarsma

Loren Haarsma

Associate Professor
526-8517
Paul Harper

Paul Harper

Associate Professor, Department Chair
526-6408
Larry Molnar

Larry A. Molnar

Professor, Observatory Director
526-6341
VanGyseghem

Gaetan VanGyseghem

Laboratory Services Coordinator
616-526-6262