1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1906],{36230:function(e,s,t){"use strict";t.d(s,{g:function(){return m}}),t(67294);var i=t(19095),n=t(22562),l=t(88062),r=t(10406),a=t(90885),o=t.n(a),c=t(85893);let d=[{url:"/education/",title:"Overview"},{url:"/education/why-teach-kotlin/",title:"Why Teach Kotlin"},{url:"/education/courses/",title:"List of Courses"}],m=({title:e,children:s,dataTestId:t})=>(0,c.jsxs)(r.a,{title:e,ogImageName:"education.png",theme:"light",topMenuItems:d,topMenuTitle:"Teach",topMenuHomeUrl:"/education/",currentUrl:"/education/",currentTitle:"Teach",mobileOverview:!1,topMenuButton:(0,c.jsx)(i.Z,{icon:(0,c.jsx)(n.Z,{}),href:"https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators",target:"_blank",rel:"noopener",children:"Join Educators"}),children:[(0,c.jsx)("div",{className:o().wrapper,"data-test":t,children:s}),(0,c.jsx)(l.P,{topTitle:"If you would like to introduce Kotlin into your classroom or have any questions about teaching or learning Kotlin",buttons:(0,c.jsxs)("div",{className:o().ctaButtons,children:[(0,c.jsx)(i.Z,{size:"l",mode:"rock",href:"https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators",target:"_blank",rel:"noopener",children:"Slack-channel\xa0â"}),(0,c.jsx)(i.Z,{size:"l",mode:"rock",href:"mailto:[email protected]",children:"[email protected]"})]}),mainTitle:"Connect with us"})]})},84268:function(e,s,t){"use strict";t.d(s,{y:function(){return _}});var i=t(67294),n=t(94184),l=t.n(n),r=t(28499),a=t(65709),o=t.n(a),c=t(10271),d=t.n(c),m=t(64952),u=t(85893);let h=({university:e,onClose:s})=>{let t=(0,i.useCallback)(e=>{e.stopPropagation(),s()},[s]);return(0,u.jsxs)("div",{className:l()(d().tooltip,"ktl-text-3"),children:[(0,u.jsxs)("div",{className:d().header,children:[(0,u.jsxs)("div",{children:[(0,u.jsx)("div",{className:d().headerText,children:e.title}),e.location]}),(0,u.jsx)(m.Z,{size:"s",className:d().closeIcon,onClick:t})]}),(0,u.jsxs)("div",{className:d().content,children:[(0,u.jsx)("div",{children:"Course:"}),e.courses.map(e=>(0,u.jsx)("div",{children:(0,u.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",children:e.name})},`${e.url}-${e.name}`))]})]})},p=({university:e,showTooltip:s,onClose:t})=>(0,u.jsx)("div",{className:l()(o().marker,{[o().active]:s}),children:s&&(0,u.jsx)(h,{university:e,onClose:t})});var x=t(20317),j=t.n(x);let f={lat:20,lng:0},g={fullscreenControl:!1,styles:[{featureType:"all",stylers:[{visibility:"simplified"}]},{featureType:"administrative.country",stylers:[{visibility:"off"}]},{featureType:"road.arterial",stylers:[{visibility:"off"}]},{featureType:"water",stylers:[{color:"#75cff0"},{visibility:"on"}]},{featureType:"water",elementType:"labels.text",stylers:[{visibility:"off"}]}],minZoom:2};var k=t(4511);let _=({className:e,universities:s})=>{let{0:t,1:n}=(0,i.useState)(""),a=(0,i.useCallback)(e=>{n(e)},[]),o=(0,i.useCallback)(()=>{n("")},[]);return(0,u.jsx)(k.SV,{fallback:(0,u.jsx)("div",{children:"Map is unavailable"}),children:(0,u.jsx)("div",{className:l()(j().map,e),children:(0,u.jsx)(r.ZP,{bootstrapURLKeys:{key:"AIzaSyD4Lyv4gCOMhDlWrdlcn3pOLSwCpnDtn9k"},defaultCenter:f,defaultZoom:2,options:g,onChildClick:a,children:s.map(e=>(0,u.jsx)(p,{lat:e.geo.lat,lng:e.geo.lng,university:e,showTooltip:e.id===t,onClose:o},e.id))})})})}},10406:function(e,s,t){"use strict";t.d(s,{a:function(){return N}});var i=t(4730),n=t(67294),l=t(9008),r=t.n(l);t(98930);var a=t(33663),o=t(75375),c=t(99946),d=t(27519),m=t(11163),u=t(94184),h=t.n(u),p=t(95586),x=t.n(p),j=t(40927),f=t(92790),g=t(6863),k=t(35225),_=t(85893);let v=["title","ogImageName","description","children","dataTestId","canonical","theme","forceDarkTopMenu","hideTopMenu","mobileOverview"],b=j.Z,N=e=>{var s;let{title:t,ogImageName:l,description:u,children:p,dataTestId:j,canonical:N,theme:y="dark",forceDarkTopMenu:w=!1,hideTopMenu:T=!1,mobileOverview:I=!0}=e,C=(0,i.Z)(e,v),S=(0,m.useRouter)(),K=(0,k.$)(),L=(s=S.pathname).endsWith("/")?s:`${s}/`,O=C.topMenuItems||[],B=(0,n.useMemo)(()=>O.map(e=>e.url).indexOf(L),[L,O]),E=(0,n.useCallback)((e,s)=>{e.preventDefault(),S.push(s)},[S]),M=(0,n.useMemo)(()=>`${K}/assets/images/open-graph/${l||"general.png"}`,[l,K]),Z=(0,n.useMemo)(()=>l?M:`${K}/assets/images/twitter/general.png`,[l,M,K]),P=(0,n.useMemo)(()=>N||(0,k.Z)(S.pathname),[N,S.pathname]);
1return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(r(),{children:[(0,_.jsx)("title",{children:t}),(0,_.jsx)("meta",{property:"og:title",content:t}),(0,_.jsx)("meta",{property:"og:type",content:"website"}),(0,_.jsx)("meta",{property:"og:url",content:K+S.pathname}),u&&(0,_.jsx)("meta",{name:"description",content:u}),(0,_.jsx)("meta",{property:"og:image",content:M}),u&&(0,_.jsx)("meta",{property:"og:description",content:u}),(0,_.jsx)("meta",{property:"og:site_name",content:"Kotlin"}),(0,_.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,_.jsx)("meta",{name:"twitter:site",content:"@kotlin"}),(0,_.jsx)("meta",{name:"twitter:title",content:t}),u&&(0,_.jsx)("meta",{name:"twitter:description",content:u}),(0,_.jsx)("meta",{name:"twitter:image:src",content:Z}),(0,_.jsx)("link",{rel:"canonical",href:P})]}),(0,_.jsxs)(d.f6,{theme:y,children:[(0,_.jsx)(a.ZP,{currentUrl:C.currentUrl,currentTitle:C.currentTitle,productWebUrl:b.latest.url,hasSearch:!0,searchConfig:f,hasBorder:!1}),!T&&(0,_.jsx)(g.M,{children:(0,_.jsx)("div",{className:x().sticky,"data-testid":"top-menu",children:(0,_.jsx)(d.f6,{theme:w?"dark":y,children:(0,_.jsx)(c.Z,{className:x().topMenu,homeUrl:C.topMenuHomeUrl,title:C.topMenuTitle,activeIndex:B,items:O,linkHandler:E,mobileOverview:I,children:C.topMenuButton})})})}),(0,_.jsx)("div",{className:h()(x().contentWrapper,{[x().contentWrapperLight]:"light"===y}),"data-testid":j,children:p})]}),(0,_.jsx)(d.f6,{theme:"dark",children:(0,_.jsx)(o.Z,{})})]})}},6863:function(e,s,t){"use strict";t.d(s,{M:function(){return r}}),t(67294);var i=t(87460),n=t.n(i),l=t(85893);let r=({children:e})=>(0,l.jsx)("div",{className:n().stickyHeader,children:e})},35728:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return D}});var i=t(8307),n=t(67294),l=t(94184),r=t.n(l),a=t(44814),o=t(19095),c=t(22562),d=t(75629),m=t(36230),u=t(11364),h=t.n(u),p=t(85893);let x=({countriesCount:e,universitiesCount:s})=>(0,p.jsxs)("div",{className:h().numbers,children:[(0,p.jsxs)("div",{className:h().number,children:[(0,p.jsx)("div",{className:h().title,children:(0,p.jsx)("div",{className:"ktl-hero",children:e})}),(0,p.jsx)("div",{className:h().subtitle,children:(0,p.jsx)("div",{className:"ktl-text-2",children:"countries"})})]}),(0,p.jsxs)("div",{className:h().number,children:[(0,p.jsx)("div",{className:h().title,children:(0,p.jsx)("div",{className:"ktl-hero",children:s})}),(0,p.jsx)("div",{className:h().subtitle,children:(0,p.jsx)("div",{className:"ktl-text-2",children:"universities"})})]})]});var j=t(74024);let f=[{title:"David Vaughn, University of Missouri-St. Louis",text:"Kotlin is faster to develop and comprehend what is happening; near 100% backwards compatibility makes it easy to show in Java and translate into Kotlin while still utilizing every available library from Java; Students seem to understand it fairly quickly."},{title:"Sergey Bratus, Dartmouth College",text:"I used Kotlin's features such as nullable types and smart casts as an excuse to discuss broader topics of programming languages design and security. Without Kotlin, the class would have been a lot less interesting for me :)"},{title:"Luka Pavlic, University of Maribor",text:"Kotlin offers cleaner code, less violations of object-orientation, some patterns are idioms (object, extension functions, observers...)."}],g=()=>(0,p.jsx)(j.Z,{quotes:f,large:!0});var k=t(84268),_=t(26645),v=t.n(_);let b=()=>{let e=(0,a.Ke)();return(0,p.jsxs)("div",{className:v().launchCourse,children:[(0,p.jsxs)("div",{className:r()("ktl-text-1",v().text),children:["The Programming in Kotlin course is a comprehensive toolkit for teaching Kotlin and can be easily customized to align with specific educational needs. The course comes with slides, lecture notes, and assessment resources.",(0,p.jsx)("div",{className:v().buttonWrap,children:(0,p.jsx)(o.Z,{href:"https://drive.google.com/drive/folders/1nN3LuyEfmBaSDZpnb4VA9kDuLakmVXH1?usp=drive_link",target:"_blank",rel:"noopener",size:"l",className:v().button,children:"Download all materials\xa0â"})})]}),(0,p.jsxs)("div",{className:r()(v().linksBlock,v().linksBlockFirst),children:[(0,p.jsx)("div",{className:r()(e("rs-h4"),"ktl-offset-bottom-xs"),children:"Lecture slides"}),(0,p.jsxs)("ul",{className:r()(v().list,v().listLarge,e("rs-text-2")),children:[(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/18EB_yQ6O9hOiyyyxTqSr-4fWpU-8NvJSRqRosSWFsSE/edit?usp=drive_link",children:"Introduction to Kotlin"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1RvnmqWM-Q_hYi1dWwqN1ieK2pZAwlThOkLI9j5yqViU/edit?usp=drive_link",children:"Object-oriented programming"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1R7n5plsn5caGpYrI9omxbEuX6pazjDj2d9X0IQ2AdLg/edit?usp=drive_link",children:"Generics"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1o0c25j-5UKE1Qw94W26numHxMU_xL0uFchCWJfaOuUc/edit?usp=drive_link",children:"Collections"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/19C10TZM1kT0AzEjqSfLZs1_HC3Ye0E9h6muVDikl4uo/edit?usp=drive_link",children:"Functional programming"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}
1),href:"https://docs.google.com/presentation/d/1n8rTULotZHei3ktajyupwRpKdPDACBAZeBo2GqwYhHY/edit?usp=drive_link",children:"Parallel and concurrent programming"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1WT0kVeLpZ8-cS1211oXVvjPesgPgTJxIuIJHkU6-49k/edit?usp=drive_link",children:"Asynchronous programming"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1_F9CVHdbXoRagLUpBGjpwS9DDbzB2K-Cfv4Pz5qKza4/edit?usp=drive_link",children:"Exceptions"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1sAzzlOs4H3MYEUUYb5NnmAOJsO9YQSss4YAywZaNDJw/edit?usp=drive_link",children:"Testing"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1Plt2cpm-GRzxHt1Vu8C90FWnuSYToucWXPLaJKlBRMc/edit?usp=sharing",children:"Build systems"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/11mYc_tt2c7qw72i8gaQ9vePTcd0F0LbZCS6ep9PFG28/edit?usp=drive_link",children:"JVM + the Kotlin compiler"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1hZTaQ1gdStte2aeQU78UmpVzpKErdeOCRQPOYH2p3DI/edit?usp=drive_link",children:"Reflection (JVM)"})})]})]}),(0,p.jsxs)("div",{className:r()(v().linksBlock,v().linksBlockSecond),children:[(0,p.jsx)("div",{className:r()(e("rs-h4"),"ktl-offset-bottom-xs"),children:"NEW: Backend Development with Kotlin"}),(0,p.jsxs)("ul",{className:r()(v().list,e("rs-text-2")),children:[(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/presentation/d/1LdJ8HJXkCEq74YSbtMKktJQNr0BiKaKQUPgIZU4W1no/edit?usp=sharing",children:"Slides"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://github.com/nbirillo/duck_shop_server_side",children:"Demo project"})})]}),(0,p.jsx)("div",{className:r()(e("rs-h4"),"ktl-offset-bottom-s","ktl-offset-top-s"),children:"Coming soon: Test-Driven and Spec-Driven Development with Kotlin"}),(0,p.jsx)("div",{className:r()(e("rs-h4"),"ktl-offset-bottom-xs"),children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://docs.google.com/document/d/1plW4HJQWuzHDRI2QiTr8hqg5WwIMFQ0Le9AoUmiw3qY/edit?usp=drive_link",children:"Syllabus"})}),(0,p.jsx)("div",{className:r()(e("rs-h4"),"ktl-offset-bottom-xs"),children:"Assessment resources"}),(0,p.jsxs)("ul",{className:r()(v().list,e("rs-text-2")),children:[(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://forms.gle/UJ91acwMAk17qax7A",children:"Quizzes"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://forms.gle/GhtGZHprkTUzr5hV6",children:"Homework assignments"})}),(0,p.jsx)("li",{children:(0,p.jsx)("a",{className:e("rs-link",{external:!0}),href:"https://forms.gle/wTm3M8GfgaVCsxsQ8",children:"Tests"})})]})]})]})};var N=t(78246);t(27469);var y=t(81258),w=t(12431),T=t(83868),I=t.n(T);let C=e=>{let s={};return e.Email?I()(e.Email)||(s.Email="Please enter a valid email address"):s.Email="This field is required",s};function S(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),t.push.apply(t,i)}return t}var K=({onSubmitted:e,consentIds:s,formId:t,valuesTransformer:n=e=>e})=>async(l,{setSubmitting:r,setStatus:a})=>{r(!0),a({error:null});try{let a=n(l);await N.U.sendAcceptance(s,l.Email),await (0,N.O)(function(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{};s%2?S(Object(t),!0).forEach(function(s){(0,i.Z)(e,s,t[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(t,s))})}return e}({formid:t},a)),r(!1),e()}catch(e){r(!1),a({error:"An error occurred while sending your message, please try again later."})}},L=t(86821),O=t.n(L),B=t(21746);let E=N.U.ConsentId.NEWSLETTER,M={Email:""},Z=()=>{let e=(0,a.Ke)(),{0:s,1:t}
1=(0,n.useState)(!1);return(0,p.jsx)(w.J9,{initialValues:M,validate:C,onSubmit:(e,s)=>{K({onSubmitted:()=>t(!0),formId:"4687",consentIds:E,valuesTransformer:e=>({Email:e.Email,kotlinforEducationNewsletter:!0,privacyConsent:!0})})(e,s)},children:({setFieldValue:t})=>(0,p.jsxs)(w.l0,{className:O().form,children:[(0,p.jsx)("img",{src:"/_next/static/media/mail-icon.98d65634.svg",className:O().icon,alt:"Subscribe form"}),(0,p.jsx)("div",{className:r()(O().text,e("rs-h3")),children:"Subscribe to be the first to know about new resources, webinars, and educational initiatives."}),(0,p.jsx)(y.jc,{name:"Email",placeholder:"Email address",type:"email",onClear:()=>t("Email",""),className:O().input}),(0,p.jsx)(y.mN,{consentId:E,privacy:N.U,className:O().checkbox}),s?(0,p.jsxs)("span",{className:r()(O().button,O().submitted),children:[(0,p.jsx)("span",{className:O().submittedText,children:"Subscribe"}),(0,p.jsx)(B.Z,{className:O().submittedIcon})]}):(0,p.jsx)(y.Li,{size:"m",className:O().button,children:"Subscribe"})]})})};var P=t(3043),W=t.n(P);function A(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),t.push.apply(t,i)}return t}function U(e){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{};s%2?A(Object(t),!0).forEach(function(s){(0,i.Z)(e,s,t[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):A(Object(t)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(t,s))})}return e}t(3218);var D=function(){var e;let s=(0,a.Ke)(),{0:i,1:l}=(0,n.useState)(null);(0,n.useEffect)(()=>{t.e(3986).then(t.bind(t,33986)).then(e=>{l(e.default)})},[]);let u=(0,n.useMemo)(()=>i?i.map(e=>U(U({},e),{},{id:`${e.title}-${e.location}-${e.geo.lat}-${e.geo.lng}`})):[],[i]),h=null!==(e=null==i?void 0:i.length)&&void 0!==e?e:0,j=(0,n.useMemo)(()=>i?new Set(i.map(e=>(function(e){let s=e.split(",");return s[s.length-1].trim()})(e.location))).size:0,[i]);return(0,p.jsxs)(m.g,{title:"Kotlin for Education",dataTestId:"teach-index-page",children:[(0,p.jsxs)("section",{className:"ktl-layout ktl-layout--center ktl-offset-top-xl",children:[(0,p.jsx)("h1",{className:"ktl-hero ktl-offset-bottom-xxl",children:"Teach Computer Science with\xa0Kotlin"}),(0,p.jsx)(b,{}),(0,p.jsxs)("div",{className:W().topMobileButtons,children:[(0,p.jsx)(o.Z,{icon:(0,p.jsx)(c.Z,{}),href:"https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators",target:"_blank",rel:"noopener",children:"Join Educators Community"}),(0,p.jsx)(o.Z,{mode:"outline",href:"/education/why-teach-kotlin/",children:"Why Teach Kotlin\xa0â"})]}),(0,p.jsxs)("div",{className:r()(W().features,"ktl-row","ktl-offset-top-l"),children:[(0,p.jsx)("div",{className:"ktl-col-12 ktl-col-md-4",children:(0,p.jsxs)("div",{className:W().feature,children:[(0,p.jsx)("div",{className:r()(W().featureIcon,"ktl-offset-bottom-m"),children:(0,p.jsx)("img",{src:"/images/education/icons/teach-academically-recognized-icon.svg",alt:"Academically recognized"})}),(0,p.jsxs)("div",{className:W().featureContent,children:[(0,p.jsx)("div",{className:r()(s("rs-h3"),"ktl-offset-bottom-s"),children:"Academically recognized"}),(0,p.jsx)("div",{className:"ktl-text-2",children:"Over 300 of the world's top universities include Kotlin in various computer science courses (as of June 2023)."})]})]})}),(0,p.jsx)("div",{className:"ktl-col-12 ktl-col-md-4",children:(0,p.jsxs)("div",{className:W().feature,children:[(0,p.jsx)("div",{className:r()(W().featureIcon,"ktl-offset-bottom-m"),children:(0,p.jsx)("img",{src:"/images/education/icons/teach-popular-icon.svg",alt:"Language of the industry"})}),(0,p.jsxs)("div",{className:W().featureContent,children:[(0,p.jsx)("div",{className:r()(s("rs-h3"),"ktl-offset-bottom-s"),children:"Language of the industry"}),(0,p.jsx)("div",{className:"ktl-text-2",children:"Kotlin is used by top companies such as Google, Amazon, Twitter, Reddit, Netflix, Uber, Slack, just to name a few."})]})]})}),(0,p.jsx)("div",{className:"ktl-col-12 ktl-col-md-4",children:(0,p.jsxs)("div",{className:W().feature,children:[(0,p.jsx)("div",{className:r()(W().featureIcon,"ktl-offset-bottom-m"),children:(0,p.jsx)("img",{src:"/images/education/icons/teach-multiplatform-icon.svg",alt:"Multiplatform"})}),(0,p.jsxs)("div",{className:W().featureContent,children:[(0,p.jsx)("div",{className:r()(s("rs-h3"),"ktl-offset-bottom-s"),children:"Multiplatform"}),(0,p.jsx)("div",{className:"ktl-text-2",children:"Kotlin is a top choice for teaching Android development. It is also being adopted for teaching multiplatform development, web, server-side programming, data science, and other computer science topics."})]})]})})]}),(0,p.jsx)("div",{className:"ktl-offset-top-l",children:(0,p.jsxs)("div",{className:W().topButtons,children:[(0,p.jsx)(o.Z,{size:"l",icon:(0,p.jsx)(c.Z,{}),href:"https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators",target:"_blank",rel:"noopener",children:"Join Educators Community"}),(0,p.jsx)(o.Z,{size:"l",mode:"outline",href:"/education/why-teach-kotlin/",children:"Why Teach Kotlin\xa0â"})]})})]}),(0,p.jsx)("section",{className:r()(W().universities,W().anchorTarget,"ktl-offset-top-xxl"),id:"kotlin-courses-around-the-world",children:(0,p.jsxs)("div",{className:"ktl-layout ktl-layout--center",children:[(0,p.jsx)("div",{className:W().universitiesTop,children:(0,p.jsxs)("div",{className:W().universitiesTopInner,children:[(0,p.jsxs)("div",{className:W().universitiesTopTitle,children:[(0,p.jsx)("h2",{className:"ktl-h1",children:(0,p.jsx)("a",{href:"#kotlin-courses-around-the-world",className:r()(W().anchorLink,W().anchorLinkSmall),children:"Kotlin Courses Around the World"})}),(0,p.jsxs)("p",{className:"ktl-text-1 ktl-offset-top-l",children:["Explore our interactive map with links to university courses that",(0,p.jsx)("br",{})," include Kotlin."]})]}),(0,p.jsxs)("h2",{className:r()("ktl-h1",W().universitiesTopTitleMobile),children:["Kotlin is taught at ",h," universities"]}),(0,p.jsx)("div",{className:W().universitiesTopNumbers,children:(0,p.jsx)(x,{countriesCount:j,universitiesCount:h})})]})}),(0,p.jsx)("div",{className:r()(W().universitiesLogos,"ktl-offset-top-m"),children:(0,p.jsxs)("div",{className:W().logos,children:[(0,p.jsx)("div",{className:W().logosItem,children:(0,p.jsx)("img",{className:W().logosHopkins,src:"/images/education/universities/harvard.jpg",alt:"Harvard University"})}),(0,p.jsx)("div",{className:W().logosItem,children:(0,p.jsx)("img",{className:W().logosCambridge,src:"/images/education/universities/cambridge.png",alt:"University of Cambridge"})}),(0,p.jsx)("div",{className:W().logosItem,children:(0,p.jsx)("img",{className:W().logosStanford,src:"/images/education/universities/stanford.png",alt:"Stanford University"})}),(0,p.jsx)("div",{className:W().logosItem,children:(0,p.jsx)("img",{className:W().logosImperial,src:"/images/education/universities/imperial.png",alt:"Imperial College London"})}),(0,p.jsx)("div",{className:W().logosItem,children:(0,p.jsx)("img",{className:W().logosChicago,src:"/images/education/universities/uchicago.png",alt:"The University of Chicago"})})]})}),(0,p.jsx)(k.y,{className:W().mapWrapper,universities:u}),(0,p.jsx)("div",{className:r()(W().universitiesBottom,"ktl-offset-top-m"),children:(0,p.jsx)("div",{className:"ktl-row",children:(0,p.jsxs)("div",{className:"ktl-col-12 ktl-col-sm-8 ktl-col-sm-offset-2",children:[(0,p.jsxs)("p",{className:"ktl-text-2 ktl-offset-bottom-m",children:["To add your university's Kotlin course to the map, contact us at"," ",(0,p.jsx)("a",{href:"mailto:[email protected]",className:"rs-link",children:"[email protected]."})," ",(0,p.jsx)("br",{}),"We'll send you a Kotlin T-shirt and stickers for your students."]}),(0,p.jsx)(o.Z,{size:"l",mode:"outline",href:"/education/courses/",children:"All universities"})]})})}),(0,p.jsx)("div",{className:W().universitiesMobileButton,children:(0,p.jsx)(o.Z,{mode:"outline",href:"/education/courses/",children:"Learn more\xa0â"})})]})}),(0,p.jsx)("section",{className:r()(W().resources,W().anchorTarget,"ktl-offset-top-xxl"),id:"start-teaching-kotlin",children:(0,p.jsxs)("div",{className:"ktl-layout ktl-layout--center",children:[(0,p.jsxs)("div",{className:r()(W().resourcesTop,"ktl-offset-bottom-xl"),children:[(0,p.jsx)("img",{className:W().resourcesTopImage,src:"/images/education/icons/education-main.png",alt:"Kotlin resources"}),(0,p.jsx)("h2",{className:"ktl-h1",children:(0,p.jsxs)("a",{href:"#start-teaching-kotlin",className:r()(W().anchorLink,W().anchorLinkSmall),children:["Start Teaching Kotlin",(0,p.jsx)("br",{})," with These Resources"]})})]}),(0,p.jsxs)("ul",{className:W().links,children:[(0,p.jsxs)("li",{className:W().linksFirstList,children:[(0,p.jsx)("p",{className:"ktl-h4 ktl-offset-bottom-xs",children:"Get started"}),(0,p.jsxs)("ul",{className:W().list,children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"/docs/kotlin-tour-welcome.html",className:s("r
1s-link",{external:!0}),children:"Tour of Kotlin"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://jb.gg/academy/kotlin-onboarding",className:s("rs-link",{external:!0}),target:"_blank",rel:"noopener noreferrer",children:"Kotlin Onboarding: Introduction"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://jb.gg/academy/kotlin-oop",className:s("rs-link",{external:!0}),target:"_blank",rel:"noopener noreferrer",children:"Kotlin Onboarding: Object-Oriented Programming"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://jb.gg/academy/kotlin-collections",className:s("rs-link",{external:!0}),target:"_blank",rel:"noopener noreferrer",children:"Kotlin Onboarding: Collections"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://jb.gg/refactoring-kotlin",className:s("rs-link",{external:!0}),target:"_blank",rel:"noopener noreferrer",children:"Introduction to IDE Code Refactoring in Kotlin"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://jb.gg/academy/kotlin-algorithm",className:s("rs-link",{external:!0}),target:"_blank",rel:"noopener noreferrer",children:"Algorithmic Challenges in Kotlin"})}),(0,p.jsxs)("li",{className:W().listItem,children:[(0,p.jsx)("div",{className:s("rs-text-2"),children:"Atomic Kotlin:"}),(0,p.jsxs)("ul",{className:r()(W().list,W().sublist),children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://www.atomickotlin.com/exercises/",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Hands-on exercises"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://github.com/svtk/AtomicKotlinCourse",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Course project"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://www.jetbrains.com/help/education/educator-start-guide.html",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Educator start guide"})})]})]}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://docs.google.com/document/d/1XIJaV3zhn-tJhDc_6Kr00lmTo5zCBuES3Yt67wX752M/edit",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Kotlin curriculum for beginners"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://hyperskill.org/tracks?category=4&utm_source=jbkotlin_hs&utm_medium=referral&utm_campaign=kotlinlang-education&utm_content=button_1&utm_term=22.03.23",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Kotlin tracks by JetBrains Academy"})})]})]}),(0,p.jsxs)("li",{className:W().linksSecondList,children:[(0,p.jsx)("p",{className:"ktl-h4 ktl-offset-bottom-xs",children:"Tools"}),(0,p.jsxs)("ul",{className:W().list,children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://www.jetbrains.com/community/education/#students",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Free educational licenses for students and teachers"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://plugins.jetbrains.com/plugin/10081-jetbrains-academy",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"JetBrains Academy plugin"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"/docs/mixing-java-kotlin-intellij.html#convert-java-files-to-kotlin",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Java-to-Kotlin converter"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://www.jetbrains.com/code-with-me/",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Code With Me"})})]})]}),(0,p.jsxs)("li",{className:W().linksThirdList,children:[(0,p.jsx)("p",{className:"ktl-h4 ktl-offset-bottom-xs",children:"Online Courses"}),(0,p.jsxs)("ul",{className:W().list,children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.oreilly.com/library/view/introduction-to-kotlin/9781491964125/",className:s("r
1s-link",{external:!0}),children:"Introduction to Kotlin Programming"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.oreilly.com/library/view/advanced-kotlin-programming/9781491964149/",className:s("rs-link",{external:!0}),children:"Advanced Kotlin"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.coursera.org/learn/kotlin-for-java-developers",className:s("rs-link",{external:!0}),children:"Programming Kotlin for Java Developers"})})]})]}),(0,p.jsxs)("li",{className:W().linksFourthList,children:[(0,p.jsx)("p",{className:"ktl-h4 ktl-offset-bottom-xs",children:"Android in Kotlin"}),(0,p.jsxs)("ul",{className:W().list,children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://developer.android.com/courses/android-basics-compose/course",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Android Basics with Compose course"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://developer.android.com/teach",target:"_blank",rel:"noopener noreferrer",className:s("rs-link",{external:!0}),children:"Android Development with Kotlin course"})})]})]}),(0,p.jsxs)("li",{className:W().linksFifthList,children:[(0,p.jsx)("p",{className:"ktl-h4 ktl-offset-bottom-xs",children:"Practice Kotlin"}),(0,p.jsxs)("ul",{className:W().list,children:[(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://play.kotlinlang.org/koans/overview",className:s("rs-link"),children:"Koans"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"https://kotlinlang.org/lp/kotlin-heroes/",className:s("rs-link"),children:"Kotlin Heroes"})}),(0,p.jsx)("li",{className:W().listItem,children:(0,p.jsx)("a",{href:"/docs/advent-of-code.html",className:s("rs-link"),children:"Solve Advent of Code Puzzles"})})]})]})]})]})}),(0,p.jsx)("section",{className:r()("ktl-layout","ktl-layout--center","ktl-offset-top-xxl",W().subscriptionSection),children:(0,p.jsx)(Z,{})}),(0,p.jsx)("section",{className:r()(W().video,"ktl-offset-top-xxl"),children:(0,p.jsx)("div",{className:"ktl-layout ktl-layout--center",children:(0,p.jsx)("div",{className:"ktl-row",children:(0,p.jsx)("div",{className:"ktl-col",children:(0,p.jsx)(d.Z,{mode:1,id:"PLlFc5cFwUnmzT4cgLOGJYGnY6j0W2xoFA",previewImgSrc:"https://img.youtube.com/vi/CQlBQ5tfbHE/maxresdefault.jpg"})})})})}),(0,p.jsx)("section",{className:"ktl-layout ktl-layout--center ktl-offset-top-xxl",children:(0,p.jsx)("div",{className:"ktl-row",children:(0,p.jsx)("div",{className:"ktl-col-12 ktl-col-md-10 ktl-col-md-offset-1",children:(0,p.jsx)(g,{})})})})]})}},35225:function(e,s,t){"use strict";t.d(s,{$:function(){return n},Z:function(){return l}});var i=t(34155);function n(){return i.env.NEXT_PUBLIC_SITE_URL||"https://kotlinlang.org"}function l(e){let s=n(),t=e.endsWith("/")?e:`${e}/`;return`${s}${t}`}},76938:function(e,s,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/education",function(){return t(35728)}])},90885:function(e){e.exports={wrapper:"education-layout_wrapper__AjJfb",ctaButtons:"education-layout_ctaButtons__y5UWV"}},86821:function(e){e.exports={form:"subscription-form_form__K74jl",icon:"subscription-form_icon__5Fr1h",text:"subscription-form_text__Ym8PD",input:"subscription-form_input__Aassq",checkbox:"subscription-form_checkbox__6jQIB",button:"subscription-form_button__SbXrf",submitted:"subscription-form_submitted__jjS3k",submittedText:"subscription-form_submittedText___n75E",submittedIcon:"subscription-form_submittedIcon__ZYBhO"}},26645:function(e){e.exports={linksBlock:"teach-launch-course_linksBlock__PWM1i",list:"teach-launch-course_list__5G_Kf",buttonWrap:"teach-launch-course_buttonWrap__JoooX",button:"teach-launch-course_button__NCNrD",listLarge:"teach-launch-course_listLarge__ujwSL",launchCourse:"teach-launch-course_launchCourse__p7bX1",text:"teach-launch-course_text___wp0Z",linksBlockFirst:"teach-launch-course_linksBlockFirst__kgH86",linksBlockSecond:"teach-launch-course_linksBlockSecond__GnITX"}},65709:function(e){e.exports={marker:"teach-map-marker_marker__EOCbP",active:"teach-map-marker_active__fQLSx"}},10271:function(e){e.exports={tooltip:"teach-map-tooltip_tooltip___Iiam",header:"teach-map-tooltip_header__txpQ3",headerText:"teach-map-tooltip_headerText__SR63B",content:"teach-map-tooltip_content__Y1k5a",closeIcon:"teach-map-tooltip_closeIcon__FvqRf"}},20317:function(e){e.exports={map:"teach-map_map__Nw9la"}},11364:function(e){e.exports={numbers:"teach-numbers_numbers__iHdD7",number:"teach-numbers_number__7b0n1"}},95586:function(e){e.exports={contentWrapper:"landing-layout_contentWrapper__MtGs4",contentWrapperLight:"landing-layout_contentWrapperLight__bAYNg"}},87460:function(e){e.exports={stickyHeader:"sticky-header_stickyHeader__8qmss"}},3043:function(e){e.exports={feature:"education_feature__9QdXG",featureContent:"education_featureContent__7DKYa",topMobileButtons:"education_topMobileButtons__Pmo3w",topButtons:"education_topButtons__AyUd0",universitiesTopInner:"education_universitiesTopInner__d5LSV",universitiesTopNumbers:"education_universitiesTopNumbers__BYJZe",universitiesTopTitleMobile:"education_universitiesTopTitleMobile__zz_x8",universitiesLogos:"education_universitiesLogos__ipKMq",universitiesBottom:"education_universitiesBottom__8ri74",universitiesMobileButton:"education_universitiesMobileButton__YZ2lh",logos:"education_logos__prW3m",logosStanford:"education_logosStanford__E5GZS",logosHopkins:"education_logosHopkins__bxJtz",logosCambridge:"education_logosCambridge__4_3Sd",logosImperial:"education_logosImperial__4Yc88",logosChicago:"education_logosChicago__Rki0M",resourcesTopImage:"education_resourcesTopImage__e_Z3_",resourcesTop:"education_resourcesTop__Oxgnq",links:"education_links__UYrZf",linksFirstList:"education_linksFirstList__y_2jo",linksSecondList:"education_linksSecondList__uvhAK",linksThirdList:"education_linksThirdList__YT4_W",linksFourthList:"education_linksFourthList__904Zy",linksFifthList:"education_linksFifthList__M43in",listItem:"education_listItem__UHLoZ",sublist:"education_sublist__geOGb",video:"education_video__dWWNP",videoInner:"education_videoInner__kXSno",features:"education_features__Uzs0I",logosItem:"education_logosItem__nDjpl",subscriptionSection:"education_subscriptionSection__FRijt",mapWrapper:"education_mapWrapper__sW_Da",universitiesTopTitle:"education_universitiesTopTitle__L7fkB",anchorTarget:"education_anchorTarget__jCcZw",anchorLink:"education_anchorLink__Qf6UK",anchorLinkSmall:"education_anchorLinkSmall__OnulJ"}},40927:function(e,s){"use strict";s.Z={url:"https://github.com/JetBrains/kotlin/releases",latest:{version:"2.4.20",url:"https://github.com/JetBrains/kotlin/releases/tag/v2.4.20"}}},92790:function(e){"use strict";e.exports=JSON.parse('{"searchAlgoliaId":"7961PKYRXV","searchAlgoliaApiKey":"1bfad5fdbae302b33d844ed1b43ec4d5","searchAlgoliaIndexName":"prod_KOTL
1INLANG_WEBHELP"}')}},function(e){e.O(0,[55,6944,7286,6261,8499,8768,8471,4895,1710,2009,2888,9774,179],function(){return e(e.s=76938)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.