Skip to main content

CT State

Request Info

  • Temp Last Modified: 2024-04-24

Please submit the form below to get more information via email regarding enrolling at CT State Community College.

  • Hits: 273390

Home

  • Temp Last Modified: 2025-02-14

REGISTRATION OPENS OCTOBER 26

Registration for Winter 2026 and Spring 2027 opens at midnight on October 26. Plan ahead: The schedule for both sessions is now viewable.

CT State student walks outside on campus

PROGRAMS AND COURSES

Find Your Path

We offer more than 300 degrees and certificates, both credit and non-credit.

What do you want to study?

BROWSE BY

CT State student smiles in upper balcony of library

SUPPORT SERVICES

Dedicated Faculty and Staff

At CT State you don’t have to do it alone.
Advisor talks to student

FINANCIAL AID

Invest in Your Education

We believe all students should have affordable access to a CT State education.

campus tour

Take a Tour/Visit

chat boxes

One-Stop Enrollment

graduation cap

Paying For College

computer screen icon

Advising

12 Campuses.

5 Satellite Locations.

1 Application.

Upcoming Information Sessions

More Info Sessions

1:15
Average Faculty-to-Student Ratio
Academics →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });
$5,218
One-Year Full-Time In-State Tuition
Tuition and Fees →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });
300+
Degrees and Certificates
College Catalog →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });
200+
Student Clubs and Organizations
Student Clubs →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });
45%
Students Receiving Free Tuition
Free Tuition →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "percent") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "%" ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });
65%
First-Generation Students
Student Life →
// Smooth number animation helper function animateValue(el, start, end, duration, formatFn) { const startTime = performance.now(); function update(now) { const elapsed = now - startTime; const progress = Math.min(elapsed / duration, 1); const value = Math.floor(start + (end - start) * progress); el.textContent = formatFn(value); if (progress { if (el.dataset.animated === "true") return; // avoid re-running el.dataset.animated = "true"; const type = el.dataset.type || "plain"; if (type === "ratio") { // Example: 1:15 → animate the "15" const left = el.dataset.left || "1"; const rightTarget = parseInt(el.dataset.right || "0", 10) || 0; animateValue( el, 0, rightTarget, 1200, (val) => `${left}:${val}` ); } else if (type === "currency") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => "$" + val.toLocaleString() ); } else if (type === "percent") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "%" ); } else if (type === "plus") { const target = parseInt(el.dataset.target || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() + "+" ); } else { // Fallback: just a plain number const target = parseInt(el.textContent.replace(/\D/g, "") || "0", 10) || 0; animateValue( el, 0, target, 1200, (val) => val.toLocaleString() ); } }); } // Start animation when the stats section scrolls into view document.addEventListener("DOMContentLoaded", () => { const section = document.querySelector(".stats-container"); if (!section) return; const observer = new IntersectionObserver( (entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { runStatsAnimation(); obs.disconnect(); // run once } }); }, { threshold: 0.3 } ); observer.observe(section); });

Upcoming Events

View Full Calendar

News

More News

  • Hits: 1000273