www.outlier.org
Open in
urlscan Pro
23.227.38.65
Public Scan
Submitted URL: http://outlier.org/
Effective URL: https://www.outlier.org/
Submission Tags: tranco_l324
Submission: On April 13 via api from DE — Scanned from CA
Effective URL: https://www.outlier.org/
Submission Tags: tranco_l324
Submission: On April 13 via api from DE — Scanned from CA
Form analysis
9 forms found in the DOM<form novalidate="" class="max-w-[400px] mx-auto md:max-w-full" x-data="{
loading: false,
showErrors: false,
showSuccess: false,
}" x-on:submit.prevent="async () => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
showErrors = false
loading = true
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Footer',
email_signup_footer: 'Yes',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
email_signup: 'Footer',
product: 'course',
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
email_signup: 'Footer',
email_signup_footer: 'Yes',
product: 'course',
},
}),
})
}
showSuccess = true
loading = false
})
}">
<h2 class="header-4"> Stay in the know </h2>
<p class="text-[16px] leading-[1.5] text-grey-200 mt-[8px]"> Be the first to hear about new classes and breaking news. </p>
<div class="flex mt-[16px] md:mt-[24px]">
<input type="email" name="email" placeholder="person@email.com" class="input w-[8px] flex-grow border-r-0 rounded-r-none border-grey-400" x-model="$store.student.email"
x-bind:class="{'input-error': showErrors && !$store.student.validEmail()}">
<button type="submit" class="btn btn-green btn-input rounded-l-none shrink-0 whitespace-nowrap btn-disabled" x-bind:class="{
'btn-disabled': !$store.student.validEmail() || showSuccess || loading,
'btn-loading': loading,
}" x-bind:disabled="showSuccess || loading">
<span></span>
<span :class="{ 'opacity-0': loading }" x-text="showSuccess ? 'Sent' : 'Sign up'">Sign up</span>
</button>
</div>
<div x-collapse="" x-show="showErrors" x-bind:aria-hidden="!showErrors" aria-hidden="true" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> Sorry, your email does not look quite right. </p>
</div>
<div x-collapse="" x-show="showSuccess" x-bind:aria-hidden="!showSuccess" aria-hidden="true" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-success-400 pt-[8px]"> Thank you! You're on the list. </p>
</div>
<div class="mt-[16px] text-[14px] text-grey-200 leading-[1.5] richtext">
<p>By signing up for our email list, you indicate that you have read and agree to our <a href="/pages/terms" title="Terms">Terms of Use</a>. We respect <a href="/pages/privacy" title="Privacy">your privacy</a>.</p>
</div>
</form>
<form x-show="!showSuccess" novalidate="" x-on:submit.prevent="() => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Discount',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
type: 'BOGO Back to school 2023',
email_signup: 'Discount',
product: 'course',
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
type: 'BOGO Back to school 2023',
email_signup: 'Discount',
product: 'course',
},
}),
})
}
showErrors = false
showSuccess = true
})
}">
<h2 class="header-3 font-[400]"> Your Best. Semester. Ever! Start strong with 2-for-1 courses. </h2>
<div class="mt-[16px] richtext text-grey-200">
<div class="metafield-rich_text_field">
<p>Earn 6 credits for ¼ the cost of traditional college and take this semester by storm! Backed by our risk-free guarantee. Offer expires soon.</p>
</div>
</div>
<div class="w-full mt-[16px] md:mt-[24px]">
<label for="popup-email" class="block header-4"> Email address </label>
<div class="flex flex-col md:flex-row mt-[8px]">
<input type="email" name="email" id="popup-email" class="input bg-black md:w-[8px] md:flex-grow md:border-r-0 md:rounded-r-none" x-bind:class="{'text-error-200': showErrors && !$store.student.validEmail()}"
x-model="$store.student.email">
<button type="submit" class="btn btn-green mt-[16px] md:mt-0 w-full md:w-auto md:btn-input md:rounded-l-none shrink-0 whitespace-nowrap btn-disabled" x-bind:class="{ 'btn-disabled': !$store.student.validEmail() }"> Submit </button>
</div>
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> That doesn't look like an email address. Please check for typos and try again. </p>
</div>
<div class="text-[13px] mt-[16px] text-grey-200 richtext">
<div class="metafield-rich_text_field">
<p>By signing up for our email list, you indicate that you have read and agree to our <a href="https://www.outlier.org/pages/terms">Terms of Use</a> and <a href="https://www.outlier.org/pages/privacy">Privacy Policy</a>. </p>
</div>
</div>
</div>
</form>
<form x-show="!showSuccess" novalidate="" x-on:submit.prevent="() => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Discount',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
},
}),
})
}
showErrors = false
showSuccess = true
})
}">
<h2 class="header-3 font-[400]"> Black Friday for college courses? You read that right. </h2>
<div class="mt-[16px] richtext text-grey-200">
<div class="metafield-rich_text_field">
<p>Save an extra 30% off online college courses that are already half the national average. Offer ends Nov. 19.</p>
</div>
</div>
<div class="w-full mt-[16px] md:mt-[24px]">
<label for="popup-email" class="block header-4"> Email address </label>
<div class="flex flex-col md:flex-row mt-[8px]">
<input type="email" name="email" id="popup-email" class="input bg-black md:w-[8px] md:flex-grow md:border-r-0 md:rounded-r-none" x-bind:class="{'text-error-200': showErrors && !$store.student.validEmail()}"
x-model="$store.student.email">
<button type="submit" class="btn btn-green mt-[16px] md:mt-0 w-full md:w-auto md:btn-input md:rounded-l-none shrink-0 whitespace-nowrap btn-disabled" x-bind:class="{ 'btn-disabled': !$store.student.validEmail() }"> Submit </button>
</div>
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> That doesn't look like an email address. Please check for typos and try again. </p>
</div>
<div class="text-[13px] mt-[16px] text-grey-200 richtext">
<div class="metafield-rich_text_field">
<p>By signing up for our email list, you indicate that you have read and agree to our <a href="https://www.outlier.org/pages/terms">Terms of Use</a> and <a href="https://www.outlier.org/pages/privacy">Privacy Policy</a>. </p>
</div>
</div>
</div>
</form>
<form x-show="!showSuccess" novalidate="" x-on:submit.prevent="() => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Discount',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
},
}),
})
}
showErrors = false
showSuccess = true
})
}">
<h2 class="header-3 font-[400]"> Black Friday for college courses? Oh yeah, we went there. </h2>
<div class="mt-[16px] richtext text-grey-200">
<div class="metafield-rich_text_field">
<p>Save an extra 40% on online college courses. That’s on top of the regular 50% savings you get with Outlier vs. traditional college! Offer ends Nov. 28.</p>
</div>
</div>
<div class="w-full mt-[16px] md:mt-[24px]">
<label for="popup-email" class="block header-4"> Email address </label>
<div class="flex flex-col md:flex-row mt-[8px]">
<input type="email" name="email" id="popup-email" class="input bg-black md:w-[8px] md:flex-grow md:border-r-0 md:rounded-r-none" x-bind:class="{'text-error-200': showErrors && !$store.student.validEmail()}"
x-model="$store.student.email">
<button type="submit" class="btn btn-green mt-[16px] md:mt-0 w-full md:w-auto md:btn-input md:rounded-l-none shrink-0 whitespace-nowrap btn-disabled" x-bind:class="{ 'btn-disabled': !$store.student.validEmail() }"> Submit </button>
</div>
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> That doesn't look like an email address. Please check for typos and try again. </p>
</div>
<div class="text-[13px] mt-[16px] text-grey-200 richtext">
<div class="metafield-rich_text_field">
<p>Legalese: By signing up for our email list, you indicate that you have read and agree to our <a href="https://www.outlier.org/pages/terms">Terms of Use</a> and <a href="https://www.outlier.org/pages/privacy">Privacy Policy</a>. </p>
</div>
</div>
</div>
</form>
<form x-show="!showSuccess" novalidate="" x-on:submit.prevent="() => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Discount',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
type: 'Discount BlackFriday30',
email_signup: 'Discount',
product: 'course',
},
}),
})
}
showErrors = false
showSuccess = true
})
}">
<h2 class="header-3 font-[400]"> It's not too late! Enroll today to lock in 30% off all courses </h2>
<div class="mt-[16px] richtext text-grey-200">
<div class="metafield-rich_text_field">
<p>Gift yourself the world’s best online college courses and save an extra 30%. That’s on top of the regular 50% savings you get with Outlier vs. traditional college! Offer ends Dec. 5.</p>
</div>
</div>
<div class="w-full mt-[16px] md:mt-[24px]">
<label for="popup-email" class="block header-4"> Email address </label>
<div class="flex flex-col md:flex-row mt-[8px]">
<input type="email" name="email" id="popup-email" class="input bg-black md:w-[8px] md:flex-grow md:border-r-0 md:rounded-r-none" x-bind:class="{'text-error-200': showErrors && !$store.student.validEmail()}"
x-model="$store.student.email">
<button type="submit" class="btn btn-green mt-[16px] md:mt-0 w-full md:w-auto md:btn-input md:rounded-l-none shrink-0 whitespace-nowrap btn-disabled" x-bind:class="{ 'btn-disabled': !$store.student.validEmail() }"> Submit </button>
</div>
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> That doesn't look like an email address. Please check for typos and try again. </p>
</div>
<div class="text-[13px] mt-[16px] text-grey-200 richtext">
<div class="metafield-rich_text_field">
<p>Legalese: By signing up for our email list, you indicate that you have read and agree to our <a href="https://www.outlier.org/pages/terms">Terms of Use</a> and <a href="https://www.outlier.org/pages/privacy">Privacy Policy</a>. </p>
</div>
</div>
</div>
</form>
<form novalidate="" x-on:submit.prevent="() => {
if (!$store.student.validEmail()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email_signup: 'Syllabus',
syllabus_requested: 'Yes',
syllabus_request_course_of_interest: $store.popup.context.course,
})
$store.student.track('Lead Captured', {
course: $store.popup.context.course,
email: $store.student.email,
type: 'Syllabus',
product: 'course',
})
$store.student.track('Syllabus Requested', {
course: $store.popup.context.course,
syllabus_requested: 'Yes',
syllabus_request_course_of_interest: $store.popup.context.course,
lists: [{ id: 1, status: 'active' }],
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
email_signup: 'Syllabus',
type: 'Syllabus',
product: 'course',
syllabus_requested: 'Yes',
syllabus_request_course_of_interest: $store.popup.context.course,
},
}),
})
}
})
showErrors = false
showSuccess = true
}">
<h2 class="header-3"> Request full syllabus </h2>
<p class="mt-[24px] text-grey-200"> Please register your email address below to receive an email with the full course syllabus. </p>
<label for="popup-email" class="block header-4 mt-[24px]"> Email address </label>
<input type="email" name="email" id="popup-email" class="input mt-[8px]" placeholder="person@email.com" x-model="$store.student.email" x-bind:class="{'input-error': showErrors && !$store.student.validEmail()}">
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> Sorry, your email does not look quite right. </p>
</div>
<div x-show="showSuccess" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-success-400 pt-[8px]"> Thanks, we'll email you the syllabus shortly. </p>
</div>
<button type="submit" class="btn btn-green mt-[32px] w-full btn-disabled" x-bind:class="{'btn-disabled': !$store.student.validEmail() || showSuccess}" x-text="showSuccess ? 'Sent' : 'Request syllabus'">Request syllabus</button>
</form>
<form novalidate="" x-on:submit.prevent="() => {
if (disabled()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
email: $store.student.email,
firstName: $store.student.firstName,
email_signup: 'Waitlist',
waitlist_course: $store.popup.context.course,
lists: [{ id: 1, status: 'active' }],
})
$store.student.track('Lead Captured', {
email: $store.student.email,
first_name: $store.student.firstName,
type: 'Waitlist',
product: 'course',
course: $store.popup.context.course,
waitlist_course: $store.popup.context.course,
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
first_name: $store.student.firstName,
type: 'Waitlist',
product: 'course',
waitlist_course: $store.popup.context.course,
},
}),
})
}
showSuccess = true
})
}">
<h2 class="header-3" x-text="showSuccess ? 'You\'ve been added to the waitlist!' : 'Join the waitlist'">Join the waitlist</h2>
<div x-show="!showSuccess">
<p class="mt-[24px] text-grey-200"> Add your details to be notified when this course becomes available. </p>
<label for="popup-email" class="block header-4 mt-[24px]"> First name </label>
<input type="text" name="firstName" id="popup-first-name" class="input mt-[8px]" x-bind:class="{ 'input-error': showErrors && !$store.student.validFirstName() }" x-model="$store.student.firstName"
x-bind:tabindex="$store.popup.show && $store.popup.handle === 'waitlist-form' && !showSuccess ? 0 : -1" tabindex="-1">
<div x-show="showErrors && !$store.student.validFirstName()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> First name is required. </p>
</div>
<label for="popup-email" class="block header-4 mt-[24px]"> Email address </label>
<input type="email" name="email" id="popup-email" class="input mt-[8px]" placeholder="person@email.com" x-bind:class="{ 'input-error': showErrors && !$store.student.validEmail() }" x-model="$store.student.email"
x-bind:tabindex="$store.popup.show && $store.popup.handle === 'waitlist-form' && !showSuccess ? 0 : -1" tabindex="-1">
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]"> Please enter a valid email. </p>
</div>
<button type="submit" class="btn btn-green mt-[32px] w-full btn-disabled" x-bind:class="{ 'btn-disabled': disabled() || showSuccess }"> Join the waitlist </button>
</div>
<a class="btn btn-green mt-[32px] w-full" href="https://www.outlier.org/collections/course-catalog" x-show="showSuccess" style="display: none;">
Explore available courses
</a>
</form>
<form novalidate="" x-on:submit.prevent="async () => {
if (disabled()) {
showErrors = true
return
}
$store.consent.ready(async () => {
const segmentAllowed = await $store.consent.segmentAllowed()
if (segmentAllowed) {
$store.student.saveUser({
firstName: $store.student.firstName,
lastName: $store.student.lastName,
email_signup: 'Transfer Toolkit',
})
$store.student.track('Lead Captured', {
email: $store.student.email,
type: 'Transfer Toolkit',
email_signup: 'Transfer Toolkit',
product: 'course',
credit_transfer_school: school.join(' | '),
})
} else {
await fetch('https://outlier-app-six.vercel.app/api/essential', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: $store.student.email,
services: ['Active Campaign'],
events: ['Lead Captured'],
properties: {
first_name: $store.student.firstName,
last_name: $store.student.lastName,
type: 'Transfer Toolkit',
email_signup: 'Transfer Toolkit',
product: 'course',
credit_transfer_school: school.join(' | '),
},
}),
})
}
})
showErrors = false
showSuccess = true
openToolkit()
}">
<h2 class="header-3" x-text="$store.popup.context.title"></h2>
<p class="mt-[24px] text-grey-200" x-show="$store.popup.context.byline !== ''" x-html="$store.popup.context.byline">undefined</p>
<div class="flex flex-wrap mx-[-16px]">
<div class="w-full md:w-6/12 px-[16px]">
<label for="popup-first-name" class="block header-4 mt-[24px]" x-text="$store.popup.context.firstNameLabel"></label>
<input type="text" name="firstName" id="popup-first-name" class="input mt-[8px]" x-model="$store.student.firstName" x-bind:class="{ 'input-error': showErrors && !$store.student.validFirstName() }">
<div x-show="showErrors && !$store.student.validFirstName()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]" x-text="$store.popup.context.firstNameError"></p>
</div>
</div>
<div class="w-full md:w-6/12 px-[16px]">
<label for="popup-last-name" class="block header-4 mt-[24px]" x-text="$store.popup.context.lastNameLabel"></label>
<input type="text" name="lastName" id="popup-last-name" class="input mt-[8px]" x-model="$store.student.lastName" x-bind:class="{'input-error': showErrors && !$store.student.validLastName()}">
<div x-show="showErrors && !$store.student.validLastName()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]" x-text="$store.popup.context.lastNameError"></p>
</div>
</div>
</div>
<label for="popup-email" class="block header-4 mt-[24px]" x-text="$store.popup.context.emailLabel"></label>
<div class="text-grey-200 text-[14px] mt-[8px] richtext green-link" x-html="$store.popup.context.smallprint">undefined</div>
<input type="email" name="email" id="popup-email" class="input mt-[8px]" x-model="$store.student.email" x-bind:class="{ 'input-error': showErrors && !$store.student.validEmail() }">
<div x-show="showErrors && !$store.student.validEmail()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]" x-text="$store.popup.context.emailError"></p>
</div>
<label for="popup-school" class="block header-4 mt-[24px]" x-text="$store.popup.context.schoolLabel"></label>
<p class="text-grey-200 text-[14px] mt-[8px]" x-text="$store.popup.context.schoolByline"></p>
<div class="mt-[8px]">
<div class="relative">
<label class="sr-only" for="school-search">Search for a school</label>
<input name="school-search" id="school-search" class="input" placeholder="Type to search..." type="text" x-model="schoolSearchTerm" x-on:keyup.debounce="getSchools($event.target.value)">
<h3 class="sr-only" x-bind:aria-hidden="schools.length === 0" aria-hidden="true"> School search results </h3>
<ul class="bg-black border-t border-r border-l rounded-t-[4px] border-grey-400 absolute bottom-full left-0 right-0 max-h-[300px] overflow-auto flex flex-col" x-show="schools.length > 0" x-bind:aria-hidden="schools.length === 0" x-html="schools.map(s => `
<li class='w-full'>
<button
type='button'
class='text-left w-full text-[16px] leading-[16px] px-[24px] py-[12px] hover:bg-green-400 hover:text-green-800 transition'
x-on:click=addSchool('${encodeURIComponent(s)}')
>
${s}
</button>
</li>
`).join('')" x-on:click.outside="schools = []; schoolSearchTerm = ''" aria-hidden="true" style="display: none;"></ul>
<h3 class="sr-only" x-bind:aria-hidden="school.length === 0" aria-hidden="true"> School selections </h3>
<ul class="flex flex-wrap mt-[12px] mx-[-4px]" x-bind:aria-hidden="school.length === 0" x-html="school.map(s => `
<li class='text-[12px] bg-green-400 text-green-800 rounded-[4px] m-[4px] flex'>
<span class='px-[8px] py-[4px] max-w-[170px] text-ellipsis overflow-hidden whitespace-nowrap'>${s}</span>
<button
type='button'
class='h-full px-[8px] border-l border-green-800/[0.5]'
x-on:click=removeSchool('${encodeURIComponent(s)}')
>
x
</button>
</li>
`).join('')" aria-hidden="true"></ul>
</div>
</div>
<div x-show="showErrors && !validSchool()" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-error-400 pt-[8px]" x-text="$store.popup.context.schoolError"></p>
</div>
<div x-show="showSuccess" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<p class="text-success-400 pt-[24px]" x-text="$store.popup.context.successMessage"></p>
</div>
<button type="submit" class="btn btn-green mt-[32px] w-full md:w-auto md:ml-auto btn-disabled" x-bind:class="{ 'btn-disabled': disabled() || showSuccess }" x-text="showSuccess ? 'Sent!' : $store.popup.context.buttonLabel"></button>
</form>
<form
class="flex flex-col bg-black rounded-[4px] fixed bottom-[16px] md:bottom-[24px] lg:bottom-[32px] right-[16px] md:right-[24px] lg:right-[32px] z-[1001] w-full max-h-[calc(100vh-32px)] md:max-h-[calc(100vh-48px)] lg:max-h-[calc(100vh-64px)] max-w-[calc(100vw-32px)] md:max-w-[560px] border border-white"
x-data="{
changed: false,
}" x-init="$watch('$store.consent.show', () => {
if ($store.consent.show && ['GDPR','LGPD','nFADP','NEVADA_SB220','CPRA','CPA','CDPA','NDPR','PIPA','LAW25','DPDP',].includes($store.consent.regime)) {
$store.consent.setPrompted(true)
}
})" x-on:submit.prevent="() => {
const form = new FormData($el)
const purposes = {}
for (const [key, value] of Object.entries($store.consent.purposes)) {
if (value.showInConsentManager) {
purposes[key] = form.get(key) === 'on'
}
}
$store.consent.save($event, purposes)
$store.consent.show = false
}">
<div class="pb-[8px] px-[24px] md:px-[32px] pt-[24px] md:pt-[40px] overflow-auto">
<h2 class="header-4 text-[17px] lg:text-[18px]"> Let’s talk cookies. </h2>
<div class="text-grey-200 leading-[1.4] [&_a]:transition [&_a]:underline [&_a:hover]:text-green-400 mt-[8px] md:mt-[16px]">
<p>Not the study snacks. The kind that help you enjoy this website. (Our <a href="/pages/cookies" target="_blank" title="Cookies">Cookie Policy</a> explains how.) Want some?</p>
</div>
<ul class="pt-[16px]" x-data="{ active: null }" x-html="Object.entries($store.consent.purposes)
.filter(([key, value]) => value.showInConsentManager)
.map(([key, value], i) => `
<li
class='flex flex-col py-[16px] border-t border-white/[0.5] first:border-none'
x-data='{
enabled: ${$store.consent[`${key.charAt(0).toLowerCase()}${key.slice(1)}`]},
id: ${i},
get expanded() {
return this.active === this.id
},
set expanded(value) {
this.active = value ? this.id : null
},
}'
>
<div class='flex items-start justify-start relative'>
<div
class='toggle mt-[10px]'
:class='{
on: enabled,
off: !enabled,
}'
>
<div class='w-[24px] h-[24px] rounded-[12px] bg-white absolute left-[4px] top-[4px]'></div>
<input
class='cursor-pointer w-full h-full rounded-[32px] absolute inset-0 appearance-none z-[-1] pointer-events-auto'
type='checkbox'
${$store.consent[`${key.charAt(0).toLowerCase()}${key.slice(1)}`] ? 'checked' : ''}
id='consent-${key}'
name='${key}'
x-model='enabled'
@change='changed = true'
/>
</div>
${key === 'Functional' ? `
<label for='consent-Functional' class='cursor-pointer ml-[16px] mt-[10px]'>
Functionality Cookies
</label>
<button
class='w-[48px] h-[48px] flex items-center justify-center shrink-0 ml-auto'
type='button'
@click='expanded = !expanded'
:class='{
rotate180deg: expanded,
}'
>
<span class='sr-only'>Show description</span>
<svg role='img' aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'>
<path fill='none' fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.75 1.311L9.127 8.933a.533.533 0 01-.754 0L.75 1.311'/>
</svg>
</button>
` : ''}
${key === 'Analytics' ? `
<label for='consent-Analytics' class='cursor-pointer ml-[16px] mt-[10px]'>
Performance and Analytics Cookies
</label>
<button
class='w-[48px] h-[48px] flex items-center justify-center shrink-0 ml-auto'
type='button'
@click='expanded = !expanded'
:class='{
rotate180deg: expanded,
}'
>
<span class='sr-only'>Show description</span>
<svg role='img' aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'>
<path fill='none' fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.75 1.311L9.127 8.933a.533.533 0 01-.754 0L.75 1.311'/>
</svg>
</button>
` : ''}
${key === 'Advertising' ? `
<label for='consent-Advertising' class='cursor-pointer ml-[16px] mt-[10px]'>
Retargeting and Advertising Cookies
</label>
<button
class='w-[48px] h-[48px] flex items-center justify-center shrink-0 ml-auto'
type='button'
@click='expanded = !expanded'
:class='{
rotate180deg: expanded,
}'
>
<span class='sr-only'>Show description</span>
<svg role='img' aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'>
<path fill='none' fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.75 1.311L9.127 8.933a.533.533 0 01-.754 0L.75 1.311'/>
</svg>
</button>
` : ''}
${key === 'SaleOfInfo' ? `
<label for='consent-SaleOfInfo' class='cursor-pointer ml-[16px] mt-[10px]'>
Opt Out of the “Sale” or “Sharing” of Personal Information
</label>
<button
class='w-[48px] h-[48px] flex items-center justify-center shrink-0 ml-auto'
type='button'
@click='expanded = !expanded'
:class='{
rotate180deg: expanded,
}'
>
<span class='sr-only'>Show description</span>
<svg role='img' aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'>
<path fill='none' fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.75 1.311L9.127 8.933a.533.533 0 01-.754 0L.75 1.311'/>
</svg>
</button>
` : ''}
${!['Functional', 'Analytics', 'Advertising', 'SaleOfInfo'].includes(key) ? `
<label for='consent-${key}' class='cursor-pointer ml-[16px] mt-[10px]'>${value.name}</label>
<button
class='w-[48px] h-[48px] flex items-center justify-center shrink-0 ml-auto'
type='button'
@click='expanded = !expanded'
:class='{
rotate180deg: expanded,
}'
>
<span class='sr-only'>Show description</span>
<svg role='img' aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'>
<path fill='none' fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.75 1.311L9.127 8.933a.533.533 0 01-.754 0L.75 1.311'/>
</svg>
</button>
` : ''}
</div>
${key === 'Functional' ? `
<div x-show='expanded' x-collapse class='max-w-[496px] text-grey-200'>
<div class='pt-[8px] pb-[16px]'>
<p>These little guys supercharge the performance of our websites by helping us record your choices and preferences over time. Without these cookies, you might miss out on the full site experience, like enjoying the epic course trailers.</p>
</div>
</div>
` : ''}
${key === 'Analytics' ? `
<div x-show='expanded' x-collapse class='max-w-[496px] text-grey-200'>
<div class='pt-[8px] pb-[16px]'>
<p>We're data nerds. So we use these cookies to collect information about how Outliers like you use our site. This helps us improve our website for your next visit.</p>
</div>
</div>
` : ''}
${key === 'Advertising' ? `
<div x-show='expanded' x-collapse class='max-w-[496px] text-grey-200'>
<div class='pt-[8px] pb-[16px]'>
<p>We like to treat you as the unique human you are (it’s literally why we named this company Outlier). These cookies help serve advertising content that is relevant to you and identify your interests so that we can personalize your targeted ad experience. </p>
</div>
</div>
` : ''}
${key === 'SaleOfInfo' ? `
<div x-show='expanded' x-collapse class='max-w-[496px] text-grey-200'>
<div class='pt-[8px] pb-[16px]'>
<p>We sometimes share information with other websites you visit to personalize the advertisements we craft for you. If you don't want this level of personalization, you can opt out right here.</p>
</div>
</div>
` : ''}
${!['Functional', 'Analytics', 'Advertising', 'SaleOfInfo'].includes(key) ? `
<div x-show='expanded' x-collapse class='max-w-[496px] text-grey-200'>
<div class='pt-[8px] pb-[16px]'>
${value.descrition}
</div>
</div>
` : ''}
</li>
`)
.join('')
"></ul>
</div>
<div class="shrink-0 px-[24px] md:px-[32px] relative z-[1]" x-show="changed" x-collapse="" style="display: none; height: 0px; overflow: hidden;" hidden="">
<div class="w-full h-[16px] absolute bottom-full left-0 bg-gradient-to-t from-black"></div>
<div class="py-[16px] pb-[24px] md:py-[32px] flex justify-end">
<button type="submit" class="btn btn-green"> Save choices </button>
</div>
</div>
<div class="shrink-0 px-[24px] md:px-[32px] relative z-[1]" x-show="!changed" x-collapse="">
<div class="w-full h-[16px] absolute bottom-full left-0 bg-gradient-to-t from-black"></div>
<div class="py-[16px] pb-[24px] md:py-[32px] grid grid-cols-2 gap-x-[16px]">
<button type="button" class="btn btn-green" x-on:click="
$store.consent.optOut($event);
$store.consent.optedIn = false;
$store.consent.optedOut = true;
$store.consent.show = false;
"> Reject all </button>
<button type="button" class="btn btn-green" x-on:click="
$store.consent.optIn($event);
$store.consent.optedIn = true;
$store.consent.optedOut = false;
$store.consent.show = false;
"> Allow all </button>
</div>
</div>
</form>
Text Content
00 : 00 : 00 : 00 Skip to content Partners * High schools * Transfer Credit Network Outlier Courses -------------------------------------------------------------------------------- COURSES CALCULUS I The mathematics of change. INTRO TO STATISTICS How data describes our world. PRECALCULUS Master the building blocks of Calculus. COMPUTER SCIENCE I Code the future. INTRO TO FINANCIAL ACCOUNTING Find the story in numbers. COLLEGE SUCCESS FREE Don’t catch up. Get ahead. -------------------------------------------------------------------------------- View all courses -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Explore associate degrees -------------------------------------------------------------------------------- * Military Students * Transfer Students * Bachelor’s Seekers * Explore Associate Degrees YOUR CART -------------------------------------------------------------------------------- Checkout Log in Outlier Back Courses Partners Log in DEGREES -------------------------------------------------------------------------------- Explore associate degrees COURSES Calculus I Intro to Statistics Precalculus Computer Science I Intro to Financial Accounting College Success (Free) -------------------------------------------------------------------------------- View all courses Military Students Transfer Students Bachelor’s Seekers -------------------------------------------------------------------------------- Explore Associate Degrees PARTNERS High schools Transfer Credit Network COURSES Calculus I Intro to Statistics Precalculus Computer Science I Intro to Financial Accounting College Success (Free) -------------------------------------------------------------------------------- View all courses DEGREES -------------------------------------------------------------------------------- Explore associate degrees DUAL ENROLLMENT COURSES FOR HIGH SCHOOL STUDENTS NATIONWIDE Log in OUR INSTRUCTORS * MONICA THIEU, PH.D. Columbia University Intro to Psychology * MICHAEL LEE Illinois Institute of Technology * JIM MOUREY, PH.D. DePaul University * SHAMUS KHAN, PH.D. Princeton University * TIM CHARTIER PH.D. Davidson College Calculus I * MICHELLE THALLER PH.D. NASA Intro to Astronomy * JOHN KAAG PH.D. UMASS Lowell Intro to Philosophy Do I Qualify? Apply now LIFE-CHANGING COLLEGE AND CAREER PREP COLLEGE COURSES Save time and money on your degree and earn 3 transferable credits from a top 50 global university. COLLEGE PREP Get prepared for college with our free College Success course Outlier FALL IN LOVE WITH ONLINE LEARNING Top-rated instructors. Fun and flexible courses. And personalized support. Video: Outlier course playing on laptop in bedroom COURSES Cinematic courses taught by the world’s most engaging instructors * COLLEGE WRITING I Course Unlock the power of words. Learn more * INTRO TO FINANCIAL ACCOUNTING Course Find the story in numbers. Learn more * PROFESSIONAL COMMUNICATION Course Comms skills for the real world. Learn more * PRECALCULUS Course Master the building blocks of Calculus. Learn more * INTRO TO STATISTICS Course How data describes our world. Learn more * CALCULUS I Course The mathematics of change. Learn more * INTRO TO PSYCHOLOGY Course The science of the mind. Learn more * INTRO TO ASTRONOMY Course Our universe, explored. Learn more * INTRO TO BUSINESS Course The art of creating value. Learn more View catalog HEAR FROM OUR ALUMNI * JACQUELINE W. “LOVE LOVE LOVE. I’ve taken a lot of online courses over the years and [this] blows them all away—in design, teachers, production, content, and facilitating learning.” * TAIJA P. “I never thought I'd like an online class this much. I never expected to be so engaged, so thoroughly interested in everything I was learning, and to be excited about doing an online class.” * ELLIOT P. “The staff was amazing! Not only knowledgeable but very friendly and super supportive. I felt the same level of rapport with them as though I was attending physical classes and seeing each of them every day.” * * * FREQUENTLY ASKED QUESTIONS * AM I ELIGIBLE TO BE AN OUTLIER? To enroll in an Outlier course, you must be at least 13 years old and ready for the academic rigor of college-level coursework. Carefully consider your other responsibilities and your dedication before enrolling. * ARE COURSES COMPLETELY ONLINE? Yes, all Outlier courses are 100% online. That means you can learn with any teacher, during any class period—anywhere in the universe with Wi-Fi and a laptop or desktop computer. You can also stream lectures in our iPhone app, but you'll need a computer to complete the rest of your coursework. A full list of technical requirements is available in our Help Center. * IS OUTLIER ACCREDITED? We work with trusted partners to offer you accredited college courses worth actual college credit. For each Outlier course, you earn 3 credits from the University of Pittsburgh, a top 50 global university accredited by the Middle States Commission on Higher Education. Outlier-earned college credits have successfully transferred to hundreds of schools, from community colleges to the Ivy League. * WHAT IF I NEED ACCOMMODATIONS? If you have a request for reasonable disability accommodations, contact support@outlier.org. Please include specifics regarding the accommodation you are seeking. Additionally, if you have a disability accommodations letter, you may send that to us as well. Outlier’s mission is to increase access to education, and we’re committed to ensuring that learners with accessibility needs have equal opportunity to succeed in our courses. * WHAT IS THE TIME COMMITMENT FOR OUTLIER COURSES? Outlier courses are as academically rigorous as they are engaging. You can expect to spend about 45 minutes a day (about 5 hours per week), including time at school and at home. We recommend you: * Have at least 1 class period in your school schedule dedicated to your Outlier course * Take only 1 Outlier course at a time * WHY IS EVERYTHING SO DARK? Early on in the process of designing Outlier, we found that many students use their laptops late at night, and don’t feel like staring into a lightbulb. Too much white in the background of videos and active learning would be fatiguing and unpleasant. We also think it’s pretty neat that we decided to do this before Apple shifted everything to dark mode. SITEMAP SITEMAP * Catalog * About Outlier * Student Log In * Articles PARTNERS PARTNERS * High schools * Transfer Credit Network SOCIAL MEDIA * Instagram Instagram * YouTube YouTube ADDRESS Outlier by Savvas Copyright © 2024 Savvas Learning Company LLC. All Rights Reserved. Questions? Email us at hello@outlier.org STAY IN THE KNOW Be the first to hear about new classes and breaking news. Sign up Sorry, your email does not look quite right. Thank you! You're on the list. By signing up for our email list, you indicate that you have read and agree to our Terms of Use. We respect your privacy. * Privacy * Terms * Refunds * Jobs * Help Center Privacy options Reset consent © 2024 OUTLIER.ORG, INC BRILLIANT. Here’s your special 2-for-1 promo code: Copy Get Started YOUR BEST. SEMESTER. EVER! START STRONG WITH 2-FOR-1 COURSES. Earn 6 credits for ¼ the cost of traditional college and take this semester by storm! Backed by our risk-free guarantee. Offer expires soon. Email address Submit That doesn't look like an email address. Please check for typos and try again. By signing up for our email list, you indicate that you have read and agree to our Terms of Use and Privacy Policy. CALCULATE YOUR CUMULATIVE GPA YOUR ESTIMATED CUMULATIVE GPA IS Back to application Type Institution Course Name # of credits GPA Letter grade Select grade A B+ B C+ C D F · Select grade Cancel Save credits · Edit + Add institution or course Type Name # of credits Letter grade or GPA Institution Course Select grade A B+ B C+ C D F · Select grade Please fill out all fields. + Add institution or course Calculate Calculate Back to application BRILLIANT. Here’s your 30% off promo code: Copy GET STARTED BLACK FRIDAY FOR COLLEGE COURSES? YOU READ THAT RIGHT. Save an extra 30% off online college courses that are already half the national average. Offer ends Nov. 19. Email address Submit That doesn't look like an email address. Please check for typos and try again. By signing up for our email list, you indicate that you have read and agree to our Terms of Use and Privacy Policy. BRILLIANT. Here’s your 30% off promo code: Copy GET STARTED BLACK FRIDAY FOR COLLEGE COURSES? OH YEAH, WE WENT THERE. Save an extra 40% on online college courses. That’s on top of the regular 50% savings you get with Outlier vs. traditional college! Offer ends Nov. 28. Email address Submit That doesn't look like an email address. Please check for typos and try again. Legalese: By signing up for our email list, you indicate that you have read and agree to our Terms of Use and Privacy Policy. BRILLIANT. Here’s your 30% off promo code: Copy GET STARTED IT'S NOT TOO LATE! ENROLL TODAY TO LOCK IN 30% OFF ALL COURSES Gift yourself the world’s best online college courses and save an extra 30%. That’s on top of the regular 50% savings you get with Outlier vs. traditional college! Offer ends Dec. 5. Email address Submit That doesn't look like an email address. Please check for typos and try again. Legalese: By signing up for our email list, you indicate that you have read and agree to our Terms of Use and Privacy Policy. LOCK IN OUR LOWEST TUITION EVER + GET YOUR $0 DEGREE! Apply by August 17th to start Degrees+ this Fall and guarantee the lowest tuition ever. Apply Now REQUEST FULL SYLLABUS Please register your email address below to receive an email with the full course syllabus. Email address Sorry, your email does not look quite right. Thanks, we'll email you the syllabus shortly. Request syllabus JOIN THE WAITLIST Add your details to be notified when this course becomes available. First name First name is required. Email address Please enter a valid email. Join the waitlist Explore available courses * Facebook * LinkedIn * Twitter * Email Copy page URL -------------------------------------------------------------------------------- undefined undefined undefined undefined Search for a school SCHOOL SEARCH RESULTS SCHOOL SELECTIONS LET’S TALK COOKIES. Not the study snacks. The kind that help you enjoy this website. (Our Cookie Policy explains how.) Want some? Save choices Reject all Allow all