|
1 |
| -# Introduction to Computational Thinking |
2 |
| - |
3 |
| -Welcome to **MIT 18.S191 aka 6.S083 aka 22.S092**, **Spring 2021** edition! |
4 |
| - |
5 |
| -~~~ |
6 |
| -<script type=module> |
7 |
| -const span = document.querySelector("#yt-placeholder") |
8 |
| -const notebook_span = document.querySelector("#notebook-today") |
9 |
| -const announce_span = document.querySelector("#announce") |
10 |
| -
|
11 |
| -
|
12 |
| -let announcer = "https://computational-thinking-youtube-link.netlify.app/" |
13 |
| -
|
14 |
| -const last = x => x[x.length-1] |
15 |
| -
|
16 |
| -const content = {current: "", notebook: "", announce: ""} |
17 |
| -const set_content = (x) => { |
18 |
| - if(x !== content.current){ |
19 |
| - content.current = x |
20 |
| - span.innerHTML = x |
21 |
| - } |
22 |
| -} |
23 |
| -
|
24 |
| -const set_notebook_content = (x) => { |
25 |
| - if (x !== content.notebook) { |
26 |
| - content.notebook = x |
27 |
| - notebook_span.innerHTML = x |
28 |
| - } |
29 |
| -} |
30 |
| -
|
31 |
| -const set_announce = (x) => { |
32 |
| - if (x !== content.announce) { |
33 |
| - content.announce = x |
34 |
| - announce_span.innerHTML = x |
35 |
| - } |
36 |
| -} |
37 |
| -
|
38 |
| -const update_content = async () => { |
39 |
| - let data = await (await fetch(new URL("current_live_stream.json", announcer), { |
40 |
| - cache: "no-cache", |
41 |
| - })).json() |
42 |
| -
|
43 |
| - let notebook_path = data.todays_notebook || "" |
44 |
| - let announce_text = data.announce || "" |
45 |
| -
|
46 |
| - if (notebook_path.trim().length > 0) { |
47 |
| - let notebook_text= ""; |
48 |
| - if (data.show_livestream) { |
49 |
| - notebook_text= "Today's Lecture Notebook." |
50 |
| - } else { |
51 |
| - notebook_text= "Most Recent Lecture Notebook." |
52 |
| - } |
53 |
| -
|
54 |
| - set_notebook_content(` |
55 |
| - <blockquote> |
56 |
| - <p> |
57 |
| - <a href="/${notebook_path}/">${notebook_text}</a> |
58 |
| - </p> |
59 |
| - </blockquote> |
60 |
| - `) |
61 |
| - } |
62 |
| - |
63 |
| - |
64 |
| - if (announce_text.trim().length > 0) { |
65 |
| - set_announce(` |
66 |
| - <blockquote> |
67 |
| - <p> |
68 |
| - <em><strong>Announcement:</strong></em> ${announce_text} |
69 |
| - </p> |
70 |
| - </blockquote> |
71 |
| - `) |
72 |
| - } |
73 |
| -
|
74 |
| - if(data.show_stay_tuned) { |
75 |
| - set_content(`<img style="display: block; width: 100%" src="assets/staytuned.png"> |
76 |
| -
|
77 |
| - <blockquote>The live stream is starting soon!</blockqoute>`) |
78 |
| -
|
79 |
| - setTimeout(update_content, 3*1000) |
80 |
| - } |
81 |
| -
|
82 |
| - if(data.show_livestream && data.url.trim().length > 0){ |
83 |
| - let yt_url = new URL(data.url) |
84 |
| - let path = yt_url.pathname |
85 |
| -
|
86 |
| - let video_id = "" |
87 |
| - if(path === "/watch") { |
88 |
| - video_id = yt_url.searchParams.get("v") |
89 |
| - } else if (yt_url.host === "youtu.be" || true) { |
90 |
| - video_id = last(yt_url.pathname.split("/")) |
91 |
| - } |
92 |
| -
|
93 |
| -
|
94 |
| - set_content(` |
95 |
| -
|
96 |
| - <br> |
97 |
| - <br> |
98 |
| - <p class="live-label">Currently live</p> |
99 |
| - <br> |
100 |
| - <iframe width="100%" height="360" src="https://www.youtube.com/embed/${video_id}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
101 |
| -
|
102 |
| - <br> |
103 |
| - <br> |
104 |
| - `) |
105 |
| - } else if(data.show_stay_tuned) { |
106 |
| - set_content(`<img style="display: block; width: 100%" src="assets/staytuned.png"> |
107 |
| -
|
108 |
| - <blockquote>The live stream is starting soon!</blockqoute>`) |
109 |
| -
|
110 |
| - setTimeout(update_content, 3*1000) |
111 |
| - } else { |
112 |
| -
|
113 |
| - set_content(`<iframe width="100%" height="360" src="https://www.youtube.com/embed/videoseries?list=PLP8iPy9hna6T56GkMHEdSrjCCheNuEwI0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> |
114 |
| -
|
115 |
| - <blockquote>You can watch our previous live streams here 👆</blockqoute>`) |
116 |
| -
|
117 |
| - setTimeout(update_content, 30*1000) |
118 |
| - } |
119 |
| -} |
120 |
| -
|
121 |
| -update_content() |
122 |
| -
|
123 |
| -</script> |
124 |
| -
|
125 |
| -<span id="announce"></span> |
126 |
| -<span id="notebook-today"></span> |
127 |
| -<span id="yt-placeholder"></span> |
128 |
| -<hr> |
129 |
| -
|
130 |
| -~~~ |
131 |
| - |
132 |
| -## Stay updated on Twitter |
133 |
| - |
134 |
| -We will be using Twitter to put out class updates and other relevant course content. You can find us [on Twitter @MITCompThinking](https://mobile.twitter.com/MITCompThinking). |
135 |
| - |
136 |
| -## How to cite |
137 |
| - |
138 |
| -If you use or are inspired by any material, would you be so kind to prominently display |
139 |
| -> Some material on this website is based on "Computational Thinking, a live online Julia/Pluto textbook, https://computationalthinking.mit.edu" |
140 |
| -
|
141 |
| -## Course Information |
142 |
| -\blurb{This is an introductory course on Computational Thinking. We use the [Julia programming language](http://www.julialang.org) to approach real-world problems in varied areas applying data analysis and computational and mathematical modeling. In this class you will learn computer science, software, algorithms, applications, and mathematics as an integrated whole.} |
143 |
| - |
144 |
| -We plan to include the following topics: |
145 |
| - |
146 |
| -- Image analysis |
147 |
| -- Machine learning |
148 |
| -- Dynamics on networks |
149 |
| -- Climate modeling |
150 |
| - |
151 |
| -> See also the course repository [github.com/mitmath/18S191](https://github.com/mitmath/18S191). |
152 |
| -
|
153 |
| -> _**[What people are saying about the course!](/reviews/)**_ |
154 |
| -
|
155 |
| -<!-- |
156 |
| -
|
157 |
| -Please help edit the automatically-generated subtitles in the [lecture transcripts](https://drive.google.com/drive/folders/1ekXz8x78qnq3G-_MhOh6CYgFDbL2G6Vz)! |
158 |
| -If you do so, please add punctuation, and please change the colour of the part you edited to a colour other than black, and different from the previous and next sections. --> |
159 |
| - |
160 |
| -## Meet our staff |
161 |
| - |
162 |
| -**Lecturers:** [Alan Edelman](http://math.mit.edu/~edelman), [David P. Sanders](http://sistemas.fciencias.unam.mx/~dsanders/), [Charles E. Leiserson](https://people.csail.mit.edu/cel/), [Henri F. Drake](https://hdrake.github.io/) |
163 |
| - |
164 |
| -**Teaching assistants:** [Bola Malek](https://www.csail.mit.edu/person/bola-malek) |
165 |
| - |
166 |
| -**Technical assistants:** [Fons van der Plas](https://github.com/fonsp), [Logan Kilpatrick](https://scholar.harvard.edu/logankilpatrick/home) |
167 |
| - |
168 |
| -**Guest lecturers:** _to be announced_ |
169 |
| - |
170 |
| -## Get the T-shirt |
171 |
| - |
172 |
| -There is a MIT Computational Thinking t-shirt available for those who really enjoyed the course, you can find it on the [Julia Language's Bonfire Shop](https://www.bonfire.com/introduction-to-computational-thinking-shirt/). |
173 |
| - |
174 |
| -## Introduction video from Fall 2020 |
175 |
| - |
176 |
| -{{youtube course-intro}} |
| 1 | +{{ plutonotebookpage ./homepage/index }} |
0 commit comments