, 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); })(); Annual Course Schedule Computer Science | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Annual Course Schedule

Annual courses

SemesterComputer ScienceData Science
Fall
  • CS 100 (Web Media)
  • CS 104 (Applied Computing)
  • CS 108/106 (Introduction to Computing)
  • CS 112 (Introduction to Data Structures)
  • CS 212 (Data Structures and Algorithms)
  • CS 262 (Software Engineering)
  • CS 195/295 (Seminar)
  • CS 336 (Web Development)
  • CS 364 (Computer Security)
  • DATA 102 (Foundations of Data Science/Analytics)
  • DATA 103 (Exploratory Data Science/Analytics)
  • DATA 202 (Predictive Analytics)
Spring
  • CS 108 (Introduction to Computing)
  • CS 112 (Introduction to Data Structures)
  • CS 214 (Programming Languages)
  • CS 232 (Operating Systems and Networking)
  • CS 195/295 (Seminar)
  • CS 338 (Systems Administration: Infrastructure)
  • CS 339 (SystemsÌý Administration: Cloud)
  • CS 354 (Database Management Systems)
  • CS 375 (Artificial Intelligence)
  • CS 376 (Machine Learning)
  • CS 384 (Perspectives)
  • DATA 102 (Foundations of Data Science/Analytics)
  • DATA 103 (Exploratory Data Science/Analytics)
  • DATA 304 (Visualizing Data and Models)
  • DATA 385 (Topics in Data Science)

Alternate year courses

SemesterComputer ScienceData Science
Fall, Odd Years
  • CS 332 (Networking)
  • CS 374 (High Performance Computing)
Ìý
Spring, Even Years
  • CS 372 (Computer Graphics)
Ìý
Fall, Even Years
  • CS 312 (Logic, Computability, and Complexity)
Ìý
Spring, Odd Years
  • CS 326 (IoT)
Ìý

Ìý