static/js/ktl-component/teach/index.jsx (463 lines of code) (raw):
import React from "react";
import '@jetbrains/kotlin-web-site-ui/out/components/typography';
import '@jetbrains/kotlin-web-site-ui/out/components/grid';
import YoutubePlayer from '@jetbrains/kotlin-web-site-ui/out/components/youtube-player';
import {TeachCtaBlock} from "./components/teach-cta-block";
import {TeachTopMenu} from "./components/teach-top-menu";
import {TeachNumbers} from "./components/teach-numbers";
import {TeachQuotes} from "./components/teach-quotes";
import '@rescui/typography';
import './style.scss';
import {SubscriptionForm} from './components/subscription-form';
import {TeachMap} from './components/teach-map/teach-map.jsx';
import {SlackIcon} from "@rescui/icons";
import { Button } from "@rescui/button";
import { TeachLaunchCourse } from "./components/teach-launch-course";
import { useTextStyles } from '@rescui/typography';
const Teach = (props) => {
const {countriesCount, universitiesCount, path} = props;
const textCn = useTextStyles();
return (
<div className="teach-wrapper" data-test="teach-index-page">
<TeachTopMenu path={path} />
<section className="ktl-layout ktl-layout--center ktl-offset-top-xl">
<h1 className="ktl-hero ktl-offset-bottom-xxl">Teach Computer Science with Kotlin</h1>
<TeachLaunchCourse />
<div className="teach-top-mobile-buttons">
<Button
icon={<SlackIcon />}
href="https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators"
target="_blank"
rel="noopener"
className="teach-cta-block-button"
>
Join Educators Community
</Button>
<Button mode="outline" href="why-teach-kotlin.html" className="teach-cta-block-button">
Why Teach Kotlin →
</Button>
</div>
<div className="teach-features ktl-row ktl-offset-top-l">
<div className="ktl-col-12 ktl-col-md-4">
<div className="teach-feature">
<div className="teach-feature__icon ktl-offset-bottom-m">
<img
src="/assets/images/ktl-component/teach/icons/teach-academically-recognized-icon.svg"
alt="Academically recognized"
/>
</div>
<div className="teach-feature__content">
<div className="ktl-h3 ktl-offset-bottom-s">Academically recognized</div>
<div className="ktl-text-2">
Over 300 of the world’s top universities include Kotlin in various computer science courses (as of June 2023).
</div>
</div>
</div>
</div>
<div className="ktl-col-12 ktl-col-md-4">
<div className="teach-feature">
<div className="teach-feature__icon ktl-offset-bottom-m">
<img
src="/assets/images/ktl-component/teach/icons/teach-popular-icon.svg"
alt="Language of the industry"
/>
</div>
<div className="teach-feature__content">
<div className="ktl-h3 ktl-offset-bottom-s">Language of the industry</div>
<div className="ktl-text-2">
Kotlin is used by top companies such as Google, Amazon, Twitter, Reddit, Netflix,
Uber, Slack, just to name a few.
</div>
</div>
</div>
</div>
<div className="ktl-col-12 ktl-col-md-4">
<div className="teach-feature">
<div className="teach-feature__icon ktl-offset-bottom-m">
<img
src="/assets/images/ktl-component/teach/icons/teach-multiplatform-icon.svg"
alt="Multiplatform"
/>
</div>
<div className="teach-feature__content">
<div className="ktl-h3 ktl-offset-bottom-s">Multiplatform</div>
<div className="ktl-text-2">
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.
</div>
</div>
</div>
</div>
</div>
<div className="ktl-offset-top-l">
<div className="teach-top-buttons">
<Button
size="l"
icon={<SlackIcon />}
href="https://surveys.jetbrains.com/s3/kotlin-slack-signup-educators"
target="_blank"
rel="noopener"
className="teach-cta-block-button"
>
Join Educators Community
</Button>
<Button size="l" mode="outline" href="why-teach-kotlin.html" className="teach-cta-block-button">
Why Teach Kotlin →
</Button>
</div>
</div>
</section>
<section
className="teach-universities ktl-offset-top-xxl ktl-with-anchor"
id="kotlin-courses-around-the-world"
>
<div className="ktl-layout ktl-layout--center">
<div className="teach-universities__top">
<div className="universities-top">
<div className="universities-top__title">
<h2 className="ktl-h1">
<a
href="#kotlin-courses-around-the-world"
className="kto-anchor-link kto-anchor-link--small"
>
Kotlin Courses Around the World
</a>
</h2>
<p className="ktl-text-1 ktl-offset-top-l">
Explore our interactive map with links to university courses that
<br /> include Kotlin.
</p>
</div>
<h2 className="ktl-h1 universities-top__title-mobile">
Kotlin is taught at {universitiesCount} universities
</h2>
<div className="universities-top__numbers">
<TeachNumbers countriesCount={countriesCount} universitiesCount={universitiesCount} />
</div>
</div>
</div>
<div className="teach-universities__logos ktl-offset-top-m">
<div className="teach-logos">
<div className="teach-logos__logo">
<img
className="teach-logos_hopkins"
src="/assets/images/ktl-component/teach/universities/harvard.jpg"
alt="Harvard University"
/>
</div>
<div className="teach-logos__logo">
<img
className="teach-logos_cambridge"
src="/assets/images/ktl-component/teach/universities/cambridge.png"
alt="University of Cambridge"
/>
</div>
<div className="teach-logos__logo">
<img
className="teach-logos_stanford"
src="/assets/images/ktl-component/teach/universities/stanford.png"
alt="Stanford University"
/>
</div>
<div className="teach-logos__logo">
<img
className="teach-logos_imperial"
src="/assets/images/ktl-component/teach/universities/imperial.png"
alt="Imperial College London"
/>
</div>
<div className="teach-logos__logo">
<img
className="teach-logos_chicago"
src="/assets/images/ktl-component/teach/universities/uchicago.png"
alt="The University of Chicago"
/>
</div>
</div>
</div>
<TeachMap className="teach-map__wrapper" />
<div className="teach-universities__bottom ktl-offset-top-m">
<div className="ktl-row">
<div className="ktl-col-12 ktl-col-sm-8 ktl-col-sm-offset-2">
<p className="ktl-text-2 ktl-offset-bottom-m">
To add your university’s Kotlin course to the map, contact us at
{' '}
<a href="mailto:education@kotlinlang.org" className="rs-link">
education@kotlinlang.org.
</a>
{' '}
<br />
We’ll send you a Kotlin T-shirt and stickers for your students.
</p>
<Button size="l" mode="outline" href="courses.html">
All universities
</Button>
</div>
</div>
</div>
<div className="teach-universities__mobile-button">
<Button mode="outline" href="courses.html">
Learn more →
</Button>
</div>
</div>
</section>
<section className="teach-resources ktl-offset-top-xxl ktl-with-anchor" id="start-teaching-kotlin">
<div className="ktl-layout ktl-layout--center">
<div className="teach-resources__top ktl-offset-bottom-xl">
<img
className="teach-resources__top-image"
src="/assets/images/ktl-component/teach/icons/education-main.png"
alt="Kotlin resources"
/>
<h2 className="ktl-h1">
<a href="#start-teaching-kotlin" className="kto-anchor-link kto-anchor-link--small">
Start Teaching Kotlin
<br /> with These Resources
</a>
</h2>
</div>
<ul className="teach-links">
<li className="teach-links__first-list">
<p className="ktl-h4 ktl-offset-bottom-xs">Get started</p>
<ul className="teach-list">
<li className="teach-list__item">
<a href="/docs/kotlin-tour-welcome.html" className={textCn('rs-link', {external: true})}>
Tour of Kotlin
</a>
</li>
<li className="teach-list__item">
<a href="https://jb.gg/academy/kotlin-onboarding" className={textCn('rs-link', {external: true})} target="_blank">
Kotlin Onboarding: Introduction
</a>
</li>
<li className="teach-list__item">
<a href="https://jb.gg/academy/kotlin-oop" className={textCn('rs-link', {external: true})} target="_blank">
Kotlin Onboarding: Object-Oriented Programming
</a>
</li>
<li className="teach-list__item">
<a href="https://jb.gg/academy/kotlin-collections" className={textCn('rs-link', {external: true})} target="_blank">
Kotlin Onboarding: Collections
</a>
</li>
<li className="teach-list__item">
<a href="https://jb.gg/refactoring-kotlin" className={textCn('rs-link', {external: true})} target="_blank">
Introduction to IDE Code Refactoring in Kotlin
</a>
</li>
<li className="teach-list__item">
<a href="https://jb.gg/academy/kotlin-algorithm" className={textCn('rs-link', {external: true})} target="_blank">
Algorithmic Challenges in Kotlin
</a>
</li>
<li className="teach-list__item">
<div className="ktl-text-2 ktl-dimmed-text">Atomic Kotlin:</div>
<ul className="teach-list teach-sublist">
<li className="teach-list__item">
<a
href="https://www.atomickotlin.com/exercises/"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}
>
Hands-on exercises
</a>
</li>
<li className="teach-list__item">
<a
href="https://github.com/svtk/AtomicKotlinCourse"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}
>
Course project
</a>
</li>
<li className="teach-list__item">
<a
href="https://www.jetbrains.com/help/education/educator-start-guide.html"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}
>
Educator start guide
</a>
</li>
</ul>
</li>
<li className="teach-list__item">
<a
href="https://docs.google.com/document/d/1XIJaV3zhn-tJhDc_6Kr00lmTo5zCBuES3Yt67wX752M/edit"
target="_blank"
className={textCn('rs-link', {external: true})}
>
Kotlin curriculum for beginners
</a>
</li>
<li className="teach-list__item">
<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"
className={textCn('rs-link', {external: true})}
>
Kotlin tracks by JetBrains Academy
</a>
</li>
</ul>
</li>
<li className="teach-links__second-list">
<p className="ktl-h4 ktl-offset-bottom-xs">Tools</p>
<ul className="teach-list">
<li className="teach-list__item">
<a
href="https://www.jetbrains.com/community/education/#students"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}
>
Free educational licenses for students and teachers
</a>
</li>
<li className="teach-list__item">
<a
href="https://plugins.jetbrains.com/plugin/10081-jetbrains-academy"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}
>
JetBrains Academy plugin
</a>
</li>
<li className="teach-list__item">
<a
href="/docs/mixing-java-kotlin-intellij.html#convert-java-files-to-kotlin"
target="_blank"
className={textCn('rs-link', {external: true})}
>
Java-to-Kotlin converter
</a>
</li>
<li className="teach-list__item">
<a href="https://www.jetbrains.com/code-with-me/"
target="_blank"
rel="noopener"
className={textCn('rs-link', {external: true})}>
Code With Me
</a>
</li>
</ul>
</li>
<li className="teach-links__third-list">
<p className="ktl-h4 ktl-offset-bottom-xs">Online Courses</p>
<ul className="teach-list">
<li className="teach-list__item">
<a
target="_blank"
rel="noopener"
href="https://www.oreilly.com/library/view/introduction-to-kotlin/9781491964125/"
className={textCn('rs-link', {external: true})}>
Introduction to Kotlin Programming
</a>
</li>
<li className="teach-list__item">
<a
target="_blank"
rel="noopener"
href="https://www.oreilly.com/library/view/advanced-kotlin-programming/9781491964149/"
className={textCn('rs-link', {external: true})}
>
Advanced Kotlin
</a>
</li>
<li className="teach-list__item">
<a
target="_blank"
rel="noopener"
href="https://www.coursera.org/learn/kotlin-for-java-developers"
className={textCn('rs-link', {external: true})}
>
Programming Kotlin for Java Developers
</a>
</li>
</ul>
</li>
<li className="teach-links__fourth-list">
<p className="ktl-h4 ktl-offset-bottom-xs">Android in Kotlin</p>
<ul className="teach-list">
<li className="teach-list__item">
<a href="https://developer.android.com/courses/android-basics-compose/course"
target="_blank"
className={textCn('rs-link', {external: true})}>
Android Basics with Compose course
</a>
</li>
<li className="teach-list__item">
<a href="https://developer.android.com/teach"
target="_blank"
className={textCn('rs-link', {external: true})}>
Android Development with Kotlin course
</a>
</li>
</ul>
</li>
<li className="teach-links__fifth-list">
<p className="ktl-h4 ktl-offset-bottom-xs">Practice Kotlin</p>
<ul className="teach-list">
<li className="teach-list__item">
<a href="https://play.kotlinlang.org/koans/overview"
className={textCn('rs-link')}>
Koans
</a>
</li>
<li className="teach-list__item">
<a href="https://kotlinlang.org/lp/kotlin-heroes/"
className={textCn('rs-link')}>
Kotlin Heroes
</a>
</li>
<li className="teach-list__item">
<a
href="/docs/advent-of-code.html"
className={textCn('rs-link')}
>
Solve Advent of Code Puzzles
</a>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section className="ktl-layout ktl-layout--center ktl-offset-top-xxl teach-subscription-section">
<SubscriptionForm />
</section>
<section className="teach-video ktl-offset-top-xxl">
<div className="ktl-layout ktl-layout--center">
<div className="ktl-row">
<div className="ktl-col">
<YoutubePlayer
mode={1}
id="PLlFc5cFwUnmzT4cgLOGJYGnY6j0W2xoFA"
previewImgSrc="https://img.youtube.com/vi/CQlBQ5tfbHE/maxresdefault.jpg"
/>
</div>
</div>
</div>
</section>
<section className="ktl-layout ktl-layout--center ktl-offset-top-xxl">
<div className="ktl-row">
<div className="ktl-col-12 ktl-col-md-10 ktl-col-md-offset-1">
<TeachQuotes />
</div>
</div>
</section>
<section className="ktl-offset-top-xxl">
<TeachCtaBlock />
</section>
</div>
);
}
export default Teach;