, 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); })(); Bachelor of Computer Science (BCS) | app

app

Skip to main content

Bachelor of Computer Science (BCS)

Undergraduate Program On Campus

What You'll Learn

Join a challenging, distinguished program that gives you both breadth and depth in computer science.

In intense classes, you’ll explore areas like software engineering, computer architecture, digital security, and 2D and 3D design. You’ll learn from—and do research alongside—professors with industry experience in fields like artificial intelligence and supercomputing.

On top of that, our BCS degree is accredited by the Computing Accreditation Commission of . It’s a distinction we share with a small number of significant programs around the country, such as MIT and the University of Michigan.

The result? app BCS students go on to succeed at these and other graduate schools. They work for major technology firms internationally and locally, such as Google, Microsoft, Steelcase, Spectrum Health, and other business enterprises. And so can you.

What Makes This Program Great

  • A Christian mindset: Your professors are committed Christians who are passionate about making technology not just powerful, but also just. You’ll join that pursuit in local outreach programs and even study-abroad opportunities, where you’ll see firsthand how technology can improve lives.
  • The right skills: Gaining an edge in graduate school and your career requires that you be a good communicator on top of your mastery of programming and technical skills. app’s BCS makes sure you pick up those critical “soft” skills.
  • Abundant resources: You’ll work with facilities and equipment normally found at big research school. That includes class labs and research facilities, including a Beowolf-class supercomputing lab that you might even use for your own research.
  • Loading...
  • Loading...

This chart shows a sample schedule for the BCS program. Below the chart are additional notes. 

Image
Computer science BCS sample schedule

#1. CS 108 is common here, but CS 106 or 104 can work as well.

#2. The core categories for the Mathematical Sciences & the Natural Sciences are covered by the BCS cognate requirements provided that the BCS student chooses their science electives carefully.

#3. This schedule assumes that BCS students opt out of World Languages II but fail to exempt out of World Languages I. Students can choose to opt out of a different Knowledge & Understanding category.

#4. BCS students must take either oral rhetoric (COMM 101) or oral rhetoric for Engineers (IDIS 102) for one of the Arts & Rhetoric category courses.

#5. BCS students must either take tagged courses in the core or add tagged elective courses. Such courses must be available.

#6. This assumes that students cannot find a ABET-compatible natural science course that is only 2 credit hours. Finding one would reduce hours in this schedule.

#7. This can be any K & U course, not including Math and Science. Core says we get <= 4 for Math, which requires that we have 4 here, but the core document implies that 6 hours of math could count - which is it?

#8. Students need 124 total hours to graduate.