"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getServerSideProps = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const icon_1 = require("@cocalc/frontend/components/icon");
const antd_1 = require("antd");
const contact_1 = __importDefault(require("components/landing/contact"));
const content_1 = __importDefault(require("components/landing/content"));
const footer_1 = __importDefault(require("components/landing/footer"));
const head_1 = __importDefault(require("components/landing/head"));
const header_1 = __importDefault(require("components/landing/header"));
const image_1 = __importDefault(require("components/landing/image"));
const info_1 = __importDefault(require("components/landing/info"));
const latex_1 = __importDefault(require("components/landing/latex"));
const pitch_1 = __importDefault(require("components/landing/pitch"));
const sign_in_1 = __importDefault(require("components/landing/sign-in"));
const A_1 = __importDefault(require("components/misc/A"));
const customize_1 = require("lib/customize");
const with_customize_1 = __importDefault(require("lib/with-customize"));
const cocalc_course_assignments_2019_png_1 = __importDefault(require("public/features/cocalc-course-assignments-2019.png"));
const cocalc_jupyter_nbgrader_overview_png_1 = __importDefault(require("public/features/cocalc-jupyter-nbgrader-overview.png"));
const cocalc_teaching_png_1 = __importDefault(require("public/features/cocalc-teaching.png"));
const fa_graduation_cap_svg_1 = __importDefault(require("public/features/fa-graduation-cap.svg"));
const kiran_jpeg_1 = __importDefault(require("public/features/kiran.jpeg"));
const latex_logo_svg_1 = __importDefault(require("public/features/latex-logo.svg"));
const linux_logo_svg_1 = __importDefault(require("public/features/linux-logo.svg"));
const sage_sticker_1x1_inch_small_png_1 = __importDefault(require("public/features/sage-sticker-1x1_inch-small.png"));
const will_conley_jpg_1 = __importDefault(require("public/features/will_conley.jpg"));
function Teaching({ customize }) {
    const pitchPcLab = ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "server", style: { fontSize: "32px", marginRight: "10px" } }), " ", "An entire computer lab in the cloud"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "Every student works 100% online \u2013 inside their own dedicated workspace." }), (0, jsx_runtime_1.jsx)("li", { children: "Follow the progress of each student in real time." }), (0, jsx_runtime_1.jsxs)("li", { children: ["At any time you and your teaching assistants can", " ", (0, jsx_runtime_1.jsx)("strong", { children: "jump into a student's file" }), ", right where they are working, and answer their questions."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Use", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/time-travel.html", children: "TimeTravel" }) }), " ", "to see every step a student took to get to their solution, and to get context when helping them."] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/chat.html", children: "Integrated chat rooms" }) }), " ", "allow you to guide students directly where they are working or discuss collected files with your teaching assistants."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["The project's", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/project-log.html", children: "Activity Log" }) }), " ", "records exactly when and by whom a file was accessed.", " "] }), (0, jsx_runtime_1.jsxs)("li", { children: ["CoCalc's massive default", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "/software", children: "Software Environment" }) }), " ", "provides nearly everything anybody", " ", (0, jsx_runtime_1.jsx)("strong", { children: "has ever asked us to install since 2013!" })] })] })] }));
    const pitchNoSetup = ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "laptop", style: { fontSize: "32px", marginRight: "10px" } }), " ", "No software setup ", (0, jsx_runtime_1.jsx)("small", { children: "100% online" })] }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Fully managed software environment" }), ":"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "Forget any complicated software setup \u2013 everyone is able to start working in seconds!" }), (0, jsx_runtime_1.jsx)("li", { children: "Since everyone works with exactly the same software stack, all inconsistencies are eliminated." })] }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Batteries included" }), ": CoCalc includes much of what you need to teach your course", (0, jsx_runtime_1.jsx)("p", {}), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["Integrated", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/jupyter-notebook", children: (0, jsx_runtime_1.jsx)("strong", { children: "Jupyter Notebooks" }) }), " ", "with collaboration, recording changes, and much more\u2026"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Support for ", (0, jsx_runtime_1.jsx)("strong", { children: "many programming languages" }), ":", (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/python", children: "Python" }), " with many pre-installed", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/software/python", children: "Python packages" }), ";", (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/r-statistical-software", children: "Statistical Software R" }), " ", "with many pre-installed ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/software/r", children: "R packages" }), ";", (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/julia", children: "Julia" }), " programming language,", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/octave", children: "Octave" }), ", and", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/sage", children: "SageMath" }), ", \u2026"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["A ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/linux", children: "Linux environment" }), ", with many", " ", "pre-installed ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/software/executables", children: "utilities" }), " and a", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/terminal", children: "terminal" }), "."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Use a virtual", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/whiteboard", children: (0, jsx_runtime_1.jsx)("strong", { children: "Whiteboard" }) }), " ", "with embedded Jupyter Cells to bring your ideas across."] })] })] })] }));
    return ((0, jsx_runtime_1.jsxs)(customize_1.Customize, { value: customize, children: [(0, jsx_runtime_1.jsx)(head_1.default, { title: "Teach scientific software online using Jupyter Notebook, Python, R, and more" }), (0, jsx_runtime_1.jsxs)(antd_1.Layout, { children: [(0, jsx_runtime_1.jsx)(header_1.default, { page: "features", subPage: "teaching" }), (0, jsx_runtime_1.jsxs)(antd_1.Layout.Content, { children: [(0, jsx_runtime_1.jsx)("div", { style: { backgroundColor: "#c7d9f5" }, children: (0, jsx_runtime_1.jsx)(content_1.default, { startup: "CoCalc", logo: fa_graduation_cap_svg_1.default, title: "Teach scientific software online using Jupyter Notebooks", subtitle: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "CoCalc is a virtual online computer lab: it takes away the pain of teaching scientific software!" }), subtitleBelow: true, image: cocalc_course_assignments_2019_png_1.default, alt: "Cocalc's course management interface" }) }), (0, jsx_runtime_1.jsx)(pitch_1.default, { col1: pitchPcLab, col2: pitchNoSetup }), (0, jsx_runtime_1.jsx)(pitch_1.default, { col1: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "files", style: { fontSize: "32px", marginRight: "10px" } }), " ", "Manage all files"] }), (0, jsx_runtime_1.jsxs)("p", { children: ["The", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/teaching-instructors.html", children: "course management interface" }) }), " ", "gives you full control over distributing, collecting, grading and returning everyone's assignments."] }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(image_1.default, { src: cocalc_teaching_png_1.default, style: { width: "100%" }, alt: "Diagram showing how to use CoCalc for teaching." }) })] }), col2: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: [" ", (0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "book", style: { fontSize: "32px", marginRight: "10px" } }), " ", "Learn more"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["Start", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features", children: "discovering CoCalc" }) }), ":", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/jupyter-notebook", children: "CoCalc's Jupyter Notebooks" })] }), (0, jsx_runtime_1.jsxs)("li", { children: ["The", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/teaching-instructors.html", children: "Instructor Guide" }) }), " ", "explains how to use CoCalc to teach a course."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["The ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/", children: "CoCalc Manual" }), " ", "explains much of what CoCalc can do."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["There are a", " ", (0, jsx_runtime_1.jsx)("strong", { children: "large number of courses all over the world" }), " ", "running on CoCalc. We used to", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://github.com/sagemathinc/cocalc/wiki/Teaching", children: "list them here..." })] })] }), (0, jsx_runtime_1.jsxs)("p", { style: {
                                                fontSize: "150%",
                                                margin: "30px",
                                                padding: "15px",
                                                border: "1px solid #c0c0c0",
                                                boxShadow: "2px 2px 2px 2px #cfcfcf",
                                                borderRadius: "5px",
                                            }, children: [(0, jsx_runtime_1.jsx)(contact_1.default, {}), " or", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://docs.google.com/forms/d/e/1FAIpQLSesDZkGD2XVu8BHKd_sPwn5g7MrLAA8EYRTpB6daedGVMTpkA/viewform", children: "request a live demo" }), "!"] })] }) }), (0, jsx_runtime_1.jsx)(sign_in_1.default, {}), (0, jsx_runtime_1.jsx)("div", { style: { height: "60px", backgroundColor: "white" } }), (0, jsx_runtime_1.jsx)(info_1.default.Heading, { children: "Feature Overview" }), (0, jsx_runtime_1.jsxs)(info_1.default, { title: "NBGrader support", icon: "graduation-cap", image: cocalc_jupyter_nbgrader_overview_png_1.default, alt: "Editing an NBgrader Jupyter notebook", anchor: "a-nbgrader", children: [(0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc's Jupyter Notebooks fully support", " ", (0, jsx_runtime_1.jsx)("strong", { children: "automatic" }), " and ", (0, jsx_runtime_1.jsx)("strong", { children: "manual grading" }), " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/teaching-nbgrader.html", children: "using our version of NBGrader" }), " ", "with no configuration!"] }), (0, jsx_runtime_1.jsx)("p", { children: "The teacher's notebook contains exercise cells for students and test cells, some of which students can also run to get immediate feedback. Once collected, you tell CoCalc to automatically run the full test suite across all student notebooks and tabulate the results." }), (0, jsx_runtime_1.jsx)("p", { children: "By default, tests run in the student's project, so malicious code won't impact anybody except the student." })] }), (0, jsx_runtime_1.jsxs)("div", { style: { padding: "30px 10%", backgroundColor: "#c7d9f5" }, children: [(0, jsx_runtime_1.jsxs)("h1", { style: { textAlign: "center", color: "#333", fontSize: "32pt" }, children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "wrench", style: { marginRight: "10px" } }), "Available tools"] }), (0, jsx_runtime_1.jsxs)(antd_1.Row, { children: [(0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 6, children: (0, jsx_runtime_1.jsxs)(Tool, { image: fa_graduation_cap_svg_1.default, href: "/features/jupyter-notebook", title: "Jupyter Notebooks", alt: "Jupyter logo", children: ["CoCalc's own", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/jupyter-notebook", children: "Jupyter Notebook" }), " ", "implementation offers realtime synchronization, TimeTravel, automatic grading, side chat, and more."] }) }), (0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 6, children: (0, jsx_runtime_1.jsxs)(Tool, { image: sage_sticker_1x1_inch_small_png_1.default, href: "https://doc.cocalc.com/sagews.html", title: "Sage Worksheets", alt: "SageMath sticker logo", children: [(0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/sagews.html", children: "Sage Worksheets" }), " ", "are similar to Jupyter Notebooks, but made to work well with", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://www.sagemath.org", children: "SageMath" }), ". They offer a single-document model that scales to large documents and integrated 3d graphics."] }) }), (0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 6, children: (0, jsx_runtime_1.jsxs)(Tool, { image: latex_logo_svg_1.default, href: "/features/latex-editor", alt: "LaTeX Logo", title: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(latex_1.default, {}), " Editor"] }), children: ["A full", " ", (0, jsx_runtime_1.jsxs)(A_1.default, { href: "/features/latex-editor", children: [(0, jsx_runtime_1.jsx)(latex_1.default, {}), "editor"] }), " ", "supporting preview rendering, forward/inverse search, error reporting, and", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/latex.html", children: "much more" }), "."] }) }), (0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 6, children: (0, jsx_runtime_1.jsxs)(Tool, { image: linux_logo_svg_1.default, href: "/features/terminal", title: "Linux Terminal", alt: "Tux Linux Penguin", children: ["Use the collaborative CoCalc terminal to access all powerful command line tools in a", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "/features/linux", children: "full Ubuntu Linux environment" }), "."] }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { padding: "30px 10%", backgroundColor: "#fff" }, children: [(0, jsx_runtime_1.jsxs)("h1", { style: { textAlign: "center", color: "#333", fontSize: "32pt" }, children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "comment", style: { marginRight: "10px" } }), " ", "Testimonials"] }), (0, jsx_runtime_1.jsxs)(antd_1.Row, { children: [(0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 12, children: (0, jsx_runtime_1.jsx)(Testimonial, { image: kiran_jpeg_1.default, name: "Kiran Kedlaya", coords: "UC San Diego, March 2017", children: "I just found out that my CoCalc class got by far the best course evaluations for any course I've taught at UCSD to date (over 85% on the favorable/unfavorable scale), which makes it a sure thing that I'll be teaching this course again (in some form) next year! Many thanks for the backend work on CoCalc, for the course materials, for the guest lecture..." }) }), (0, jsx_runtime_1.jsx)(antd_1.Col, { lg: 12, children: (0, jsx_runtime_1.jsxs)(Testimonial, { image: will_conley_jpg_1.default, name: "Will Conley", coords: "University of California at Los Angeles, Fall 2016", children: ["CoCalc provides a user-friendly interface. Students don't need to install any software at all. They just open up a web browser and go to", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://cocalc.com", children: "https://cocalc.com" }), " and that's it. They just type code directly in, hit shift+enter and it runs, and they can see if it works. It provides immediate feedback. The", " ", (0, jsx_runtime_1.jsx)(A_1.default, { href: "https://doc.cocalc.com/teaching-instructors.html", children: "course management features" }), " ", "work really well."] }) })] })] }), (0, jsx_runtime_1.jsx)(sign_in_1.default, {})] }), (0, jsx_runtime_1.jsx)(footer_1.default, {})] })] }));
}
exports.default = Teaching;
async function getServerSideProps(context) {
    return await (0, with_customize_1.default)({ context });
}
exports.getServerSideProps = getServerSideProps;
function Tool({ image, alt, href, title, children }) {
    return ((0, jsx_runtime_1.jsxs)("div", { style: { padding: "15px" }, children: [(0, jsx_runtime_1.jsx)("div", { style: { textAlign: "center", marginBottom: "30px", height: "70px" }, children: (0, jsx_runtime_1.jsx)(A_1.default, { href: href, children: (0, jsx_runtime_1.jsx)(image_1.default, { style: { width: "70px" }, src: image, alt: alt }) }) }), (0, jsx_runtime_1.jsx)("h2", { style: { textAlign: "center" }, children: (0, jsx_runtime_1.jsx)(A_1.default, { href: href, children: title }) }), children] }));
}
function Testimonial({ image, name, coords, children }) {
    return ((0, jsx_runtime_1.jsxs)("blockquote", { style: {
            padding: "10px 20px",
            margin: "0 0 20px",
            borderLeft: "5px solid #eee",
        }, children: [(0, jsx_runtime_1.jsx)(image_1.default, { src: image, alt: name, style: {
                    width: "90px",
                    borderRadius: "6px",
                    float: "left",
                    margin: "15px",
                } }), children, (0, jsx_runtime_1.jsxs)("footer", { style: { marginTop: "15px", color: "#666" }, children: ["\u2014 ", (0, jsx_runtime_1.jsx)("strong", { children: name }), " \u2014 ", coords] })] }));
}
//# sourceMappingURL=teaching.js.map