7 schools across Portland and Eugene — including a complete public K–12 French pathway in Eugene.
Oregon’s 7 French-language schools split cleanly between Portland and Eugene, representing two very different models. Eugene has Oregon’s only complete public K–12 French immersion pathway: Charlemagne Elementary (3J School District) → Roosevelt Middle School → South Eugene High School — three consecutive public schools through which a student can move from early grades to graduation entirely tuition-free within the Eugene school district.
Portland’s French landscape is predominantly private. Le Monde French Immersion Public Charter School is the sole free option in the metro, operating as a charter in the greater Portland area. The private options include L’Étoile French Immersion School of Portland and French International School of Oregon — both small AEFE-accredited programs from early childhood through middle or high school. International Leadership Academy in Lake Oswego (a Portland suburb) rounds out the Eastside options.
The geographic tradeoff is clear: Eugene offers fully public K–12 French education within the 3J district, while Portland provides more school choices but at private school rates for most of them.
Portland & Oregon has 7 French immersion and dual-language schools — 4 free public or charter programs and 3 private schools.
Private French school tuition in Portland & Oregon runs from about $17,600 to $30,420 per year. Public and charter immersion programs are tuition-free.
Yes. Portland & Oregon has 4 tuition-free French immersion programs in public or charter schools. Many use a lottery or an attendance zone for admission.
Portland & Oregon has 3 schools accredited by the French Ministry of Education (AEFE/MLF), following the French national curriculum toward the French Baccalaureate.
Grade ranges vary by school — from preschool (maternelle / pre-K) through elementary, with several continuing into middle and high school. Use the filters above to compare each school’s grade levels.
Know a school we're missing? Spotted an error? Let us know.