CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/next/pages/features/teaching.tsx
Views: 687
1
/*
2
* This file is part of CoCalc: Copyright © 2022 Sagemath, Inc.
3
* License: MS-RSL – see LICENSE.md for details
4
*/
5
6
import { Layout } from "antd";
7
import { Icon } from "@cocalc/frontend/components/icon";
8
import { AvailableTools } from "components/landing/available-tools";
9
import Contact from "components/landing/contact";
10
import Content from "components/landing/content";
11
import Footer from "components/landing/footer";
12
import Head from "components/landing/head";
13
import Header from "components/landing/header";
14
import Image from "components/landing/image";
15
import Info from "components/landing/info";
16
import Pitch from "components/landing/pitch";
17
import SignIn from "components/landing/sign-in";
18
import { Paragraph, Title } from "components/misc";
19
import A from "components/misc/A";
20
import { Customize } from "lib/customize";
21
import withCustomize from "lib/with-customize";
22
import assignments from "public/features/cocalc-course-assignments-2019.png";
23
import nbgrader from "public/features/cocalc-jupyter-nbgrader-overview.png";
24
import teaching from "public/features/cocalc-teaching.png";
25
import logo from "public/features/fa-graduation-cap.svg";
26
27
export default function Teaching({ customize }) {
28
const pitchPcLab = (
29
<>
30
<Title level={2}>
31
<Icon name="server" style={{ fontSize: "32px", marginRight: "10px" }} />{" "}
32
An entire computer lab in the cloud
33
</Title>
34
<Paragraph>
35
{" "}
36
<ul>
37
<li>
38
Every student works 100% online – inside their own dedicated
39
workspace.
40
</li>
41
<li>Follow the progress of each student in real time.</li>
42
<li>
43
At any time you and your teaching assistants can{" "}
44
<strong>jump into a student's file</strong>, right where they are
45
working, and answer their questions.
46
</li>
47
<li>
48
Use{" "}
49
<strong>
50
<A href="https://doc.cocalc.com/time-travel.html">TimeTravel</A>
51
</strong>{" "}
52
to see every step a student took to get to their solution, and to
53
get context when helping them.
54
</li>
55
<li>
56
<strong>
57
<A href="https://doc.cocalc.com/chat.html">
58
Integrated chat rooms
59
</A>
60
</strong>{" "}
61
allow you to guide students directly where they are working or
62
discuss collected files with your teaching assistants.
63
</li>
64
<li>
65
The project's{" "}
66
<strong>
67
<A href="https://doc.cocalc.com/project-log.html">Activity Log</A>
68
</strong>{" "}
69
records exactly when and by whom a file was accessed.{" "}
70
</li>
71
<li>
72
CoCalc's massive default{" "}
73
<strong>
74
<A href="/software">Software Environment</A>
75
</strong>{" "}
76
provides nearly everything anybody{" "}
77
<strong>has ever asked us to install since 2013!</strong>
78
</li>
79
</ul>
80
</Paragraph>
81
</>
82
);
83
84
const pitchNoSetup = (
85
<>
86
<Title level={2}>
87
<Icon name="laptop" style={{ fontSize: "32px", marginRight: "10px" }} />{" "}
88
No software setup <small>100% online</small>
89
</Title>
90
<Paragraph>
91
<strong>Fully managed software environment</strong>:
92
<ul>
93
<li>
94
Forget any complicated software setup – everyone is able to start
95
working in seconds!
96
</li>
97
<li>
98
Since everyone works with exactly the same software stack, all
99
inconsistencies are eliminated.
100
</li>
101
</ul>
102
</Paragraph>
103
104
<Paragraph>
105
<strong>Batteries included</strong>: CoCalc includes much of what you
106
need to teach your course
107
<p></p>
108
<ul>
109
<li>
110
Integrated{" "}
111
<A href={"/features/jupyter-notebook"}>
112
<strong>Jupyter Notebooks</strong>
113
</A>{" "}
114
with collaboration, recording changes, and much more…
115
</li>
116
<li>
117
Support for <strong>many programming languages</strong>:
118
<br />
119
<A href={"/features/python"}>Python</A> with many pre-installed{" "}
120
<A href={"/software/python"}>Python packages</A>;
121
<br />
122
<A href={"/features/r-statistical-software"}>
123
Statistical Software R
124
</A>{" "}
125
with many pre-installed <A href={"/software/r"}>R packages</A>;
126
<br />
127
<A href={"/features/julia"}>Julia</A> programming language,{" "}
128
<A href={"/features/octave"}>Octave</A>, and{" "}
129
<A href={"/features/sage"}>SageMath</A>, …
130
</li>
131
<li>
132
A <A href={"/features/linux"}>Linux environment</A>, with many{" "}
133
pre-installed <A href={"/software/executables"}>utilities</A> and a{" "}
134
<A href={"/features/terminal"}>terminal</A>.
135
</li>
136
<li>
137
Use a virtual{" "}
138
<A href={"/features/whiteboard"}>
139
<strong>Whiteboard</strong>
140
</A>{" "}
141
with embedded Jupyter Cells to bring your ideas across.
142
</li>
143
</ul>
144
</Paragraph>
145
</>
146
);
147
148
return (
149
<Customize value={customize}>
150
<Head
151
title={
152
"Teach scientific software online using Jupyter Notebook, Python, R, and more"
153
}
154
/>
155
<Layout>
156
<Header page="features" subPage="teaching" />
157
<Layout.Content>
158
<Content
159
landing
160
startup={"CoCalc"}
161
aboveImage={<></>}
162
body={logo}
163
title={"Teach scientific software online using Jupyter Notebooks"}
164
subtitle={
165
<>
166
CoCalc is a virtual online computer lab: it takes away the pain
167
of teaching scientific software!
168
</>
169
}
170
subtitleBelow={true}
171
image={assignments}
172
alt={"Cocalc's course management interface"}
173
/>
174
175
<Pitch col1={pitchPcLab} col2={pitchNoSetup} />
176
177
<Pitch
178
col1={
179
<Paragraph>
180
<Title level={2}>
181
<Icon
182
name="files"
183
style={{ fontSize: "32px", marginRight: "10px" }}
184
/>{" "}
185
Manage all files
186
</Title>
187
<p>
188
The{" "}
189
<strong>
190
<A href="https://doc.cocalc.com/teaching-instructors.html">
191
course management interface
192
</A>
193
</strong>{" "}
194
gives you full control over distributing, collecting, grading
195
and returning everyone's assignments.
196
</p>
197
<div>
198
<Image
199
src={teaching}
200
style={{ width: "100%" }}
201
alt="Diagram showing how to use CoCalc for teaching."
202
/>
203
</div>
204
</Paragraph>
205
}
206
col2={
207
<Paragraph>
208
<Title level={2}>
209
<Icon
210
name="book"
211
style={{ fontSize: "32px", marginRight: "10px" }}
212
/>{" "}
213
Learn more
214
</Title>
215
<ul>
216
<li>
217
Start{" "}
218
<strong>
219
<A href={"/features"}>discovering CoCalc</A>
220
</strong>
221
:{" "}
222
<A href={"/features/jupyter-notebook"}>
223
CoCalc's Jupyter Notebooks
224
</A>
225
</li>
226
<li>
227
The{" "}
228
<strong>
229
<A href="https://doc.cocalc.com/teaching-instructors.html">
230
Instructor Guide
231
</A>
232
</strong>{" "}
233
explains how to use CoCalc to teach a course.
234
</li>
235
<li>
236
The <A href="https://doc.cocalc.com/">CoCalc Manual</A>{" "}
237
explains much of what CoCalc can do.
238
</li>
239
<li>
240
There are a{" "}
241
<strong>large number of courses all over the world</strong>{" "}
242
running on CoCalc. We used to{" "}
243
<A href="https://github.com/sagemathinc/cocalc/wiki/Teaching">
244
list them here...
245
</A>
246
</li>
247
</ul>
248
<p
249
style={{
250
fontSize: "150%",
251
margin: "30px",
252
padding: "15px",
253
border: "1px solid #c0c0c0",
254
boxShadow: "2px 2px 2px 2px #cfcfcf",
255
borderRadius: "5px",
256
}}
257
>
258
<Contact /> or{" "}
259
<A href="https://docs.google.com/forms/d/e/1FAIpQLSesDZkGD2XVu8BHKd_sPwn5g7MrLAA8EYRTpB6daedGVMTpkA/viewform">
260
request a live demo
261
</A>
262
!
263
</p>
264
</Paragraph>
265
}
266
/>
267
268
<Info.Heading>Feature Overview</Info.Heading>
269
270
<Info
271
title="NBGrader support"
272
icon="graduation-cap"
273
image={nbgrader}
274
alt="Editing an NBgrader Jupyter notebook"
275
anchor="a-nbgrader"
276
>
277
<Paragraph>
278
CoCalc's Jupyter Notebooks fully support{" "}
279
<strong>automatic</strong> and <strong>manual grading</strong>{" "}
280
<A href="https://doc.cocalc.com/teaching-nbgrader.html">
281
using our version of NBGrader
282
</A>{" "}
283
with no configuration!
284
</Paragraph>
285
<Paragraph>
286
The teacher's notebook contains exercise cells for students and
287
test cells, some of which students can also run to get immediate
288
feedback. Once collected, you tell CoCalc to automatically run the
289
full test suite across all student notebooks and tabulate the
290
results.
291
</Paragraph>
292
<Paragraph>
293
By default, tests run in the student's project, so malicious code
294
won't impact anybody except the student.
295
</Paragraph>
296
</Info>
297
298
<AvailableTools style={{}} />
299
300
<SignIn />
301
</Layout.Content>
302
<Footer />
303
</Layout>
304
</Customize>
305
);
306
}
307
308
export async function getServerSideProps(context) {
309
return await withCustomize({ context });
310
}
311
312